Membangun aplikasi yang didukung LLM menggunakan LlamaIndex

Halaman ini menjelaskan beberapa kasus penggunaan untuk membangun aplikasi yang didukung LLM menggunakan LlamaIndex yang terintegrasi dengan Cloud SQL untuk PostgreSQL. Link ke notebook di GitHub disediakan untuk membantu Anda mempelajari pendekatan atau membantu Anda mengembangkan aplikasi.

LlamaIndex adalah framework orkestrasi AI generatif yang memungkinkan Anda menghubungkan dan mengintegrasikan sumber data dengan model bahasa besar (LLM). Anda dapat menggunakan LlamaIndex untuk membangun aplikasi yang mengakses dan mengkueri informasi dari data pribadi atau khusus domain menggunakan kueri bahasa alami.

LlamaIndex bertindak sebagai jembatan antara data kustom dan LLM, sehingga memfasilitasi pengembangan aplikasi asisten pengetahuan dengan kemampuan retrieval-augmented generation (RAG).

LlamaIndex sangat cocok untuk aplikasi yang berfokus pada dokumen karena menekankan pengelolaan dokumen terstruktur, yang menyederhanakan pengindeksan dan pengambilan. Framework ini dilengkapi mekanisme kueri yang dioptimalkan untuk meningkatkan kecepatan dan relevansi akses informasi, serta penanganan metadata yang andal untuk pemfilteran yang bernuansa.

Untuk mengetahui informasi selengkapnya tentang framework LlamaIndex, lihat dokumentasi produk LlamaIndex.

Komponen LlamaIndex

Cloud SQL untuk PostgreSQL menawarkan antarmuka LlamaIndex berikut:

  • Vector Store
  • Penyimpanan Dokumen
  • Toko Indeks
  • Toko Chat
  • Document Reader

Pelajari cara menggunakan LlamaIndex dengan Panduan memulai Cloud SQL untuk PostgreSQL.

Vector Store

Integrasi LlamaIndex ini memungkinkan Anda menggunakan sifat Cloud SQL untuk PostgreSQL yang andal dan skalabel untuk menyimpan dan mengelola data LlamaIndex Anda. Dengan menggabungkan kemampuan pengindeksan dan kueri LlamaIndex dengan performa dan keandalan tinggi Cloud SQL untuk PostgreSQL, Anda dapat membangun aplikasi yang didukung LLM yang lebih efisien dan skalabel.

LlamaIndex menguraikan dokumen —dokumen, teks, dan PDF— menjadi komponen dokumen yang disebut node. VectorStore hanya dapat berisi vektor embedding dari konten node yang diserap dan teks node. Node, yang merupakan konsep first class, berisi konten teks, embedding vektor, dan metadata. Anda dapat menerapkan filter pada kolom metadata ini untuk membatasi pengambilan node ke node yang cocok dengan kriteria metadata yang ditentukan.

Untuk menggunakan penyimpanan vektor di Cloud SQL untuk PostgreSQL, gunakan class PostgresVectorStore. Untuk mengetahui informasi selengkapnya, lihat LlamaIndex Vector Store.

Menyimpan embedding vektor dengan class PostgresVectorStore

Cloud SQL untuk PostgreSQL untuk penyimpanan vektor menunjukkan cara melakukan hal berikut:

  • Melakukan inisialisasi tabel untuk menyimpan embedding vektor
  • Buat instance class embedding menggunakan model embedding Llama Index apa pun.
  • Lakukan inisialisasi penyimpanan vektor PostgresVectorStore default.
  • Buat dan buat kueri indeks dari penyimpanan vektor menggunakan VectorStoreIndex.
  • Membuat Penyimpanan Vektor kustom untuk menyimpan dan memfilter metadata secara efektif.
  • Tambahkan indeks ANN untuk meningkatkan latensi penelusuran.

Penyimpanan Dokumen dan Indeks

Integrasi Penyimpanan Dokumen LlamaIndex mengelola penyimpanan dan pengambilan dokumen terstruktur, sehingga mengoptimalkan kemampuan LlamaIndex yang berfokus pada dokumen. Document Store menyimpan konten yang terkait dengan vektor di penyimpanan vektor.

Untuk mengetahui informasi selengkapnya, lihat dokumentasi produk LlamaIndex Document Stores.

