Membangun aplikasi yang didukung LLM menggunakan LangChain

Halaman ini memperkenalkan cara membangun aplikasi yang didukung LLM menggunakan LangChain. Ringkasan di halaman ini menautkan ke panduan prosedur di GitHub.

Apa itu LangChain?

LangChain adalah framework orkestrasi LLM yang membantu developer membangun aplikasi AI generatif atau alur kerja retrieval-augmented technology (RAG). Layanan ini menyediakan struktur, alat, dan komponen untuk menyederhanakan alur kerja LLM yang kompleks.

Untuk mengetahui informasi selengkapnya tentang LangChain, lihat halaman Google LangChain. Untuk mengetahui informasi selengkapnya tentang framework LangChain, lihat dokumentasi produk LangChain.

Komponen LangChain untuk Firestore

Firestore menawarkan antarmuka LangChain berikut:

Pelajari cara menggunakan LangChain dengan Panduan Memulai LangChain untuk Firestore.

Penyimpanan vektor untuk Firestore

Penyimpanan vektor mengambil dan menyimpan dokumen serta metadata dari database vektor. Penyimpanan vektor memungkinkan aplikasi melakukan penelusuran semantik yang menafsirkan arti kueri pengguna. Jenis penelusuran ini disebut penelusuran vektor, dan dapat menemukan topik yang cocok dengan kueri secara konseptual. Pada waktu kueri, penyimpanan vektor mengambil vektor embedding yang paling mirip dengan embedding dari permintaan penelusuran. Di LangChain, penyimpanan Vector menangani penyimpanan data tersemat dan melakukan penelusuran vektor untuk Anda.

Untuk bekerja dengan penyimpanan vektor di Firestore, gunakan class FirestoreVectorStore.

Untuk informasi selengkapnya, lihat dokumentasi produk Penyimpanan Vektor LangChain.

Panduan prosedur penyimpanan vektor

Panduan Firestore untuk vector store menunjukkan cara melakukan hal berikut:

  • Menginstal paket integrasi dan LangChain
  • Menginisialisasi tabel untuk penyimpanan vektor
  • Menyiapkan layanan penyematan menggunakan VertexAIEmbeddings
  • Melakukan inisialisasi FirestoreVectorStore
  • Memperbarui dan menghapus dokumen
  • Telusuri dokumen serupa
  • Membuat penyimpanan vektor kustom untuk terhubung ke database Firestore yang sudah ada dan memiliki tabel dengan embedding vektor

Loader dokumen untuk Firestore

Loader dokumen menyimpan, memuat, dan menghapus objek Document LangChain. Misalnya, Anda dapat memuat data untuk diproses menjadi embedding dan menyimpannya di penyimpanan vektor atau menggunakannya sebagai alat untuk memberikan konteks tertentu ke rantai.

Untuk memuat dokumen dari Firestore, gunakan class FirestoreLoader. Metode FirestoreLoader menampilkan satu atau beberapa dokumen dari tabel. Gunakan class FirestoreSaver untuk menyimpan dan menghapus dokumen.

Untuk mengetahui informasi selengkapnya, lihat topik loader Dokumen LangChain.

Panduan prosedur loader dokumen

Panduan Firestore untuk loader dokumen menunjukkan cara:

  • Menginstal paket integrasi dan LangChain
  • Memuat dokumen dari tabel
  • Menambahkan filter ke loader
  • Menyesuaikan koneksi dan autentikasi
  • Menyesuaikan pembuatan Dokumen dengan menentukan metadata dan konten pelanggan
  • Cara menggunakan dan menyesuaikan FirestoreSaver untuk menyimpan dan menghapus dokumen

Histori pesan chat untuk Firestore

Penerapan pertanyaan dan jawaban memerlukan histori hal-hal yang diucapkan dalam percakapan guna memberikan konteks kepada aplikasi untuk menjawab pertanyaan lebih lanjut dari pengguna. Class ChatMessageHistory LangChain memungkinkan aplikasi menyimpan pesan ke database dan mengambilnya saat diperlukan untuk merumuskan jawaban lebih lanjut. Pesan dapat berupa pertanyaan, jawaban, pernyataan, salam, atau teks lainnya yang diberikan oleh pengguna atau aplikasi selama percakapan. ChatMessageHistory menyimpan setiap pesan dan menggabungkan pesan untuk setiap percakapan.

Firestore memperluas class ini dengan FirestoreChatMessageHistory.

Panduan prosedur histori pesan chat

Panduan Firestore untuk histori pesan chat menunjukkan cara:

  • Menginstal LangChain dan melakukan autentikasi ke Google Cloud
  • Menginisialisasi class FirestoreChatMessageHistory untuk menambahkan dan menghapus pesan
  • Menggunakan klien untuk menyesuaikan koneksi dan autentikasi