Perkenalan
Prasyarat
Tumpukan teknologi target
Penyebaran
Perintah CDK yang berguna
Struktur Kode
Sesuaikan chatbot dengan data Anda sendiri
Aplikasi GenAI ChatBot ini dibangun dengan Amazon Bedrock, yang mencakup KnowledgeBase, Agen, dan solusi GenAI tanpa server AWS tambahan. Solusi yang diberikan menampilkan Chatbot yang memanfaatkan pemahamannya tentang instans EC2 dan harga instans EC2. Chatbot ini berfungsi sebagai ilustrasi kemampuan Amazon Bedrock untuk mengubah bahasa alami menjadi kueri Amazon Athena dan untuk memproses serta memanfaatkan kumpulan data yang kompleks. Alat sumber terbuka, seperti LLamaIndex, digunakan untuk meningkatkan kemampuan sistem dalam pemrosesan dan pengambilan data. Integrasi beberapa sumber daya AWS juga ditekankan dalam solusi tersebut. Sumber daya ini terdiri dari Amazon S3 untuk penyimpanan, Amazon Bedrock KnowledgeBase untuk memfasilitasi pengambilan augmented generation (RAG), agen Amazon Bedrock untuk menjalankan tugas multi-langkah di seluruh sumber data, AWS Glue untuk menyiapkan data, Amazon Athena untuk menjalankan kueri yang efisien, Amazon Lambda untuk mengelola kontainer, dan Amazon ECS untuk mengawasi kontainer. Pemanfaatan gabungan sumber daya ini memberdayakan Chatbot untuk mengambil dan mengelola konten dari database dan dokumen secara efisien, sehingga menunjukkan kemampuan Amazon Bedrock dalam pengembangan aplikasi Chatbot tingkat lanjut.
Buruh pelabuhan
AWS CDK Toolkit 2.114.1+, diinstal dan dikonfigurasi. Untuk informasi selengkapnya, lihat Memulai AWS CDK dalam dokumentasi AWS CDK.
Python 3.11+, diinstal dan dikonfigurasi. Untuk informasi lebih lanjut, lihat Panduan Pemula/Unduh dalam dokumentasi Python.
Akun AWS yang aktif
Akun AWS yang di-bootstrap dengan menggunakan AWS CDK di us-east-1 atau us-west-2. Aktifkan akses model Claude dan model Titan Embedding di layanan Bedrock.
Batuan Dasar Amazon
Amazon OpenSearch Tanpa Server
Amazon ECS
Lem AWS
AWS Lambda
Amazon S3
Amazon Athena
Penyeimbang Beban Elastis
Untuk menjalankan aplikasi secara lokal, pertama-tama tambahkan file .env ke folder 'code/streamlit-app' yang berisi yang berikut ini
ACCOUNT_ID =AWS_REGION = LAMBDA_FUNCTION_NAME = invokeAgentLambda # Menetapkan nama pilihan untuk fungsi lambda yang dipanggil oleh streamlit untuk respons. Saat ini memanggil agen.
File cdk.json
memberi tahu CDK Toolkit cara menjalankan aplikasi Anda.
Proyek ini diatur seperti proyek Python standar. Proses inisialisasi juga membuat virtualenv dalam proyek ini, disimpan di bawah direktori .venv
. Untuk membuat virtualenv, diasumsikan ada python3
(atau python
untuk Windows) yang dapat dieksekusi di jalur Anda dengan akses ke paket venv
. Jika karena alasan apa pun pembuatan virtualenv otomatis gagal, Anda dapat membuat virtualenv secara manual.
Untuk membuat virtualenv secara manual di MacOS dan Linux:
$ python3 -m venv .venv
Setelah proses init selesai dan virtualenv dibuat, Anda dapat menggunakan langkah berikut untuk mengaktifkan virtualenv Anda.
$ sumber .venv/bin/aktifkan
Jika Anda adalah platform Windows, Anda akan mengaktifkan virtualenv seperti ini:
% .venvScriptsactivate.bat
Setelah virtualenv diaktifkan, Anda dapat menginstal dependensi yang diperlukan.
$ pip install -r persyaratan.txt
Untuk menambahkan dependensi tambahan, misalnya pustaka CDK lainnya, cukup tambahkan ke file setup.py
Anda dan jalankan kembali perintah pip install -r requirements.txt
.
Pada titik ini Anda sekarang dapat mensintesis templat CloudFormation untuk kode ini.
$cdk synth
Untuk menambahkan dependensi tambahan, misalnya pustaka CDK lainnya, cukup tambahkan ke file setup.py
Anda dan jalankan kembali perintah pip install -r requirements.txt
.
Anda perlu melakukan bootstrap jika ini adalah pertama kalinya Anda menjalankan cdk di akun dan wilayah tertentu.
$ cdk bootstrap
Setelah di-bootstrap, Anda dapat melanjutkan untuk menerapkan cdk.
$ cdk diterapkan
Jika ini adalah pertama kalinya Anda menerapkannya, prosesnya mungkin memerlukan waktu sekitar 30-45 menit untuk membuat beberapa image Docker di ECS (Amazon Elastic Container Service). Harap bersabar sampai selesai. Setelah itu, ia akan mulai menerapkan tumpukan chatbot, yang biasanya memakan waktu sekitar 5-8 menit.
Setelah proses penerapan selesai, Anda akan melihat keluaran cdk di terminal, dan Anda juga dapat memverifikasi status di konsol CloudFormation Anda.
Anda dapat menguji agen di konsol AWS atau melalui url aplikasi streamlit yang tercantum dalam output chatbot-stack di CloudFormation.
Untuk menghapus cdk setelah Anda selesai menggunakannya guna menghindari biaya di masa mendatang, Anda dapat menghapusnya melalui konsol atau menjalankan perintah berikut di terminal.
$ cdk menghancurkan
Anda mungkin juga perlu menghapus bucket S3 yang dihasilkan oleh cdk secara manual. Harap pastikan untuk menghapus semua sumber daya yang dihasilkan untuk menghindari timbulnya biaya.
cdk ls
mencantumkan semua tumpukan di aplikasi
cdk synth
memancarkan templat CloudFormation yang disintesis
cdk deploy
menyebarkan tumpukan ini ke akun/wilayah AWS default Anda
cdk diff
membandingkan tumpukan yang dikerahkan dengan keadaan saat ini
cdk docs
membuka dokumentasi CDK
cdk destroy
dstroys satu atau lebih tumpukan tertentu
code # Root folder for code for this solution ├── lambdas # Root folder for all lambda functions │ ├── action-lambda # Lambda function that acts as an action for the Amazon Bedrock Agent │ ├── create-index-lambda # Lambda function that create Amazon Opensearch serverless index as Amazon Bedrock Knowlege base's vector database │ ├── invoke-lambda # Lambda function that invokes Amazon Bedrock Agent, which is called diretly from the streamlit app │ └── update-lambda # Lambda function that update/delete resources after AWS resources deployed via AWS CDK. ├── layers # Root folder for all lambda layers │ ├── boto3_layer # Boto3 layer that is shared across all lambdas │ └── opensearch_layer # opensearh layer that installs all dependencies for create Amazon Opensearch serverless index. ├── streamlit-app # Steamlit app that interacts with the Amazon Bedrock Agent └── code_stack.py # Amazon CDK stack that deploys all AWS resources
Untuk mengintegrasikan data khusus Anda guna menerapkan solusi, harap ikuti panduan terstruktur berikut yang disesuaikan dengan kebutuhan Anda:
Temukan direktori assets/knowledgebase_data_source/
.
Tempatkan kumpulan data Anda di dalam folder ini.
Akses file cdk.json
.
Navigasikan ke bidang context/configure/paths/knowledgebase_file_name
dan perbarui sesuai kebutuhan.
Selanjutnya, ubah bidang bedrock_instructions/knowledgebase_instruction
di file cdk.json
agar secara akurat mencerminkan nuansa dan konteks kumpulan data baru Anda.
Di dalam direktori assets/data_query_data_source/
, buatlah subdirektori, misalnya tabular_data.
Setor kumpulan data terstruktur Anda (format yang dapat diterima mencakup CSV , JSON , ORC , dan Parquet ) ke dalam subfolder yang baru dibuat ini.
Jika Anda terhubung ke database yang ada , perbarui fungsi create_sql_engine()
di code/lambda/action-lambda/build_query_engine.py
untuk terhubung ke database Anda.
Perbarui bidang context/configure/paths/athena_table_data_prefix
file cdk.json
agar selaras dengan jalur data baru.
Revisi code/lambda/action-lambda/dynamic_examples.csv
dengan memasukkan teks baru ke contoh SQL yang sesuai dengan kumpulan data Anda.
Revisi code/lambda/action-lambda/prompt_templates.py
untuk mencerminkan atribut data tabular baru Anda.
Ubah bidang context/configure/bedrock_instructions/action_group_description
file cdk.json
untuk menjelaskan tujuan dan fungsionalitas lambda tindakan yang disesuaikan untuk kumpulan data Anda.
Refleksikan fungsi baru lambda tindakan Anda di file assets/agent_api_schema/artifacts_schema.json
.
Dalam file cdk.json
, di bawah context/configure/bedrock_instructions/agent_instruction section
, berikan deskripsi komprehensif tentang fungsi dan tujuan desain Agen Amazon Bedrock, dengan mempertimbangkan data yang baru terintegrasi.
Langkah-langkah ini dirancang untuk memastikan proses integrasi yang lancar dan efisien, sehingga memungkinkan Anda menerapkan solusi secara efektif dengan data pesanan Anda.