Kecerdasan Data Generatif

Membangun agen AI generatif dengan Amazon Bedrock, Amazon DynamoDB, Amazon Kendra, Amazon Lex, dan LangChain | Layanan Web Amazon

Tanggal:

Agen AI generatif mampu menghasilkan respons mirip manusia dan terlibat dalam percakapan bahasa alami dengan mengatur rangkaian panggilan ke model dasar (FM) dan alat tambahan lainnya berdasarkan masukan pengguna. Daripada hanya memenuhi maksud yang telah ditentukan sebelumnya melalui pohon keputusan statis, agen bersifat otonom dalam konteks rangkaian alat yang tersedia. Batuan Dasar Amazon adalah layanan terkelola sepenuhnya yang menyediakan FM terkemuka dari perusahaan AI melalui API bersama dengan alat pengembang untuk membantu membangun dan menskalakan aplikasi AI generatif.

Dalam postingan ini, kami mendemonstrasikan cara membangun agen layanan keuangan AI generatif yang didukung oleh Amazon Bedrock. Agen dapat membantu pengguna menemukan informasi akun mereka, menyelesaikan permohonan pinjaman, atau menjawab pertanyaan bahasa alami sambil juga mengutip sumber untuk jawaban yang diberikan. Solusi ini dimaksudkan sebagai landasan bagi pengembang untuk membuat agen percakapan pribadi mereka sendiri untuk berbagai aplikasi, seperti pekerja virtual dan sistem dukungan pelanggan. Kode solusi dan aset penerapan dapat ditemukan di Repositori GitHub.

AmazonLex menyediakan antarmuka pemahaman bahasa alami (NLU) dan pemrosesan bahasa alami (NLP) untuk sumber terbuka Agen percakapan LangChain tertanam dalam sebuah Amplifikasi AWS situs web. Agen dilengkapi dengan alat yang mencakup Anthropic Claude 2.1 FM yang dihosting di Amazon Bedrock dan data pelanggan sintetis yang disimpan di Amazon DynamoDB dan AmazonKendra untuk memberikan kemampuan berikut:

  • Berikan tanggapan yang dipersonalisasi โ€“ Kueri DynamoDB untuk informasi akun pelanggan, seperti rincian ringkasan hipotek, saldo jatuh tempo, dan tanggal pembayaran berikutnya
  • Akses pengetahuan umum โ€“ Memanfaatkan logika penalaran agen bersama dengan sejumlah besar data yang digunakan untuk melakukan pra-pelatihan berbagai FM yang disediakan melalui Amazon Bedrock untuk menghasilkan balasan atas setiap permintaan pelanggan
  • Kurasi jawaban yang berpendirian keras โ€“ Informasikan respons agen menggunakan indeks Amazon Kendra yang dikonfigurasi dengan sumber data otoritatif: dokumen pelanggan disimpan di dalamnya Layanan Penyimpanan Sederhana Amazon (Amazon S3) dan Perayap Web Amazon Kendra dikonfigurasi untuk situs web pelanggan

Ikhtisar solusi

Rekaman demo

Rekaman demo berikut menyoroti fungsionalitas agen dan detail implementasi teknis.

Arsitektur solusi

Diagram berikut menggambarkan arsitektur solusi.

Ikhtisar Arsitektur Solusi

Diagram 1: Ikhtisar Arsitektur Solusi

Alur kerja respons agen mencakup langkah-langkah berikut:

  1. Pengguna melakukan dialog bahasa alami dengan agen melalui pilihan saluran web, SMS, atau suara. Saluran web mencakup situs web yang dihosting Amplify dengan chatbot tertanam Amazon Lex untuk pelanggan fiktif. SMS dan saluran suara dapat dikonfigurasi secara opsional menggunakan Sambungan Amazon dan integrasi pesan untuk Amazon Lex. Setiap permintaan pengguna diproses oleh Amazon Lex untuk menentukan niat pengguna melalui proses yang disebut pengenalan niat, yang melibatkan analisis dan interpretasi masukan pengguna (teks atau ucapan) untuk memahami tindakan atau tujuan yang diinginkan pengguna.
  2. Amazon Lex kemudian memanggil AWS Lambda penangan untuk pemenuhan maksud pengguna. Fungsi Lambda yang terkait dengan chatbot Amazon Lex berisi logika dan aturan bisnis yang diperlukan untuk memproses maksud pengguna. Lambda melakukan tindakan tertentu atau mengambil informasi berdasarkan masukan pengguna, membuat keputusan, dan menghasilkan respons yang sesuai.
  3. Lambda menginstrumentasikan logika agen jasa keuangan sebagai agen percakapan LangChain yang dapat mengakses data khusus pelanggan yang disimpan di DynamoDB, menyusun tanggapan berdasarkan opini menggunakan dokumen dan halaman web Anda yang diindeks oleh Amazon Kendra, dan memberikan jawaban pengetahuan umum melalui FM di Amazon Bedrock. Respons yang dihasilkan oleh Amazon Kendra mencakup atribusi sumber, yang menunjukkan bagaimana Anda dapat memberikan informasi kontekstual tambahan kepada agen melalui Pengambilan Augmented Generation (LAP). RAG memungkinkan Anda meningkatkan kemampuan agen Anda untuk menghasilkan respons yang lebih akurat dan relevan secara kontekstual menggunakan data Anda sendiri.

