Kecerdasan Data Generatif

Tingkatkan AI percakapan dengan teknik perutean tingkat lanjut dengan Amazon Bedrock | Layanan Web Amazon

Tanggal:

Asisten kecerdasan buatan (AI) percakapan dirancang untuk memberikan respons yang tepat dan real-time melalui perutean kueri yang cerdas ke fungsi AI yang paling sesuai. Dengan layanan AI generatif AWS seperti Batuan Dasar Amazon, pengembang dapat membuat sistem yang secara ahli mengelola dan merespons permintaan pengguna. Amazon Bedrock adalah layanan terkelola sepenuhnya yang menawarkan pilihan model fondasi (FM) berperforma tinggi dari perusahaan AI terkemuka seperti AI21 Labs, Anthropic, Cohere, Meta, Stability AI, dan Amazon menggunakan satu API, bersama dengan serangkaian luas kemampuan yang Anda perlukan untuk membangun aplikasi AI generatif dengan keamanan, privasi, dan AI yang bertanggung jawab.

Posting ini menilai dua pendekatan utama untuk mengembangkan asisten AI: menggunakan layanan terkelola seperti Agen untuk Amazon Bedrock, dan menggunakan teknologi sumber terbuka seperti LangChain. Kami mengeksplorasi kelebihan dan tantangan masing-masing, sehingga Anda dapat memilih jalur yang paling sesuai dengan kebutuhan Anda.

Apa itu asisten AI?

Asisten AI adalah sistem cerdas yang memahami kueri bahasa alami dan berinteraksi dengan berbagai alat, sumber data, dan API untuk melakukan tugas atau mengambil informasi atas nama pengguna. Asisten AI yang efektif memiliki kemampuan utama berikut:

  • Pemrosesan bahasa alami (NLP) dan aliran percakapan
  • Integrasi basis pengetahuan dan pencarian semantik untuk memahami dan mengambil informasi yang relevan berdasarkan nuansa konteks percakapan
  • Menjalankan tugas, seperti kueri database dan kustom AWS Lambda fungsi
  • Menangani percakapan khusus dan permintaan pengguna

Kami mendemonstrasikan manfaat asisten AI menggunakan manajemen perangkat Internet of Things (IoT) sebagai contoh. Dalam kasus penggunaan ini, AI dapat membantu teknisi mengelola mesin secara efisien dengan perintah yang mengambil data atau mengotomatiskan tugas, sehingga menyederhanakan operasi di bidang manufaktur.

Agen untuk pendekatan Amazon Bedrock

Agen untuk Amazon Bedrock memungkinkan Anda membangun aplikasi AI generatif yang dapat menjalankan tugas multi-langkah di seluruh sistem dan sumber data perusahaan. Ia menawarkan kemampuan utama berikut:

  • Pembuatan prompt otomatis dari instruksi, detail API, dan informasi sumber data, menghemat waktu berminggu-minggu dalam upaya rekayasa cepat
  • Retrieval Augmented Generation (RAG) untuk menghubungkan agen ke sumber data perusahaan dengan aman dan memberikan respons yang relevan
  • Orkestrasi dan menjalankan tugas multi-langkah dengan memecah permintaan menjadi urutan logis dan memanggil API yang diperlukan
  • Visibilitas ke dalam alasan agen melalui jejak rantai pemikiran (CoT), memungkinkan pemecahan masalah dan mengarahkan perilaku model
  • Kemampuan teknis yang cepat untuk memodifikasi templat cepat yang dibuat secara otomatis untuk meningkatkan kontrol atas agen

Anda dapat menggunakan Agen untuk Amazon Bedrock dan Basis Pengetahuan untuk Batuan Dasar Amazon untuk membangun dan menerapkan asisten AI untuk kasus penggunaan perutean yang kompleks. Mereka memberikan keuntungan strategis bagi pengembang dan organisasi dengan menyederhanakan manajemen infrastruktur, meningkatkan skalabilitas, meningkatkan keamanan, dan mengurangi pekerjaan berat yang tidak dapat dibedakan. Mereka juga memungkinkan kode lapisan aplikasi yang lebih sederhana karena logika perutean, vektorisasi, dan memori dikelola sepenuhnya.

Ikhtisar solusi

Solusi ini memperkenalkan asisten AI percakapan yang disesuaikan untuk manajemen dan pengoperasian perangkat IoT saat menggunakan Claude v2.1 dari Anthropic di Amazon Bedrock. Fungsi inti asisten AI diatur oleh serangkaian instruksi komprehensif, yang dikenal sebagai a perintah sistem, yang menggambarkan kemampuan dan bidang keahliannya. Panduan ini memastikan asisten AI dapat menangani berbagai tugas, mulai dari mengelola informasi perangkat hingga menjalankan perintah operasional.

