Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Tutorial ini menunjukkan kepada Anda cara membangun agen AI otonom yang memproses pertanyaan dan pemesanan pelancong untuk jalur pelayaran. Agen AI menggunakan kerangka kerja Agen LangChain untuk perencanaan, penggunaan alat, dan persepsi. Agen kemudian menggabungkan fitur-fitur ini dengan database vektor Azure DocumentDB dan kemampuan penyimpanan dokumen untuk sistem memori terpadu.
Agen sampel beroperasi dalam backend Python FastAPI dan mendukung interaksi pengguna melalui antarmuka pengguna React JavaScript. Implementasi ini menunjukkan bagaimana agen AI maju melampaui chatbot dasar untuk melakukan tugas kompleks berdasarkan bahasa alami yang secara tradisional memerlukan logika berkode.
Dalam tutorial ini, Anda akan belajar cara:
- Menyiapkan Azure DocumentDB dengan kemampuan pencarian vektor
- Memuat dokumen perjalanan dan membuat penyematan vektor
- Membangun agen AI menggunakan Python FastAPI dan LangChain
- Menerapkan alat agen untuk pencarian liburan, pencarian rencana perjalanan, dan pemesanan
- Membuat antarmuka web React untuk interaksi pengguna
- Menguji solusi agen AI lengkap
Prasyarat
Langganan Azure
- Jika Anda tidak memiliki langganan Azure, buat akun gratis
Kluster Azure DocumentDB yang sudah ada
- Jika Anda tidak memiliki kluster, buat kluster baru
Akun untuk OpenAI API atau Azure OpenAI Service.
Lingkungan pengembangan terintegrasi, seperti Visual Studio Code.
Python 3.11.4 atau yang lebih baru diinstal di lingkungan pengembangan.
Node.js diinstal untuk frontend React.
Mengunduh proyek sampel
Semua himpunan data kode dan sampel tersedia di repositori GitHub Agen Travel AI.
Kloning atau unduh repositori (https://github.com/jonathanscholtes/Travel-AI-Agent-React-FastAPI-and-Cosmos-DB-Vector-Store) ke lingkungan pengembangan lokal Anda.
Navigasikan ke direktori proyek dan jelajahi struktur:
/loader: Berisi kode Python untuk memuat dokumen sampel dan penyematan vektor di Azure DocumentDB/api: Berisi proyek Python FastAPI untuk menghosting agen perjalanan AI/web: Berisi kode untuk antarmuka web React
Memuat dokumen perjalanan ke Azure DocumentDB
/loader Direktori berisi proyek Python untuk memuat sampel dokumen perjalanan ke Azure DocumentDB dan membuat penyematan vektor yang diperlukan.
Navigasikan ke
/loaderdirektori di terminal Anda.Buat lingkungan virtual Python:
python -m venv venvAktifkan lingkungan virtual:
# On Windows venv\Scripts\activate # On macOS/Linux source venv/bin/activateInstal dependensi yang diperlukan:
python -m pip install -r requirements.txtBuat
.envfile di/loaderdirektori dengan detail koneksi Anda:OPENAI_API_KEY="<your OpenAI key>" MONGO_CONNECTION_STRING="mongodb+srv:<your connection string from Azure DocumentDB>"File
main.pyberfungsi sebagai titik masuk pusat untuk memuat data. Ini memproses data perjalanan sampel termasuk informasi pengiriman dan tujuan, kemudian menghasilkan paket rencana perjalanan.Jalankan skrip pemuatan data dari
/loaderdirektori. Skrip melakukan operasi ini:Membaca data pengiriman dan tujuan dari file JSON
Membuat lima paket rencana perjalanan menggunakan
ItineraryBuilderMenyimpan paket perjalanan ke
itinerarykumpulanMenyimpan tujuan ke koleksi
destinationsMembuat embedding vektor untuk kapal dalam koleksi
shipsMenambahkan indeks pencarian teks ke nama pengiriman
python main.pyVerifikasi output menunjukkan keberhasilan penyelesaian:
--build itinerary-- --load itinerary-- --load destinations-- --load vectors ships--
Membangun API agen perjalanan AI
Agen perjalanan AI dihosting melalui backend Python FastAPI yang berintegrasi dengan antarmuka frontend dan memproses permintaan agen dengan mengkalibrasi perintah model bahasa besar (LLM) terhadap data Azure DocumentDB.
Navigasikan ke
/apidirektori di terminal Anda.Buat dan aktifkan lingkungan virtual Python:
python -m venv venv # On Windows venv\Scripts\activate # On macOS/Linux source venv/bin/activateInstal dependensi yang diperlukan:
python -m pip install -r requirements.txtBuat
.envfile di/apidirektori:OPENAI_API_KEY="<your OpenAI key>" MONGO_CONNECTION_STRING="mongodb+srv:<your connection string from Azure DocumentDB>"Jalankan aplikasi FastAPI dari
/apidirektori:python app.pyServer dimulai pada
http://127.0.0.1:8000sebagai pengaturan awal.Jelajahi titik akhir API dengan mengakses dokumentasi Swagger interaktif di
http://127.0.0.1:8000/docs.
Menguji fungsionalitas agen AI
Uji bahwa agen AI berfungsi seperti yang diharapkan.
Di antarmuka Swagger, uji titik akhir sesi:
Navigasi ke
/session/dan pilih CobalahJalankan permintaan untuk mendapatkan ID sesi untuk melacak riwayat percakapan
Uji fitur obrolan agen:
Navigasi ke
/agent/agent_chatdan pilih CobalahGunakan contoh input ini untuk menguji agen:
{ "input": "I want to take a relaxing vacation.", "session_id": "your-session-id-from-step-1" }Agen harus merespons dengan rekomendasi pelayaran berdasarkan pencarian kesamaan vektor, menunjukkan integrasi antara LLM dan Azure DocumentDB.
Membuat antarmuka web React
Antarmuka web menyediakan cara yang mudah digunakan untuk berinteraksi dengan agen perjalanan AI melalui antarmuka percakapan.
Menyiapkan lingkungan React
/webBuka direktori di terminal Anda.Instal dependensi proyek:
npm ciBuat
.envfile di/webdirektori:REACT_APP_API_HOST=http://127.0.0.1:8000
Luncurkan aplikasi web
Mulai server pengembangan React:
npm startAplikasi terbuka secara otomatis di browser default Anda, biasanya di
http://localhost:3000.Antarmuka menunjukkan situs web perjalanan dengan kapal pesiar dan gambar tujuan.
Menguji solusi lengkap
Pada halaman utama, pilih Rencanakan perjalanan Anda dengan mudah untuk membuka antarmuka obrolan asisten perjalanan.
Antarmuka obrolan terbuka dalam dialog dengan pesan yang telah diisi sebelumnya: "Saya ingin mengambil liburan santai."
Pilih Kirim untuk mengirim pesan ke agen AI.
Agen merespons dengan rekomendasi pelayaran berdasarkan input Anda, menunjukkan:
Pemrosesan bahasa alami
Pencarian kesamaan vektor terhadap Azure DocumentDB
Memori percakapan sepanjang sesi
Respons berformat HTML di antarmuka obrolan
Lihat berbagai kemampuan agen dengan melanjutkan percakapan. Tanyakan tentang kapal tertentu, rencana perjalanan, atau melakukan pemesanan.
Memahami arsitektur agen AI
Implementasi agen AI mengikuti arsitektur berlapis yang memisahkan kekhawatiran dan memungkinkan pemeliharaan.
Komponen Lapisan Layanan
Lapisan layanan berisi logika bisnis inti dan implementasi Agen LangChain:
Inisialisasi Agen:
init.pyModul menyiapkan model ChatOpenAI, alat agen, dan riwayat percakapan.Alat Agen: Tiga alat utama menangani pencarian liburan, pencarian rencana perjalanan, dan pemesanan pelayaran.
Manajemen Memori: Riwayat percakapan disimpan di Azure DocumentDB menggunakan pengidentifikasi sesi.
Fungsionalitas Alat Agen
Agen AI menggunakan tiga alat khusus.
vacation_lookup: Melakukan pencarian vektor terhadap Azure DocumentDB untuk menemukan informasi perjalanan yang relevan.
itinerary_lookup: Mengambil detail dan jadwal paket pesiar untuk kapal tertentu.
book_cruise: Menangani pemesanan paket pelayaran dengan validasi informasi penumpang.
Integrasi Lapisan Data
Lapisan data menangani semua interaksi dengan Azure DocumentDB.
Pencarian Vektor: Pencarian kesamaan dengan penilaian untuk rekomendasi perjalanan.
Penyimpanan Dokumen: Data terstruktur untuk kapal, tujuan, dan rencana perjalanan.
Riwayat Percakapan: Penyimpanan pesan obrolan berbasis sesi.
Membersihkan sumber daya
Jika Anda tidak lagi memerlukan sumber daya yang dibuat dalam tutorial ini, Anda dapat menghapusnya untuk menghindari biaya yang berkelanjutan.
Di portal Microsoft Azure, navigasikan ke akun Azure DocumentDB Anda.
Jika Anda membuat grup sumber daya khusus untuk tutorial ini, hapus seluruh grup sumber daya.
Jika tidak, hapus koleksi tertentu yang dibuat:
travel.itinerarytravel.destinationstravel.shipstravel.history