Bagikan melalui


Mulai menggunakan Obrolan AI Tanpa Server dengan RAG menggunakan LangChain.js

Membuat aplikasi AI bisa menjadi kompleks. Dengan teknologi LangChain.js, Azure Functions, dan Tanpa Server, Anda dapat menyederhanakan proses ini. Alat-alat ini mengelola infrastruktur dan menskalakan secara otomatis, memungkinkan Anda fokus pada fungsionalitas chatbot. Chatbot menggunakan dokumen perusahaan untuk menghasilkan respons AI.

Kode ini mencakup data sampel untuk perusahaan fiktif, Contoso Real Estate. Pelanggan dapat mengajukan pertanyaan dukungan tentang produk perusahaan. Data ini mencakup dokumen tentang ketentuan layanan perusahaan, kebijakan privasi, dan panduan dukungan.

Cuplikan layar aplikasi obrolan di browser memperlihatkan beberapa saran untuk input obrolan dan kotak teks obrolan untuk memasukkan pertanyaan.

Catatan

Artikel ini menggunakan satu atau beberapa templat aplikasi AI sebagai dasar untuk contoh dan panduan dalam artikel. Templat aplikasi AI memberi Anda implementasi referensi yang terawat dan mudah disebarkan dengan baik yang membantu memastikan titik awal berkualitas tinggi untuk aplikasi AI Anda.

Ikhtisar arsitektur

Aplikasi obrolan

Pengguna berinteraksi dengan aplikasi:

  • Dengan antarmuka obrolan di aplikasi web klien.
  • Aplikasi web klien mengirimkan kueri pengguna ke API Tanpa Server melalui panggilan HTTP.
  • API Tanpa Server membuat rantai untuk mengoordinasikan interaksi antara Azure AI dan Azure AI Search untuk menghasilkan jawaban.
  • Jika ada kebutuhan untuk mereferensikan dokumen, Azure Blob Storage digunakan untuk mengambil dokumen PDF.
  • Respons yang dihasilkan kemudian dikirim kembali ke aplikasi web dan ditampilkan kepada pengguna.

Arsitektur sederhana aplikasi obrolan ditampilkan dalam diagram berikut:

Diagram memperlihatkan arsitektur dari klien ke aplikasi backend.

LangChainjs menyederhanakan kompleksitas antara layanan

Alur API berguna untuk memahami bagaimana LangChainJS sangat membantu dalam skenario ini dengan mengabstraksi interaksi. Titik akhir API tanpa server:

  • Menerima pertanyaan dari pengguna.
  • Membuat objek klien:
    • Azure OpenAI untuk penyematan dan obrolan
    • Pencarian Azure AI untuk penyimpanan vektor
  • Membuat rantai dokumen dengan model LLM, pesan obrolan (permintaan sistem dan pengguna), dan sumber dokumen.
  • Membuat rantai pengambilan dari rantai dokumen dan penyimpanan vektor.
  • Aliran respons dari rantai pengambilan.

Pekerjaan pengembang adalah mengonfigurasi layanan dependensi dengan benar, seperti Azure OpenAI dan Azure AI Search dan membangun rantai dengan benar. Logika rantai yang mendasar tahu cara mengatasi kueri. Ini memungkinkan Anda untuk membangun rantai dari berbagai layanan dan konfigurasi selama mereka bekerja dengan persyaratan LangChain.

Di mana Azure dalam arsitektur ini?

Aplikasi ini dibuat dari beberapa komponen:

  • Aplikasi web yang dibuat dengan satu komponen web obrolan yang dibangun dengan Lit dan dihosting di Azure Static Web Apps. Kode terletak di packages/webapp folder .

  • API tanpa server yang dibangun dengan Azure Functions dan menggunakan LangChain.js untuk menyerap dokumen dan menghasilkan respons terhadap kueri obrolan pengguna. Kode terletak di packages/api folder .

  • Layanan Azure OpenAI untuk membuat penyematan dan menghasilkan jawaban.

  • Database untuk menyimpan teks yang diekstrak dari dokumen dan vektor yang dihasilkan oleh LangChain.js, menggunakan Azure AI Search.

  • Penyimpanan file untuk menyimpan dokumen sumber, menggunakan Azure Blob Storage.

Prasyarat

Lingkungan kontainer pengembangan tersedia dengan semua dependensi yang diperlukan untuk menyelesaikan artikel ini. Anda dapat menjalankan kontainer pengembangan di GitHub Codespaces (di browser) atau secara lokal menggunakan Visual Studio Code.

Untuk menggunakan artikel ini, Anda memerlukan prasyarat berikut:

  • Langganan Azure - buat langganan gratis
  • Izin akun Azure - Akun Azure Anda harus memiliki izin Microsoft.Authorization/roleAssignments/write, seperti Administrator Akses Pengguna atau Pemilik.
  • Akses yang diberikan ke Azure OpenAI dalam langganan Azure yang diinginkan. Saat ini, akses ke layanan ini hanya diberikan oleh aplikasi. Anda dapat mengajukan permohonan akses ke Azure OpenAI dengan melengkapi formulir di https://aka.ms/oai/access. Buka masalah pada repositori ini untuk menghubungi kami jika Anda mengalami masalah.
  • Akun GitHub

Membuka lingkungan pengembangan

Mulai sekarang dengan lingkungan pengembangan yang memiliki semua dependensi yang diinstal untuk menyelesaikan artikel ini.