"""The following is the system prompt that outlines the full scope of the AI assistant's capabilities:
You are an IoT Ops agent that handles the following activities:
- Looking up IoT device information
- Checking IoT operating metrics (historical data)
- Performing actions on a device-by-device ID
- Answering general questions
You can check device information (Device ID, Features, Technical Specifications, Installation Guide, Maintenance and Troubleshooting, Safety Guidelines, Warranty, and Support) from the "IotDeviceSpecs" knowledge base.
Additionally, you can access device historical data or device metrics. The device metrics are stored in an Athena DB named "iot_ops_glue_db" in a table named "iot_device_metrics". 
The table schema includes fields for oil level, temperature, pressure, received_at timestamp, and device_id.
The available actions you can perform on the devices include start, shutdown, and reboot."""

Dilengkapi dengan kemampuan ini, sebagaimana dijelaskan secara rinci dalam perintah sistem, asisten AI mengikuti alur kerja terstruktur untuk menjawab pertanyaan pengguna. Gambar berikut memberikan representasi visual alur kerja ini, mengilustrasikan setiap langkah dari interaksi pengguna awal hingga respons akhir.

representasi visual dari alur kerja ini, yang mengilustrasikan setiap langkah dari interaksi pengguna awal hingga respons akhir.

Alur kerja terdiri dari langkah-langkah berikut:

  1. Prosesnya dimulai ketika pengguna meminta asisten untuk melakukan suatu tugas; misalnya, meminta titik data maksimum untuk perangkat IoT tertentu device_xxx. Masukan teks ini ditangkap dan dikirim ke asisten AI.
  2. Asisten AI menafsirkan masukan teks pengguna. Ini menggunakan riwayat percakapan, kelompok tindakan, dan basis pengetahuan yang disediakan untuk memahami konteks dan menentukan tugas yang diperlukan.
  3. Setelah maksud pengguna diurai dan dipahami, asisten AI menentukan tugas. Hal ini didasarkan pada instruksi yang ditafsirkan oleh asisten sesuai perintah sistem dan masukan pengguna.
  4. Tugas tersebut kemudian dijalankan melalui serangkaian panggilan API. Ini dilakukan dengan menggunakan Reaksi prompting, yang memecah tugas menjadi serangkaian langkah yang diproses secara berurutan:
    1. Untuk pemeriksaan metrik perangkat, kami menggunakan check-device-metrics grup tindakan, yang melibatkan panggilan API ke fungsi Lambda yang kemudian melakukan kueri Amazon Athena untuk data yang diminta.
    2. Untuk tindakan perangkat langsung seperti memulai, menghentikan, atau mem-boot ulang, kami menggunakan action-on-device grup tindakan, yang memanggil fungsi Lambda. Fungsi ini memulai proses yang mengirimkan perintah ke perangkat IoT. Untuk postingan ini, fungsi Lambda mengirimkan notifikasi menggunakan Layanan Email Amazon Simple (SES Amazon).
    3. Kami menggunakan Basis Pengetahuan untuk Amazon Bedrock untuk mengambil dari data historis yang disimpan sebagai penyematan di Layanan Pencarian Terbuka Amazon basis data vektor.
  5. Setelah tugas selesai, respons akhir dihasilkan oleh Amazon Bedrock FM dan disampaikan kembali kepada pengguna.
  6. Agen untuk Amazon Bedrock secara otomatis menyimpan informasi menggunakan sesi stateful untuk mempertahankan percakapan yang sama. Status akan dihapus setelah batas waktu idle yang dapat dikonfigurasi berlalu.

Tinjauan teknis

Diagram berikut mengilustrasikan arsitektur untuk menerapkan asisten AI dengan Agen untuk Amazon Bedrock.

Diagram arsitektur untuk menerapkan asisten AI dengan Agen untuk Amazon Bedrock.