Arsitektur agen

Diagram berikut menggambarkan arsitektur agen.

Arsitektur Agen Percakapan LangChain

Diagram 2: Arsitektur Agen Percakapan LangChain

Alur kerja penalaran agen mencakup langkah-langkah berikut:

  1. Agen percakapan LangChain menggabungkan memori percakapan sehingga dapat merespons banyak pertanyaan dengan pembuatan kontekstual. Memori ini memungkinkan agen memberikan respons yang mempertimbangkan konteks percakapan yang sedang berlangsung. Hal ini dicapai melalui generasi kontekstual, di mana agen menghasilkan respons yang relevan dan sesuai konteks berdasarkan informasi yang diingatnya dari percakapan. Dalam istilah yang lebih sederhana, agen mengingat apa yang dikatakan sebelumnya dan menggunakan informasi tersebut untuk menjawab berbagai pertanyaan dengan cara yang masuk akal dalam diskusi yang sedang berlangsung. Agen kami menggunakan Kelas riwayat pesan obrolan DynamoDB LangChain sebagai penyangga memori percakapan sehingga dapat mengingat interaksi masa lalu dan meningkatkan pengalaman pengguna dengan respons yang lebih bermakna dan sadar konteks.
  2. Agen menggunakan Anthropic Claude 2.1 di Amazon Bedrock untuk menyelesaikan tugas yang diinginkan melalui serangkaian input teks yang dibuat sendiri dengan cermat yang dikenal sebagai meminta. Tujuan utama dari rekayasa cepat adalah untuk mendapatkan tanggapan yang spesifik dan akurat dari FM. Teknik rekayasa cepat yang berbeda meliputi:
    • Tembakan nol โ€“ Satu pertanyaan disajikan kepada model tanpa petunjuk tambahan apa pun. Model tersebut diharapkan dapat menghasilkan respon hanya berdasarkan pertanyaan yang diberikan.
    • Beberapa tembakan โ€“ Serangkaian contoh pertanyaan dan jawaban terkait disertakan sebelum pertanyaan sebenarnya. Dengan memaparkan model pada contoh-contoh ini, model belajar merespons dengan cara yang sama.
    • Rantai pemikiran โ€“ Gaya spesifik dari beberapa langkah yang mendorong di mana perintah tersebut dirancang untuk berisi serangkaian langkah penalaran menengah, memandu model melalui proses pemikiran logis, yang pada akhirnya mengarah pada jawaban yang diinginkan.

    Agen kami menggunakan penalaran rantai pemikiran dengan menjalankan serangkaian tindakan setelah menerima permintaan. Setelah setiap tindakan, agen memasuki langkah observasi, di mana ia mengungkapkan suatu pemikiran. Jika jawaban akhir belum tercapai, agen mengulanginya, memilih tindakan berbeda untuk mencapai jawaban akhir. Lihat contoh kode berikut:

Pikir: Apakah saya perlu menggunakan alat? Ya
Tindakan: Tindakan yang harus diambil
Masukan Tindakan: Masukan untuk tindakan
Pengamatan : Hasil dari tindakan

Pikir: Apakah saya perlu menggunakan alat? TIDAK
Agen FSI: [jawaban dan sumber dokumen]

  1. Sebagai bagian dari jalur penalaran agen yang berbeda dan pilihan evaluasi diri untuk memutuskan tindakan selanjutnya, agen memiliki kemampuan untuk mengakses sumber data pelanggan sintetis melalui Alat Pengambil Indeks Amazon Kendra. Dengan menggunakan Amazon Kendra, agen melakukan pencarian kontekstual di berbagai tipe konten, termasuk dokumen, FAQ, basis pengetahuan, manual, dan situs web. Untuk detail selengkapnya tentang sumber data yang didukung, lihat Sumber data. Agen memiliki wewenang untuk menggunakan alat ini untuk memberikan respons yang sesuai pendapat terhadap permintaan pengguna yang harus dijawab menggunakan perpustakaan pengetahuan resmi yang disediakan pelanggan, bukan korpus pengetahuan yang lebih umum yang digunakan untuk melakukan pra-pelatihan Amazon Bedrock FM.