GitHub Codespaces menjalankan kontainer pengembangan yang dikelola oleh GitHub dengan Visual Studio Code untuk Web sebagai antarmuka pengguna. Untuk lingkungan pengembangan yang paling mudah, gunakan GitHub Codespaces sehingga Anda memiliki alat dan dependensi pengembang yang benar yang telah diinstal sebelumnya untuk menyelesaikan artikel ini.

Penting

Semua akun GitHub dapat menggunakan Codespace hingga 60 jam gratis setiap bulan dengan 2 instans inti. Untuk informasi selengkapnya, lihat GitHub Codespaces bulanan yang disertakan penyimpanan dan jam inti.

  1. Buka di Codespace.

    Buka di GitHub Codespaces

  2. Tunggu hingga codespace dimulai. Proses startup ini dapat memakan waktu beberapa menit.

  3. Di terminal di bagian bawah layar, masuk ke Azure dengan Azure Developer CLI.

    azd auth login
    

    Selesaikan proses autentikasi.

  4. Tugas yang tersisa dalam artikel ini berlangsung dalam konteks kontainer pengembangan ini.

Sebarkan dan jalankan

Repositori sampel berisi semua kode dan file konfigurasi yang Anda butuhkan untuk menyebarkan aplikasi obrolan tanpa server ke Azure. Langkah-langkah berikut memandikan Anda melalui proses penyebaran sampel ke Azure.

Menyebarkan aplikasi obrolan ke Azure

Penting

Sumber daya Azure yang dibuat di bagian ini dikenakan biaya langsung, terutama dari sumber daya Azure AI Search. Sumber daya ini dapat mengumpulkan biaya bahkan jika Anda mengganggu perintah sebelum sepenuhnya dijalankan.

  1. Jalankan perintah Azure Developer CLI berikut untuk menyediakan sumber daya Azure dan menyebarkan kode sumber:

    azd up
    
  2. Gunakan tabel berikut untuk menjawab perintah:

    Prompt Jawaban
    Nama lingkungan Tetap pendek dan huruf kecil. Tambahkan nama atau alias Anda. Contohnya,john-chat. Ini digunakan sebagai bagian dari nama grup sumber daya.
    Langganan Pilih langganan untuk membuat sumber daya.
    Lokasi (untuk hosting) Pilih lokasi di dekat Anda dari daftar.
    Lokasi untuk model OpenAI Pilih lokasi di dekat Anda dari daftar. Jika lokasi yang sama tersedia sebagai lokasi pertama Anda, pilih lokasi tersebut.
  3. Tunggu hingga aplikasi disebarkan. Mungkin perlu waktu 5-10 menit agar penyebaran selesai.

  4. Setelah aplikasi berhasil disebarkan, Anda akan melihat dua URL ditampilkan di terminal.

  5. Pilih URL yang diberi Deploying service webapp label untuk membuka aplikasi obrolan di browser.

Menggunakan aplikasi obrolan untuk mendapatkan jawaban dari file PDF

Aplikasi obrolan dimuat sebelumnya dengan informasi sewa dari katalog file PDF. Anda dapat menggunakan aplikasi obrolan untuk mengajukan pertanyaan tentang proses penyewaan. Langkah-langkah berikut memancang Anda melalui proses penggunaan aplikasi obrolan.

  1. Di browser, pilih atau masukkan Apa itu kebijakan pengembalian dana.

    Cuplikan layar pertanyaan dan jawaban pertama aplikasi obrolan.

  2. Pilih pertanyaan tindak lanjut.

    Cuplikan layar permintaan dan jawaban tindak lanjut yang disarankan aplikasi obrolan

  3. Dari respons, pilih kutipan untuk melihat dokumen yang digunakan untuk menghasilkan jawaban. Ini mengirimkan dokumen dari Azure Storage ke klien. Setelah selesai dengan tab browser baru, tutup untuk kembali ke aplikasi obrolan tanpa server.

    Cuplikan layar dokumen asli yang berisi kutipan.

Membersihkan sumber daya

Membersihkan sumber daya Azure

Sumber daya Azure yang dibuat dalam artikel ini ditagihkan ke langganan Azure Anda. Jika Anda tidak mengharapkan untuk membutuhkan sumber daya ini di masa mendatang, hapus sumber daya tersebut untuk menghindari dikenakan lebih banyak biaya.

Jalankan perintah Azure Developer CLI berikut untuk menghapus sumber daya Azure dan menghapus kode sumber:

azd down --purge

Membersihkan GitHub Codespaces

Menghapus lingkungan GitHub Codespaces memastikan bahwa Anda dapat memaksimalkan jumlah pemberian izin per jam inti gratis yang Anda dapatkan untuk akun Anda.

Penting

Untuk informasi selengkapnya tentang penetapan akun GitHub Anda, lihat GitHub Codespaces bulanan yang disertakan penyimpanan dan jam inti.

  1. Masuk ke dasbor GitHub Codespaces (https://github.com/codespaces).

  2. Temukan Codespace Yang sedang berjalan yang bersumber dari Azure-Samples/serverless-chat-langchainjs repositori GitHub.

    Cuplikan layar semua Codespace yang sedang berjalan termasuk status dan templatnya.

  3. Buka menu konteks, ..., untuk codespace, lalu pilih Hapus.

Dapatkan bantuan

Repositori sampel ini menawarkan informasi pemecahan masalah.

Jika masalah Anda tidak diatasi, catat masalah Anda ke Masalah repositori.