Ini terdiri dari komponen-komponen utama berikut:

  • Antarmuka percakapan โ€“ Antarmuka percakapan menggunakan Streamlit, pustaka Python sumber terbuka yang menyederhanakan pembuatan aplikasi web khusus yang menarik secara visual untuk pembelajaran mesin (ML) dan ilmu data. Itu dihosting di Layanan Kontainer Amazon Elastic (Amazon ECS) dengan Fargate AWS, dan diakses menggunakan Application Load Balancer. Anda dapat menggunakan Fargate dengan Amazon ECS untuk menjalankannya kontainer tanpa harus mengelola server, cluster, atau mesin virtual.
  • Agen untuk Amazon Bedrock โ€“ Agen untuk Amazon Bedrock menyelesaikan pertanyaan pengguna melalui serangkaian langkah penalaran dan tindakan yang sesuai berdasarkan Perintah Bereaksi:
    • Basis Pengetahuan untuk Batuan Dasar Amazon โ€“ Basis Pengetahuan untuk Amazon Bedrock menyediakan terkelola sepenuhnya LAP untuk memberi asisten AI akses ke data Anda. Dalam kasus penggunaan kami, kami mengunggah spesifikasi perangkat ke dalam Layanan Penyimpanan Sederhana Amazon (Amazon S3) ember. Ini berfungsi sebagai sumber data ke basis pengetahuan.
    • Kelompok aksi โ€“ Ini adalah skema API yang ditentukan yang memanggil fungsi Lambda tertentu untuk berinteraksi dengan perangkat IoT dan layanan AWS lainnya.
    • Antropik Claude v2.1 di Amazon Batuan Dasar โ€“ Model ini menafsirkan pertanyaan pengguna dan mengatur alur tugas.
    • Penyematan Amazon Titan โ€“ Model ini berfungsi sebagai model penyematan teks, mengubah teks bahasa alamiโ€”dari satu kata menjadi dokumen kompleksโ€”menjadi vektor numerik. Hal ini memungkinkan kemampuan pencarian vektor, memungkinkan sistem mencocokkan kueri pengguna secara semantik dengan entri basis pengetahuan yang paling relevan untuk pencarian yang efektif.

Solusi ini terintegrasi dengan layanan AWS seperti Lambda untuk menjalankan kode sebagai respons terhadap panggilan API, Athena untuk menanyakan kumpulan data, OpenSearch Service untuk pencarian melalui basis pengetahuan, dan Amazon S3 untuk penyimpanan. Layanan-layanan ini bekerja sama untuk memberikan pengalaman yang lancar untuk manajemen operasi perangkat IoT melalui perintah bahasa alami.

manfaat

Solusi ini menawarkan manfaat berikut:

  • Kompleksitas implementasi:
    • Lebih sedikit baris kode yang diperlukan, karena Agen untuk Amazon Bedrock mengabstraksi sebagian besar kompleksitas yang mendasarinya, sehingga mengurangi upaya pengembangan
    • Mengelola database vektor seperti OpenSearch Service disederhanakan, karena Basis Pengetahuan untuk Amazon Bedrock menangani vektorisasi dan penyimpanan
    • Integrasi dengan berbagai layanan AWS lebih efisien melalui grup tindakan yang telah ditentukan sebelumnya
  • Pengalaman pengembang:
    • Konsol Amazon Bedrock menyediakan antarmuka yang ramah pengguna untuk pengembangan cepat, pengujian, dan analisis akar masalah (RCA), sehingga meningkatkan pengalaman pengembang secara keseluruhan
  • Kelincahan dan fleksibilitas:
    • Agen untuk Amazon Bedrock memungkinkan peningkatan yang lancar ke FM yang lebih baru (seperti Claude 3.0) ketika sudah tersedia, sehingga solusi Anda tetap terkini dengan kemajuan terkini
    • Kuota dan batasan layanan dikelola oleh AWS, sehingga mengurangi overhead pemantauan dan penskalaan infrastruktur
  • Keamanan:
    • Amazon Bedrock adalah layanan yang dikelola sepenuhnya, mematuhi standar keamanan dan kepatuhan AWS yang ketat, sehingga berpotensi menyederhanakan tinjauan keamanan organisasi

Meskipun Agen untuk Amazon Bedrock menawarkan solusi yang efisien dan terkelola untuk membangun aplikasi AI percakapan, beberapa organisasi mungkin lebih memilih pendekatan sumber terbuka. Dalam kasus seperti ini, Anda dapat menggunakan kerangka kerja seperti LangChain, yang akan kita bahas di bagian selanjutnya.

Pendekatan perutean dinamis LangChain

LangChain adalah kerangka kerja sumber terbuka yang menyederhanakan pembuatan AI percakapan dengan memungkinkan integrasi model bahasa besar (LLM) dan kemampuan perutean dinamis. Dengan LangChain Expression Language (LCEL), pengembang dapat mendefinisikan rute, yang memungkinkan Anda membuat rantai non-deterministik di mana keluaran dari langkah sebelumnya menentukan langkah berikutnya. Perutean membantu memberikan struktur dan konsistensi dalam interaksi dengan LLM.