Panduan penyebaran

Pada bagian berikut, kami membahas langkah-langkah penting untuk menerapkan solusi tersebut, termasuk pra-penerapan dan pasca-penerapan.

Pra-penempatan

Sebelum menerapkan solusi, Anda perlu membuat versi repositori solusi Anda sendiri yang dicabangkan dengan webhook yang diamankan token untuk mengotomatiskan penerapan berkelanjutan situs web Amplify Anda. Konfigurasi Amplify menunjuk ke repositori sumber GitHub tempat frontend situs web kami dibuat.

Garpu dan klon contoh-agen-generatif-ai-amazon-batuan dasar-langchain gudang

  1. Untuk mengontrol kode sumber yang membangun situs web Amplify Anda, ikuti petunjuk di Buatlah repositori untuk membagi repositori contoh generatif-ai-amazon-batuan dasar-langchain-agent. Ini membuat salinan repositori yang terputus dari basis kode asli, sehingga Anda dapat melakukan modifikasi yang sesuai.
  2. Harap perhatikan URL repositori bercabang Anda yang akan digunakan untuk mengkloning repositori pada langkah berikutnya dan untuk mengonfigurasi variabel lingkungan GITHUB_PAT yang digunakan dalam skrip otomatisasi penerapan solusi.
  3. Kloning repositori bercabang Anda menggunakan perintah git clone:
    git clone <YOUR-FORKED-REPOSITORY-URL>

Buat token akses pribadi GitHub

Situs web yang dihosting Amplify menggunakan a Token akses pribadi GitHub (PAT) sebagai token OAuth untuk kontrol sumber pihak ketiga. Token OAuth digunakan untuk membuat webhook dan kunci penerapan read-only menggunakan kloning SSH.

  1. Untuk membuat PAT Anda, ikuti instruksi di Membuat token akses pribadi (klasik). Anda mungkin lebih suka menggunakan a aplikasi GitHub untuk mengakses sumber daya atas nama organisasi atau untuk integrasi jangka panjang.
  2. Catat PAT Anda sebelum menutup browserโ€”Anda akan menggunakannya untuk mengonfigurasi variabel lingkungan GITHUB_PAT yang digunakan dalam skrip otomatisasi penerapan solusi. Skrip akan mempublikasikan PAT Anda ke Manajer Rahasia AWS menggunakan Antarmuka Baris Perintah AWS (AWS CLI) dan nama rahasianya akan digunakan sebagai GitHubTokenSecretName Formasi AWS Cloud parameter.

Penyebaran

Skrip otomatisasi penerapan solusi menggunakan templat CloudFormation yang diparameterisasi, GenAI-FSI-Agent.yml, untuk mengotomatiskan penyediaan sumber daya solusi berikut:

  • Situs web Amplify untuk menyimulasikan lingkungan front-end Anda.
  • Bot Amazon Lex dikonfigurasi melalui paket penerapan impor bot.
  • Empat tabel DynamoDB:
    • Tabel AkunPending Pengguna โ€“ Mencatat transaksi yang tertunda (misalnya, permohonan pinjaman).
    • Tabel Akun Pengguna yang Ada โ€“ Berisi informasi akun pengguna (misalnya, ringkasan akun hipotek).
    • Tabel Indeks Percakapan โ€“ Melacak status percakapan.
    • Tabel Percakapan โ€“ Menyimpan riwayat percakapan.
  • Bucket S3 yang berisi pengendali agen Lambda, pemuat data Lambda, dan paket penerapan Amazon Lex, bersama dengan FAQ pelanggan dan dokumen contoh permohonan hipotek.
  • Dua fungsi Lambda:
    • Pengendali agen โ€“ Berisi logika agen percakapan LangChain yang secara cerdas dapat menggunakan berbagai alat berdasarkan masukan pengguna.
    • Pemuat data โ€“ Memuat contoh data akun pelanggan ke UserExistingAccountsTable dan dipanggil sebagai sumber daya CloudFormation kustom selama pembuatan tumpukan.
  • Lapisan Lambda untuk perpustakaan Amazon Bedrock Boto3, LangChain, dan pdfrw. Lapisan ini memasok perpustakaan FM LangChain dengan model Amazon Bedrock sebagai FM yang mendasarinya dan menyediakan pdfrw sebagai perpustakaan PDF sumber terbuka untuk membuat dan memodifikasi file PDF.
  • Indeks Amazon Kendra yang menyediakan indeks informasi otoritatif pelanggan yang dapat dicari, termasuk dokumen, FAQ, basis pengetahuan, manual, situs web, dan banyak lagi.
  • Dua sumber data Amazon Kendra:
    • Amazon S3 โ€“ Tuan rumah dan contoh dokumen FAQ pelanggan.
    • Perayap Web Amazon Kendra โ€“ Dikonfigurasi dengan domain root yang mengemulasi situs web khusus pelanggan (misalnya, .com).
  • Identitas AWS dan Manajemen Akses (IAM) izin untuk sumber daya sebelumnya.

