Membangun aplikasi yang didukung LLM menggunakan LangChain

Halaman ini memperkenalkan cara mem-build aplikasi yang didukung LLM menggunakan LangChain. Ringkasan di halaman ini tertaut ke panduan prosedur di GitHub.

Apa itu LangChain?

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

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

Komponen LangChain untuk Spanner

Spanner menawarkan antarmuka LangChain berikut:

Pelajari cara menggunakan komponen ini dalam aplikasi dengan LangChain Quickstart untuk Spanner.

Penyimpanan vektor untuk Spanner

Penyimpanan vektor mengambil dan menyimpan dokumen serta metadata dari database vektor. Penyimpanan vektor memberi aplikasi kemampuan untuk melakukan penelusuran semantik yang menafsirkan makna 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 penyematan yang paling mirip dengan penyematan permintaan penelusuran. Di LangChain, penyimpanan vektor akan menyimpan data tersemat dan melakukan penelusuran vektor untuk Anda.

Untuk menggunakan penyimpanan vektor di Spanner, gunakan class SpannerVectorStore.

Untuk informasi selengkapnya, lihat dokumentasi produk Penyimpanan Vektor LangChain.

Panduan prosedur penyimpanan vektor

Panduan Spanner untuk penyimpanan vektor menunjukkan cara melakukan hal berikut:

  • Menginstal paket integrasi dan LangChain
  • Melakukan inisialisasi tabel untuk penyimpanan vektor
  • Menyiapkan layanan penyematan menggunakan VertexAIEmbeddings
  • Lakukan inisialisasi SpannerVectorStore
  • Menambahkan dan menghapus dokumen
  • Menelusuri dokumen serupa
  • Membuat penyimpanan vektor kustom untuk terhubung ke database Spanner yang sudah ada yang memiliki tabel dengan penyematan vektor

Loader dokumen untuk Spanner

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

Untuk memuat dokumen dari Spanner, gunakan class SpannerLoader. Gunakan class SpannerDocumentSaver untuk menyimpan dan menghapus dokumen.

Untuk informasi selengkapnya, lihat topik Loader Dokumen LangChain.

Panduan prosedur loader dokumen

Panduan Spanner untuk loader dokumen menunjukkan cara melakukan hal berikut:

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

Histori pesan chat untuk Spanner

Aplikasi pertanyaan dan jawaban memerlukan histori hal-hal yang diucapkan dalam percakapan untuk memberikan konteks aplikasi guna 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, sapaan, atau bagian teks lainnya yang diberikan pengguna atau aplikasi selama percakapan. ChatMessageHistory menyimpan setiap pesan dan merangkai pesan untuk setiap percakapan.

Spanner memperluas class ini dengan SpannerChatMessageHistory.

Panduan prosedur histori pesan Chat

Panduan Spanner untuk histori pesan chat menunjukkan cara melakukan hal berikut:

  • Instal LangChain dan autentikasi ke Google Cloud
  • Melakukan inisialisasi tabel
  • Lakukan inisialisasi class SpannerChatMessageHistory untuk menambahkan dan menghapus pesan
  • Menggunakan klien untuk menyesuaikan koneksi dan autentikasi
  • Menghapus sesi SpannerChatMessageHistory

Penyimpanan grafik untuk Spanner

Penyimpanan grafik mengambil dan menyimpan node dan edge dari database grafik. Gunakan penyimpanan grafik untuk memungkinkan aplikasi melakukan hal berikut:

  • Menambahkan node dan edge ke dalam grafik
  • Melakukan traversal dan analisis pada grafik
  • Memeriksa skema grafik

Anda juga dapat menggunakan penyimpanan grafik dengan rantai QA grafik untuk membuat aplikasi yang dapat melakukan chat dengan grafik.

Untuk menggunakan penyimpanan grafik dengan Spanner Graph, gunakan class SpannerGraphStore. untuk menyimpan node dan tepi yang diekstrak dari dokumen. SpannerGraphStore mendukung Graph Query Language (GQL).

Panduan prosedur penyimpanan grafik

Panduan Spanner untuk penyimpanan grafik menunjukkan cara melakukan hal berikut:

  • Menginstal paket integrasi dan LangChain
  • Menyiapkan grafik dari berbagai sumber data
  • Melakukan inisialisasi SpannerGraphStore dengan database Spanner Graph yang ada
  • Menambahkan node dan edge ke Grafik Spanner
  • Melakukan traversal menggunakan kueri GQL
  • Memvisualisasikan hasil kueri grafik
  • Membersihkan grafik

Rantai QA grafik untuk Spanner

Rantai QA grafik untuk Spanner menggunakan grafik Spanner untuk menjawab pertanyaan. Alur kerja QA grafik untuk menjawab pertanyaan adalah sebagai berikut:

  1. Graph QA menggunakan LLM LangChain untuk menerjemahkan pertanyaan bahasa alami menjadi kueri GQL.
  2. Spanner Graph menggunakan antarmuka penyimpanan grafik untuk menjalankan kueri GQL.
  3. Hasil kueri GQL dikirim kembali ke LLM.
  4. LLM menghasilkan dan menampilkan jawaban atas pertanyaan tersebut.

Panduan prosedur UM (Uji Mutu) grafik

Panduan Spanner untuk QA grafik menunjukkan cara menggunakan Spanner dan QA grafik untuk menjawab pertanyaan dengan menunjukkan cara melakukan hal berikut:

  • Buat grafik dari blob teks tidak terstruktur menggunakan LLMGraphTransformer.
  • Simpan grafik di Spanner Graph menggunakan class SpannerGraphStore.
  • Lakukan inisialisasi instance SpannerGraphQAChain.
  • Buat jawaban atas pertanyaan dalam bahasa natural menggunakan penyimpanan grafik di Spanner Graph.