Untuk postingan ini, kami menggunakan contoh yang sama dengan asisten AI untuk manajemen perangkat IoT. Namun, perbedaan utamanya adalah kita perlu menangani perintah sistem secara terpisah dan memperlakukan setiap rantai sebagai entitas terpisah. Rantai perutean memutuskan rantai tujuan berdasarkan masukan pengguna. Keputusan dibuat dengan dukungan LLM dengan meneruskan prompt sistem, riwayat obrolan, dan pertanyaan pengguna.

Ikhtisar solusi

Diagram berikut menggambarkan alur kerja solusi perutean dinamis.

Alur kerja solusi perutean dinamis dengan LangChain

Alur kerja terdiri dari langkah-langkah berikut:

  1. Pengguna mengajukan pertanyaan kepada asisten AI. Misalnya, โ€œBerapa metrik maksimal untuk perangkat 1009?โ€
  2. LLM mengevaluasi setiap pertanyaan beserta riwayat obrolan dari sesi yang sama untuk menentukan sifat dan bidang subjeknya (seperti SQL, tindakan, pencarian, atau SME). LLM mengklasifikasikan masukan dan rantai perutean LCEL mengambil masukan tersebut.
  3. Rantai router memilih rantai tujuan berdasarkan masukan, dan LLM diberikan prompt sistem berikut:
"""Given the user question below, classify it as one of the candidate prompts. You may want to modify the input considering the chat history and the context of the question. 
Sometimes the user may just assume that you have the context of the conversation and may not provide a clear input. Hence, you are being provided with the chat history for more context. 
Respond with only a Markdown code snippet containing a JSON object formatted EXACTLY as specified below. 
Do not provide an explanation to your classification beside the Markdown, I just need to know your decision on which destination and next_inputs
<candidate prompt>
physics: Good for answering questions about physics
sql: sql: Good for querying sql from AWS Athena. User input may look like: get me max or min for device x?
lambdachain: Good to execute actions with Amazon Lambda like shutting down a device or turning off an engine User input can be like, shutdown device x, or terminate process y, etc.
rag: Good to search knowledgebase and retrieve information about devices and other related information. User question can be like: what do you know about device x?
default: if the input is not well suited for any of the candidate prompts above. this could be used to carry on the conversation and respond to queries like provide a summary of the conversation
</candidate prompt>"""

LLM mengevaluasi pertanyaan pengguna beserta riwayat obrolan untuk menentukan sifat kueri dan bidang subjeknya. LLM kemudian mengklasifikasikan masukan dan keluaran respons JSON dalam format berikut:

<Markdown>
```json
{{
"destination": string  name of the prompt to use
"next_inputs": string  a potentially modified version of the original input
}}
```

Rantai router menggunakan respons JSON ini untuk memanggil rantai tujuan yang sesuai. Ada empat rantai tujuan khusus subjek, masing-masing dengan perintah sistemnya sendiri:

  1. Kueri terkait SQL dikirim ke rantai tujuan SQL untuk interaksi database. Anda dapat menggunakan LCEL untuk membangun rantai SQL.
  2. Pertanyaan berorientasi tindakan memanggil rantai tujuan Lambda khusus untuk menjalankan operasi. Dengan LCEL, Anda dapat menentukan sendiri fungsi kustom; dalam kasus kami, ini adalah fungsi untuk menjalankan fungsi Lambda yang telah ditentukan sebelumnya untuk mengirim email dengan ID perangkat yang diurai. Contoh masukan pengguna mungkin โ€œMatikan perangkat 1009.โ€
  3. Pertanyaan yang berfokus pada pencarian dilanjutkan ke LAP rantai tujuan untuk pengambilan informasi.
  4. Pertanyaan terkait UKM ditujukan ke rantai tujuan UKM/ahli untuk mendapatkan wawasan khusus.
  5. Setiap rantai tujuan mengambil masukan dan menjalankan model atau fungsi yang diperlukan:
    1. Rantai SQL menggunakan Athena untuk menjalankan kueri.
    2. Rantai RAG menggunakan Layanan OpenSearch untuk pencarian semantik.
    3. Rantai Lambda kustom menjalankan fungsi Lambda untuk tindakan.
    4. Rantai UKM/pakar memberikan wawasan menggunakan model Amazon Bedrock.
  6. Tanggapan dari setiap rantai destinasi dirumuskan menjadi wawasan yang koheren oleh LLM. Wawasan ini kemudian dikirimkan ke pengguna, menyelesaikan siklus kueri.
  7. Masukan dan tanggapan pengguna disimpan di Amazon DynamoDB untuk memberikan konteks kepada LLM untuk sesi saat ini dan dari interaksi sebelumnya. Durasi informasi yang disimpan di DynamoDB dikontrol oleh aplikasi.