AWS CloudFormation mengisi parameter tumpukan dengan nilai default yang disediakan dalam templat. Untuk memberikan nilai masukan alternatif, Anda dapat menentukan parameter sebagai variabel lingkungan yang direferensikan dalam pasangan `ParameterKey=,ParameterValue=` dalam perintah `aws cloudformation create-stack` skrip shell berikut.

  1. Sebelum Anda menjalankan skrip shell, navigasikan ke versi fork dari repositori generative-ai-amazon-bedrock-langchain-agent-example sebagai direktori kerja Anda dan ubah izin skrip shell menjadi dapat dieksekusi:
    # If not already forked, fork the remote repository (https://github.com/aws-samples/generative-ai-amazon-bedrock-langchain-agent-example) and change working directory to shell folder:
    cd generative-ai-amazon-bedrock-langchain-agent-example/shell/
    chmod u+x create-stack.sh

  2. Atur repositori Amplify dan variabel lingkungan GitHub PAT Anda yang dibuat selama langkah pra-penerapan:
    export AMPLIFY_REPOSITORY=<YOUR-FORKED-REPOSITORY-URL> # Forked repository URL from Pre-Deployment (Exclude '.git' from repository URL)
    export GITHUB_PAT=<YOUR-GITHUB-PAT> # GitHub PAT copied from Pre-Deployment
    export STACK_NAME=<YOUR-STACK-NAME> # Stack name must be lower case for S3 bucket naming convention
    export KENDRA_WEBCRAWLER_URL=<YOUR-WEBSITE-ROOT-DOMAIN> # Public or internal HTTPS website for Kendra to index via Web Crawler (e.g., https://www.<your-company>.com) - Please see https://docs.aws.amazon.com/kendra/latest/dg/data-source-web-crawler.html

  3. Terakhir, jalankan skrip otomatisasi penerapan solusi untuk menyebarkan sumber daya solusi, termasuk GenAI-FSI-Agent.yml Tumpukan CloudFormation:

source ./create-stack.sh

Skrip Otomatisasi Penerapan Solusi

Sebelumnya source ./create-stack.sh shell perintah menjalankan perintah AWS CLI berikut untuk menerapkan tumpukan solusi:

export ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
export S3_ARTIFACT_BUCKET_NAME=$STACK_NAME-$ACCOUNT_ID
export DATA_LOADER_S3_KEY="agent/lambda/data-loader/loader_deployment_package.zip"
export LAMBDA_HANDLER_S3_KEY="agent/lambda/agent-handler/agent_deployment_package.zip"
export LEX_BOT_S3_KEY="agent/bot/lex.zip" aws s3 mb s3://${S3_ARTIFACT_BUCKET_NAME} --region us-east-1
aws s3 cp ../agent/ s3://${S3_ARTIFACT_BUCKET_NAME}/agent/ --recursive --exclude ".DS_Store" export BEDROCK_LANGCHAIN_LAYER_ARN=$(aws lambda publish-layer-version --layer-name bedrock-langchain-pdfrw --description "Bedrock LangChain pdfrw layer" --license-info "MIT" --content S3Bucket=${S3_ARTIFACT_BUCKET_NAME},S3Key=agent/lambda-layers/bedrock-langchain-pdfrw.zip --compatible-runtimes python3.11 --query LayerVersionArn --output text) export GITHUB_TOKEN_SECRET_NAME=$(aws secretsmanager create-secret --name $STACK_NAME-git-pat --secret-string $GITHUB_PAT --query Name --output text) aws cloudformation create-stack --stack-name ${STACK_NAME} --template-body file://../cfn/GenAI-FSI-Agent.yml --parameters ParameterKey=S3ArtifactBucket,ParameterValue=${S3_ARTIFACT_BUCKET_NAME} ParameterKey=DataLoaderS3Key,ParameterValue=${DATA_LOADER_S3_KEY} ParameterKey=LambdaHandlerS3Key,ParameterValue=${LAMBDA_HANDLER_S3_KEY} ParameterKey=LexBotS3Key,ParameterValue=${LEX_BOT_S3_KEY} ParameterKey=GitHubTokenSecretName,ParameterValue=${GITHUB_TOKEN_SECRET_NAME} ParameterKey=KendraWebCrawlerUrl,ParameterValue=${KENDRA_WEBCRAWLER_URL} ParameterKey=BedrockLangChainPyPDFLayerArn,ParameterValue=${BEDROCK_LANGCHAIN_LAYER_ARN} ParameterKey=AmplifyRepository,ParameterValue=${AMPLIFY_REPOSITORY} --capabilities CAPABILITY_NAMED_IAM aws cloudformation describe-stacks --stack-name $STACK_NAME --query "Stacks[0].StackStatus"
aws cloudformation wait stack-create-complete --stack-name $STACK_NAME export LEX_BOT_ID=$(aws cloudformation describe-stacks --stack-name $STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`LexBotID`].OutputValue' --output text) export LAMBDA_ARN=$(aws cloudformation describe-stacks --stack-name $STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`LambdaARN`].OutputValue' --output text) aws lexv2-models update-bot-alias --bot-alias-id 'TSTALIASID' --bot-alias-name 'TestBotAlias' --bot-id $LEX_BOT_ID --bot-version 'DRAFT' --bot-alias-locale-settings "{"en_US":{"enabled":true,"codeHookSpecification":{"lambdaCodeHook":{"codeHookInterfaceVersion":"1.0","lambdaARN":"${LAMBDA_ARN}"}}}}" aws lexv2-models build-bot-locale --bot-id $LEX_BOT_ID --bot-version "DRAFT" --locale-id "en_US" export KENDRA_INDEX_ID=$(aws cloudformation describe-stacks --stack-name $STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`KendraIndexID`].OutputValue' --output text) export KENDRA_S3_DATA_SOURCE_ID=$(aws cloudformation describe-stacks --stack-name $STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`KendraS3DataSourceID`].OutputValue' --output text) export KENDRA_WEBCRAWLER_DATA_SOURCE_ID=$(aws cloudformation describe-stacks --stack-name $STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`KendraWebCrawlerDataSourceID`].OutputValue' --output text) aws kendra start-data-source-sync-job --id $KENDRA_S3_DATA_SOURCE_ID --index-id $KENDRA_INDEX_ID aws kendra start-data-source-sync-job --id $KENDRA_WEBCRAWLER_DATA_SOURCE_ID --index-id $KENDRA_INDEX_ID export AMPLIFY_APP_ID=$(aws cloudformation describe-stacks --stack-name $STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`AmplifyAppID`].OutputValue' --output text) export AMPLIFY_BRANCH=$(aws cloudformation describe-stacks --stack-name $STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`AmplifyBranch`].OutputValue' --output text) aws amplify start-job --app-id $AMPLIFY_APP_ID --branch-name $AMPLIFY_BRANCH --job-type 'RELEASE'

Pasca penempatan

Pada bagian ini, kami membahas langkah-langkah pasca penerapan untuk meluncurkan aplikasi frontend yang dimaksudkan untuk meniru aplikasi Produksi pelanggan. Agen jasa keuangan akan beroperasi sebagai asisten yang tertanam dalam contoh UI web.

Luncurkan UI web untuk chatbot Anda

Grafik UI web Amazon Lex, juga dikenal sebagai UI chatbot, memungkinkan Anda dengan cepat menyediakan klien web komprehensif untuk chatbot Amazon Lex. UI terintegrasi dengan Amazon Lex untuk menghasilkan plugin JavaScript yang akan menggabungkan widget obrolan bertenaga Amazon Lex ke dalam aplikasi web Anda yang sudah ada. Dalam hal ini, kami menggunakan UI web untuk meniru aplikasi web pelanggan yang sudah ada dengan chatbot Amazon Lex yang tertanam. Selesaikan langkah-langkah berikut:

  1. Ikuti petunjuk untuk menyebarkan tumpukan CloudFormation UI web Amazon Lex.
  2. Di konsol AWS CloudFormation, navigasikan ke tumpukan Output tab dan temukan nilainya SnippetUrl.
