Bagikan melalui


Tutorial: Membangun agen perjalanan AI dengan Azure DocumentDB dan LangChain

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

  • 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.

  1. Kloning atau unduh repositori (https://github.com/jonathanscholtes/Travel-AI-Agent-React-FastAPI-and-Cosmos-DB-Vector-Store) ke lingkungan pengembangan lokal Anda.

  2. 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.

  1. Navigasikan ke /loader direktori di terminal Anda.

  2. Buat lingkungan virtual Python:

    python -m venv venv
    
  3. Aktifkan lingkungan virtual:

    # On Windows
    venv\Scripts\activate
    
    # On macOS/Linux
    source venv/bin/activate
    
  4. Instal dependensi yang diperlukan:

    python -m pip install -r requirements.txt
    
  5. Buat .env file di /loader direktori dengan detail koneksi Anda:

    OPENAI_API_KEY="<your OpenAI key>"
    MONGO_CONNECTION_STRING="mongodb+srv:<your connection string from Azure DocumentDB>"
    
  6. File main.py berfungsi sebagai titik masuk pusat untuk memuat data. Ini memproses data perjalanan sampel termasuk informasi pengiriman dan tujuan, kemudian menghasilkan paket rencana perjalanan.

  7. Jalankan skrip pemuatan data dari /loader direktori. Skrip melakukan operasi ini:

    • Membaca data pengiriman dan tujuan dari file JSON

    • Membuat lima paket rencana perjalanan menggunakan ItineraryBuilder

    • Menyimpan paket perjalanan ke itinerary kumpulan

    • Menyimpan tujuan ke koleksi destinations

    • Membuat embedding vektor untuk kapal dalam koleksi ships

    • Menambahkan indeks pencarian teks ke nama pengiriman

    python main.py
    
  8. Verifikasi 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.

  1. Navigasikan ke /api direktori di terminal Anda.

  2. Buat dan aktifkan lingkungan virtual Python:

    python -m venv venv
    
    # On Windows
    venv\Scripts\activate
    
    # On macOS/Linux
    source venv/bin/activate
    
  3. Instal dependensi yang diperlukan:

    python -m pip install -r requirements.txt
    
  4. Buat .env file di /api direktori:

    OPENAI_API_KEY="<your OpenAI key>"
    MONGO_CONNECTION_STRING="mongodb+srv:<your connection string from Azure DocumentDB>"
    
  5. Jalankan aplikasi FastAPI dari /api direktori:

    python app.py
    
  6. Server dimulai pada http://127.0.0.1:8000 sebagai pengaturan awal.

  7. 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.

  1. Di antarmuka Swagger, uji titik akhir sesi:

    • Navigasi ke /session/ dan pilih Cobalah

    • Jalankan permintaan untuk mendapatkan ID sesi untuk melacak riwayat percakapan

  2. Uji fitur obrolan agen:

    • Navigasi ke /agent/agent_chat dan pilih Cobalah

    • Gunakan contoh input ini untuk menguji agen:

    {
      "input": "I want to take a relaxing vacation.",
      "session_id": "your-session-id-from-step-1"
    }
    
  3. 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

  1. /web Buka direktori di terminal Anda.

  2. Instal dependensi proyek:

    npm ci
    
  3. Buat .env file di /web direktori:

    REACT_APP_API_HOST=http://127.0.0.1:8000
    

Luncurkan aplikasi web

  1. Mulai server pengembangan React:

    npm start
    
  2. Aplikasi terbuka secara otomatis di browser default Anda, biasanya di http://localhost:3000.

  3. Antarmuka menunjukkan situs web perjalanan dengan kapal pesiar dan gambar tujuan.

Menguji solusi lengkap

  1. Pada halaman utama, pilih Rencanakan perjalanan Anda dengan mudah untuk membuka antarmuka obrolan asisten perjalanan.

  2. Antarmuka obrolan terbuka dalam dialog dengan pesan yang telah diisi sebelumnya: "Saya ingin mengambil liburan santai."

  3. Pilih Kirim untuk mengirim pesan ke agen AI.

  4. 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

  5. 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.py Modul 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.

  1. vacation_lookup: Melakukan pencarian vektor terhadap Azure DocumentDB untuk menemukan informasi perjalanan yang relevan.

  2. itinerary_lookup: Mengambil detail dan jadwal paket pesiar untuk kapal tertentu.

  3. 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.

  1. Di portal Microsoft Azure, navigasikan ke akun Azure DocumentDB Anda.

  2. Jika Anda membuat grup sumber daya khusus untuk tutorial ini, hapus seluruh grup sumber daya.

  3. Jika tidak, hapus koleksi tertentu yang dibuat:

    • travel.itinerary

    • travel.destinations

    • travel.ships

    • travel.history

Langkah selanjutnya