Tinjauan teknis

Diagram berikut menggambarkan arsitektur solusi perutean dinamis LangChain.

Diagram arsitektur solusi perutean dinamis LangChain

Aplikasi web dibangun di Streamlit yang dihosting di Amazon ECS dengan Fargate, dan diakses menggunakan Application Load Balancer. Kami menggunakan Claude v2.1 Anthropic di Amazon Bedrock sebagai LLM kami. Aplikasi web berinteraksi dengan model menggunakan perpustakaan LangChain. Ia juga berinteraksi dengan berbagai layanan AWS lainnya, seperti OpenSearch Service, Athena, dan DynamoDB untuk memenuhi kebutuhan pengguna akhir.

manfaat

Solusi ini menawarkan manfaat berikut:

  • Kompleksitas implementasi:
    • Meskipun memerlukan lebih banyak kode dan pengembangan khusus, LangChain memberikan fleksibilitas dan kontrol yang lebih besar atas logika perutean dan integrasi dengan berbagai komponen.
    • Mengelola database vektor seperti OpenSearch Service memerlukan upaya pengaturan dan konfigurasi tambahan. Proses vektorisasi diimplementasikan dalam kode.
    • Integrasi dengan layanan AWS mungkin melibatkan lebih banyak kode dan konfigurasi khusus.
  • Pengalaman pengembang:
    • Pendekatan LangChain yang berbasis Python dan dokumentasi ekstensif dapat menarik bagi pengembang yang sudah terbiasa dengan Python dan alat sumber terbuka.
    • Pengembangan dan debugging yang cepat mungkin memerlukan lebih banyak upaya manual dibandingkan dengan menggunakan konsol Amazon Bedrock.
  • Kelincahan dan fleksibilitas:
    • LangChain mendukung berbagai LLM, memungkinkan Anda beralih di antara model atau penyedia yang berbeda, sehingga mendorong fleksibilitas.
    • Sifat open source dari LangChain memungkinkan perbaikan dan penyesuaian berbasis komunitas.
  • Keamanan:
    • Sebagai kerangka kerja sumber terbuka, LangChain mungkin memerlukan tinjauan keamanan yang lebih ketat dan pemeriksaan dalam organisasi, sehingga berpotensi menambah overhead.

Kesimpulan

Asisten AI percakapan adalah alat transformatif untuk menyederhanakan operasi dan meningkatkan pengalaman pengguna. Postingan ini mengeksplorasi dua pendekatan canggih menggunakan layanan AWS: Agen terkelola untuk Amazon Bedrock dan perutean dinamis LangChain sumber terbuka yang fleksibel. Pilihan antara pendekatan ini bergantung pada kebutuhan organisasi Anda, preferensi pengembangan, dan tingkat penyesuaian yang diinginkan. Apa pun jalur yang diambil, AWS memberdayakan Anda untuk menciptakan asisten AI cerdas yang merevolusi interaksi bisnis dan pelanggan

Temukan kode solusi dan aset penerapan di kami Repositori GitHub, tempat Anda dapat mengikuti langkah-langkah mendetail untuk setiap pendekatan AI percakapan.


Tentang Penulis

Amir Hakme adalah Arsitek Solusi AWS yang berbasis di Pennsylvania. Dia berkolaborasi dengan Vendor Perangkat Lunak Independen (ISV) di wilayah Timur Laut, membantu mereka merancang dan membangun platform yang skalabel dan modern di AWS Cloud. Sebagai pakar AI/ML dan AI generatif, Ameer membantu pelanggan membuka potensi teknologi mutakhir ini. Di waktu senggangnya, ia menikmati mengendarai sepeda motor dan menghabiskan waktu berkualitas bersama keluarga.

Sharon Li adalah Arsitek Solusi AI/ML di Amazon Web Services yang berbasis di Boston, dengan hasrat untuk merancang dan membangun aplikasi AI Generatif di AWS. Dia berkolaborasi dengan pelanggan untuk memanfaatkan layanan AWS AI/ML untuk solusi inovatif.

Kawsar Kamal adalah arsitek solusi senior di Amazon Web Services dengan pengalaman lebih dari 15 tahun di bidang otomatisasi infrastruktur dan keamanan. Dia membantu klien merancang dan membangun solusi DevSecOps dan AI/ML yang dapat diskalakan di Cloud.

tempat_img

Intelijen Terbaru

tempat_img

Hubungi kami

Hai, yang di sana! Apa yang bisa saya bantu?