CloudFormation Menghasilkan URL Cuplikan UI Web Lex

Gambar 1: Amazon CloudFormation Keluaran URL Cuplikan UI Web Lex

  1. Salin cuplikan Iframe UI web, yang akan menyerupai format di bawah Menambahkan UI ChatBot ke Situs Web Anda sebagai Iframe.
Cuplikan Iframe UI Web Lex

Gambar 2: Cuplikan Iframe UI Web Lex

  1. Edit repositori sumber Amplify GitHub versi bercabang dengan menambahkan plugin JavaScript UI web Anda ke bagian yang diberi label <-- Paste your Lex Web UI JavaScript plugin here --> untuk setiap file HTML di bawah direktori ujung depan: index.html, contact.html, dan about.html.
Bagian Depan Cuplikan UI Web Lex

Gambar 3: Bagian Depan Cuplikan UI Web Lex

Amplify menyediakan jalur build dan rilis otomatis yang terpicu berdasarkan komitmen baru pada repositori bercabang Anda dan memublikasikan versi baru situs web Anda ke domain Amplify Anda. Anda dapat melihat status penerapan di konsol Amplify.

Status Alur AWS Amplify

Gambar 4: Status Saluran Pipa AWS Amplify

Akses situs web Amplify

Dengan plugin JavaScript UI web Amazon Lex, Anda kini siap meluncurkan situs web demo Amplify.

  1. Untuk mengakses domain situs web Anda, navigasikan ke tumpukan CloudFormation Output tab dan temukan URL domain Amplify. Alternatifnya, gunakan perintah berikut:
    aws cloudformation describe-stacks --stack-name $STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`AmplifyDemoWebsite`].OutputValue' --output text

  2. Setelah Anda mengakses URL domain Amplify, Anda dapat melanjutkan dengan pengujian dan validasi.
AWS Memperkuat Frontend

Gambar 5: Frontend AWS Amplify

Pengujian dan validasi

Prosedur pengujian berikut bertujuan untuk memverifikasi bahwa agen dengan benar mengidentifikasi dan memahami maksud pengguna untuk mengakses data pelanggan (seperti informasi akun), memenuhi alur kerja bisnis melalui maksud yang telah ditentukan sebelumnya (seperti menyelesaikan permohonan pinjaman), dan menjawab pertanyaan umum, seperti contoh petunjuk berikut:

  1. Mengapa saya harus menggunakan ?
  2. Seberapa kompetitif tarif mereka?
  3. Jenis hipotek apa yang harus saya gunakan?
  4. Apa tren hipotek saat ini?
  5. Berapa banyak yang perlu saya simpan untuk uang muka?
  6. Biaya lain apa yang harus saya bayarkan pada saat penutupan?

Akurasi respons ditentukan dengan mengevaluasi relevansi, koherensi, dan sifat jawaban yang mirip manusia yang dihasilkan oleh Amazon Bedrock yang disediakan Anthropic Claude 2.1 FM. Tautan sumber yang diberikan pada setiap respons (misalnya, .com berdasarkan konfigurasi Amazon Kendra Web Crawler) juga harus dikonfirmasi kredibel.

Berikan tanggapan yang dipersonalisasi

Verifikasikan bahwa agen berhasil mengakses dan menggunakan informasi pelanggan yang relevan di DynamoDB untuk menyesuaikan respons spesifik pengguna.

Respon yang Dipersonalisasi

Gambar 6: Respon yang Dipersonalisasi

Perhatikan bahwa penggunaan otentikasi PIN dalam agen hanya untuk tujuan demonstrasi dan tidak boleh digunakan dalam implementasi produksi apa pun.

Kurasi jawaban yang berpendirian keras

Validasi bahwa pertanyaan yang berisi opini dipenuhi dengan jawaban yang kredibel oleh agen yang mendapatkan balasan dengan benar berdasarkan dokumen pelanggan resmi dan halaman web yang diindeks oleh Amazon Kendra.

Tanggapan Berpendapat

Gambar 7: Opini RAG Respons

Memberikan generasi kontekstual

Tentukan kemampuan agen untuk memberikan tanggapan yang relevan secara kontekstual berdasarkan riwayat obrolan sebelumnya.

Respons Generasi Kontekstual

Gambar 8: Respon Generasi Kontekstual

Akses pengetahuan umum

