Membangun aplikasi yang didukung LLM menggunakan LlamaIndex

Pilih versi dokumentasi:

Halaman ini menjelaskan beberapa kasus penggunaan untuk membangun aplikasi yang didukung LLM menggunakan LlamaIndex yang terintegrasi dengan AlloyDB Omni. Link ke notebook di GitHub disediakan untuk membantu Anda mempelajari pendekatan atau 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 membuat aplikasi yang mengakses dan membuat kueri informasi dari data pribadi atau khusus domain menggunakan kueri bahasa alami.

LlamaIndex berfungsi 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 menampilkan mekanisme kueri yang dioptimalkan yang meningkatkan kecepatan dan relevansi akses informasi, beserta penanganan metadata yang andal untuk pemfilteran yang lebih akurat.

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

Komponen LlamaIndex

AlloyDB Omni menawarkan antarmuka LlamaIndex berikut:

  • Vector Store
  • Penyimpanan Dokumen
  • Mengindeks Toko
  • Chat Stores
  • Pembaca Dokumen

Pelajari cara menggunakan LlamaIndex dengan Panduan memulai untuk AlloyDB Omni.

Vector Store

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

LlamaIndex memecah dokumen —doc, teks, dan PDF— menjadi komponen dokumen yang disebut node. VectorStore hanya dapat berisi vektor embedding dari konten node yang di-ingest dan teks node. Node berisi konten teks, embedding vektor, dan metadata. Anda dapat menerapkan filter pada kolom metadata ini untuk membatasi pengambilan node hanya pada node yang cocok dengan kriteria metadata yang ditentukan.

Untuk menggunakan penyimpanan vektor di AlloyDB Omni, gunakan class AlloyDBVectorStore. Untuk mengetahui informasi selengkapnya, lihat LlamaIndex Vector Stores.

Menyimpan embedding vektor dengan class AlloyDBVectorStore

Notebook AlloyDB Omni untuk penyimpanan vektor menunjukkan cara melakukan hal berikut:

  • Buat AlloyDBEngine untuk terhubung ke instance AlloyDB Omni menggunakan AlloyDBEngine.from_connection_string().
  • Lakukan inisialisasi tabel untuk menyimpan embedding vektor.
  • Buat instance class embedding menggunakan model embedding Llama Index.
  • Lakukan inisialisasi penyimpanan vektor AlloyDBVectorStore default.
  • Buat dan kueri indeks dari penyimpanan vektor menggunakan VectorStoreIndex.
  • Buat Penyimpanan Vektor kustom untuk menyimpan dan memfilter metadata.
  • Tambahkan indeks ANN untuk meningkatkan latensi penelusuran.

Penyimpanan Dokumen dan Indeks

Integrasi Penyimpanan Dokumen LlamaIndex mengelola penyimpanan dan pengambilan dokumen terstruktur, yang dioptimalkan untuk 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.

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

Untuk mengetahui informasi selengkapnya, lihat Penyimpanan Indeks LlamaIndex.

Menyimpan dokumen dan indeks

Notebook AlloyDB Omni untuk Document Store menunjukkan cara menggunakan AlloyDB Omni untuk menyimpan dokumen dan indeks menggunakan class AlloyDBDocumentStore dan AlloyDBIndexStore. Anda akan mempelajari cara melakukan hal berikut:

  • Buat AlloyDBEngine untuk terhubung ke instance AlloyDB Omni menggunakan AlloyDBEngine.from_connection_string().
  • Buat tabel untuk DocumentStore dan IndexStore.
  • Lakukan inisialisasi AlloyDBDocumentStore default.
  • Siapkan AlloyDBIndexStore.
  • Tambahkan dokumen ke Docstore.
  • Gunakan Penyimpanan Dokumen dengan beberapa indeks.
  • Memuat indeks yang ada.

Chat Stores

Chat Store mempertahankan histori dan konteks percakapan untuk aplikasi berbasis chat, sehingga memungkinkan interaksi yang dipersonalisasi. Penyimpanan Chat 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 secara default tidak memiliki status, 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 dari waktu ke waktu.

Modul memori di LlamaIndex memungkinkan penyimpanan dan pengambilan konteks percakapan yang efisien, sehingga memungkinkan interaksi yang lebih personal dan kontekstual 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 AlloyDB Omni untuk Chat Stores menunjukkan cara menggunakan AlloyDB for PostgreSQL untuk menyimpan histori chat menggunakan class AlloyDBChatStore. Anda akan mempelajari cara melakukan hal berikut:

  • Buat AlloyDBEngine untuk terhubung ke instance AlloyDB Omni menggunakan AlloyDBEngine.from_connection_string().
  • Lakukan inisialisasi AlloyDBChatStore default.
  • Buat ChatMemoryBuffer.
  • Buat instance class LLM.
  • Gunakan AlloyDBChatStore tanpa konteks penyimpanan.
  • Gunakan AlloyDBChatStore dengan konteks penyimpanan.
  • Buat dan gunakan Chat Engine.

Pembaca Dokumen

Document Reader secara efisien mengambil dan mengubah data dari AlloyDB Omni 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 bagian teks dan metadata terkait. Anda dapat menggunakan Pembaca Dokumen untuk memuat dokumen yang ingin disimpan di Penyimpanan Dokumen atau digunakan untuk membuat Indeks.

Untuk mengetahui informasi selengkapnya, lihat LlamaIndex Document Reader.

Mengambil data sebagai dokumen

Notebook AlloyDB Omni untuk Document Reader menunjukkan cara menggunakan AlloyDB Omni untuk mengambil data sebagai dokumen menggunakan class AlloyDBReader. Anda akan mempelajari cara melakukan hal berikut:

  • Buat AlloyDBEngine untuk terhubung ke instance AlloyDB Omni menggunakan AlloyDBEngine.from_connection_string().
  • Buat AlloyDBReader.
  • Muat Dokumen menggunakan argumen table_name.
  • Memuat Dokumen menggunakan kueri SQL.
  • Menetapkan format konten halaman.
  • Muat dokumen.

Langkah berikutnya