Index Store memfasilitasi pengelolaan indeks untuk memungkinkan pembuatan kueri dan pengambilan data yang cepat, misalnya, ringkasan, kata kunci, dan indeks hierarki. Index di LlamaIndex adalah penyimpanan ringan hanya untuk metadata node. Pembaruan pada metadata node tidak memerlukan pengindeksan ulang (baca pembuatan embedding) dari node lengkap atau semua node dalam dokumen.

Untuk mengetahui informasi selengkapnya, lihat LlamaIndex Index Stores.

Menyimpan dokumen dan indeks

Notebook Cloud SQL untuk PostgreSQL untuk Document Store menunjukkan cara menggunakan Cloud SQL untuk PostgreSQL guna menyimpan dokumen dan indeks menggunakan class PostgresDocumentStore dan PostgresIndexStore. Anda akan mempelajari cara melakukan hal berikut:

  • Buat PostgresEngine menggunakan PostgresEngine.from_instance().
  • Membuat tabel untuk DocumentStore dan IndexStore.
  • Lakukan inisialisasi PostgresDocumentStore default.
  • Siapkan PostgresIndexStore.
  • Tambahkan dokumen ke Docstore.
  • Menggunakan Document Store dengan beberapa indeks.
  • Memuat indeks yang ada.

Toko Chat

Chat Store mengelola histori dan konteks percakapan untuk aplikasi berbasis chat, sehingga memungkinkan interaksi yang dipersonalisasi. Chat Store menyediakan repositori pusat yang menyimpan dan mengambil pesan chat dalam percakapan, sehingga LLM dapat mempertahankan konteks dan memberikan respons yang lebih relevan berdasarkan dialog yang sedang berlangsung.

Model bahasa besar bersifat stateless secara default, yang berarti model tersebut tidak mempertahankan input sebelumnya kecuali jika input tersebut diberikan secara eksplisit setiap kali. Dengan menggunakan penyimpanan chat, Anda dapat mempertahankan konteks percakapan, sehingga model dapat menghasilkan respons yang lebih relevan dan koheren seiring waktu.

Modul memori di LlamaIndex memungkinkan penyimpanan dan pengambilan konteks percakapan yang efisien, sehingga memungkinkan interaksi yang lebih dipersonalisasi dan peka konteks dalam aplikasi chat. Anda dapat mengintegrasikan modul memori di LlamaIndex dengan ChatStore dan ChatMemoryBuffer.
Untuk mengetahui informasi selengkapnya, lihat LlamaIndex Chat Stores.

Menyimpan histori chat

Notebook Cloud SQL untuk PostgreSQL untuk Chat Stores menunjukkan cara menggunakan Cloud SQL untuk PostgreSQL guna menyimpan histori chat menggunakan class PostgresChatStore. Anda akan mempelajari cara melakukan hal berikut:

  • Buat PostgresEngine menggunakan PostgresEngine.from_instance().
  • Melakukan inisialisasi PostgresChatStore. default
  • Buat ChatMemoryBuffer.
  • Buat instance class LLM.
  • Gunakan PostgresChatStore tanpa konteks penyimpanan.
  • Gunakan PostgresChatStore dengan konteks penyimpanan.
  • Membuat dan menggunakan Chat Engine.

Document Reader

Document Reader mengambil dan mengubah data secara efisien dari Cloud SQL untuk PostgreSQL menjadi format yang kompatibel dengan LlamaIndex untuk pengindeksan. Antarmuka Document Reader menyediakan metode untuk memuat data dari sumber sebagai Documents. Document adalah class yang menyimpan potongan teks dan metadata terkait. Anda dapat menggunakan Document Reader untuk memuat dokumen yang ingin Anda simpan di Document Store atau digunakan untuk membuat Indeks.

Untuk mengetahui informasi selengkapnya, lihat Document Reader LlamaIndex.

Mengambil data sebagai dokumen

Notebook Cloud SQL untuk PostgreSQL untuk Document Reader menunjukkan cara menggunakan Cloud SQL untuk PostgreSQL guna mengambil data sebagai dokumen menggunakan class PostgresReader. Anda akan mempelajari cara melakukan hal berikut:

  • Buat PostgresEngine menggunakan PostgresEngine.from_instance().
  • Buat PostgresReader.
  • Muat Dokumen menggunakan argumen table_name.
  • Memuat Dokumen menggunakan kueri SQL.
  • Menetapkan format konten halaman.
  • Memuat dokumen.

Langkah berikutnya