Konfirmasikan akses agen ke informasi pengetahuan umum untuk kueri non-spesifik pelanggan dan tidak beropini yang memerlukan respons akurat dan koheren berdasarkan data pelatihan Amazon Bedrock FM dan RAG.

Respon Pengetahuan Umum

Gambar 9: Respon Pengetahuan Umum

Jalankan maksud yang telah ditentukan sebelumnya

Pastikan agen menafsirkan dengan benar dan memenuhi permintaan pengguna secara percakapan yang dimaksudkan untuk diarahkan ke maksud yang telah ditentukan sebelumnya, seperti menyelesaikan permohonan pinjaman sebagai bagian dari alur kerja bisnis.

Respons Niat yang Telah Ditentukan Sebelumnya

Gambar 10: Respon Niat yang Telah Ditetapkan Sebelumnya

Berikut ini adalah hasil dokumen permohonan pinjaman yang diselesaikan melalui alur percakapan.

Permohonan Pinjaman yang Dihasilkan

Gambar 11: Hasil Permohonan Pinjaman

Fungsi dukungan multisaluran dapat diuji bersama dengan langkah penilaian sebelumnya di seluruh saluran web, SMS, dan suara. Untuk informasi lebih lanjut tentang mengintegrasikan chatbot dengan layanan lain, lihat Mengintegrasikan bot Amazon Lex V2 dengan Twilio SMS dan Tambahkan bot Amazon Lex ke Amazon Connect.

Membersihkan

Untuk menghindari biaya di akun AWS Anda, bersihkan sumber daya yang disediakan solusi.

  1. Cabut token akses pribadi GitHub. GitHub PAT dikonfigurasi dengan nilai kedaluwarsa. Jika Anda ingin memastikan bahwa PAT Anda tidak dapat digunakan untuk akses terprogram ke repositori Amplify GitHub yang dicabangkan sebelum masa berlakunya habis, Anda dapat mencabut PAT dengan mengikuti petunjuk berikut: Instruksi repo GitHub.
  2. Hapus tumpukan CloudFormation GenAI-FSI-Agent.yml dan sumber daya solusi lainnya menggunakan skrip otomatisasi penghapusan solusi. Perintah berikut menggunakan nama tumpukan default. Jika Anda menyesuaikan nama tumpukan, sesuaikan perintahnya.# export STACK_NAME=<YOUR-STACK-NAME>
    ./delete-stack.sh

    Skrip Otomatisasi Penghapusan Solusi

    Grafik delete-stack.sh shell skrip menghapus sumber daya yang awalnya disediakan menggunakan skrip otomatisasi penerapan solusi, termasuk tumpukan CloudFormation GenAI-FSI-Agent.yml.

    # cd generative-ai-amazon-bedrock-langchain-agent-example/shell/ # chmod u+x delete-stack.sh # ./delete-stack.sh echo "Deleting Kendra Data Source: $KENDRA_WEBCRAWLER_DATA_SOURCE_ID" aws kendra delete-data-source --id $KENDRA_WEBCRAWLER_DATA_SOURCE_ID --index-id $KENDRA_INDEX_ID echo "Emptying and Deleting S3 Bucket: $S3_ARTIFACT_BUCKET_NAME" aws s3 rm s3://${S3_ARTIFACT_BUCKET_NAME} --recursive aws s3 rb s3://${S3_ARTIFACT_BUCKET_NAME} echo "Deleting CloudFormation Stack: $STACK_NAME" aws cloudformation delete-stack --stack-name $STACK_NAME aws cloudformation wait stack-delete-complete --stack-name $STACK_NAME echo "Deleting Secrets Manager Secret: $GITHUB_TOKEN_SECRET_NAME" aws secretsmanager delete-secret --secret-id $GITHUB_TOKEN_SECRET_NAME

Pertimbangan

Meskipun solusi dalam postingan ini menunjukkan kemampuan agen layanan keuangan AI generatif yang didukung oleh Amazon Bedrock, penting untuk menyadari bahwa solusi ini belum siap produksi. Sebaliknya, ini berfungsi sebagai contoh ilustratif bagi pengembang yang bertujuan untuk menciptakan agen percakapan yang dipersonalisasi untuk beragam aplikasi seperti pekerja virtual dan sistem dukungan pelanggan. Jalur pengembang menuju produksi akan mengulangi contoh solusi ini dengan pertimbangan berikut.

Keamanan dan privasi

Pastikan keamanan data dan privasi pengguna selama proses implementasi. Menerapkan kontrol akses dan mekanisme enkripsi yang sesuai untuk melindungi informasi sensitif. Solusi seperti agen layanan keuangan AI generatif akan mendapatkan keuntungan dari data yang belum tersedia untuk FM yang mendasarinya, yang sering kali berarti Anda ingin menggunakan data pribadi Anda untuk lompatan kemampuan terbesar. Pertimbangkan praktik terbaik berikut:

  1. Rahasiakan, jaga keamanannya โ€“ Anda ingin data ini tetap terlindungi sepenuhnya, aman, dan pribadi selama proses generatif, dan menginginkan kontrol atas cara data ini dibagikan dan digunakan.
  2. Tetapkan pagar pembatas penggunaan โ€“ Pahami bagaimana data digunakan oleh suatu layanan sebelum menyediakannya untuk tim Anda. Membuat dan mendistribusikan aturan tentang data apa yang dapat digunakan dengan layanan apa. Jelaskan hal ini kepada tim Anda sehingga mereka dapat bergerak cepat dan membuat prototipe dengan aman.
  3. Libatkan Bagian Hukum, lebih cepat daripada terlambat โ€“ Mintalah tim Hukum Anda meninjau syarat dan ketentuan serta kartu layanan dari layanan yang ingin Anda gunakan sebelum Anda mulai menjalankan data sensitif apa pun melalui layanan tersebut. Mitra Hukum Anda tidak pernah sepenting sekarang ini.

Sebagai contoh bagaimana kami memikirkan hal ini di AWS dengan Amazon Bedrock: Semua data dienkripsi dan tidak meninggalkan VPC Anda, dan Amazon Bedrock membuat salinan terpisah dari FM dasar yang hanya dapat diakses oleh pelanggan, dan menyempurnakan atau melatih salinan model pribadi ini.

Pengujian penerimaan pengguna

Lakukan pengujian penerimaan pengguna (UAT) dengan pengguna sebenarnya untuk mengevaluasi kinerja, kegunaan, dan kepuasan agen layanan keuangan AI generatif. Kumpulkan umpan balik dan lakukan perbaikan yang diperlukan berdasarkan masukan pengguna.

Penerapan dan pemantauan

Terapkan agen yang telah teruji sepenuhnya di AWS, dan terapkan pemantauan dan pencatatan untuk melacak kinerjanya, mengidentifikasi masalah, dan mengoptimalkan sistem sesuai kebutuhan. Fitur pemantauan dan pemecahan masalah Lambda diaktifkan secara default untuk pengendali Lambda agen.

Pemeliharaan dan pembaruan

Perbarui agen secara berkala dengan versi dan data FM terbaru untuk meningkatkan akurasi dan efektivitasnya. Pantau data khusus pelanggan di DynamoDB dan sinkronkan pengindeksan sumber data Amazon Kendra Anda sesuai kebutuhan.

Kesimpulan

Dalam postingan ini, kami mempelajari dunia agen AI generatif yang menarik dan kemampuan mereka untuk memfasilitasi interaksi mirip manusia melalui orkestrasi panggilan ke FM dan alat pelengkap lainnya. Dengan mengikuti panduan ini, Anda dapat menggunakan Bedrock, LangChain, dan sumber daya pelanggan yang ada agar berhasil menerapkan, menguji, dan memvalidasi agen andal yang memberikan bantuan keuangan yang akurat dan dipersonalisasi kepada pengguna melalui percakapan bahasa alami.

Dalam postingan mendatang, kami akan mendemonstrasikan bagaimana fungsi yang sama dapat disampaikan menggunakan pendekatan alternatif Agen untuk Amazon Bedrock dan Basis pengetahuan untuk Amazon Bedrock. Implementasi yang sepenuhnya dikelola AWS ini akan mengeksplorasi lebih jauh cara menawarkan otomatisasi cerdas dan kemampuan pencarian data melalui agen yang dipersonalisasi yang mengubah cara pengguna berinteraksi dengan aplikasi Anda, menjadikan interaksi lebih alami, efisien, dan efektif.


Tentang Penulis

Kyle T.Blocksom adalah Sr. Solutions Architect dengan AWS yang berbasis di California Selatan. Semangat Kyle adalah menyatukan orang-orang dan memanfaatkan teknologi untuk memberikan solusi yang disukai pelanggan. Di luar pekerjaan, ia menikmati berselancar, makan, bergulat dengan anjingnya, dan memanjakan keponakannya.

tempat_img

Intelijen Terbaru

tempat_img