Halaman ini menjelaskan beberapa kasus penggunaan untuk membangun aplikasi yang didukung LLM menggunakan LlamaIndex yang terintegrasi dengan AlloyDB 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 berpusat 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, serta penanganan metadata yang andal untuk pemfilteran yang cermat.
Untuk mengetahui informasi selengkapnya tentang framework LlamaIndex, lihat dokumentasi produk LlamaIndex.
Komponen LlamaIndex
AlloyDB menawarkan antarmuka LlamaIndex berikut:
- Penyimpanan Vektor
- Penyimpanan Dokumen
- Penyimpanan Indeks
- Penyimpanan Chat
- Document Reader
Pelajari cara menggunakan LlamaIndex dengan Panduan Memulai untuk AlloyDB.
Penyimpanan Vektor
Integrasi LlamaIndex ini memungkinkan Anda menggunakan sifat AlloyDB yang andal dan skalabel untuk menyimpan dan mengelola data LlamaIndex. Dengan menggabungkan kemampuan pengindeksan dan kueri LlamaIndex dengan performa dan keandalan tinggi AlloyDB, Anda dapat membangun aplikasi yang didukung LLM yang lebih efisien dan skalabel.
LlamaIndex memecah dokumen —doc, teks, dan PDF— menjadi komponen dokumen yang disebut node. VectorStore hanya dapat berisi vektor embedding dari konten node yang dimasukkan dan teks node. Node, yang merupakan konsep kelas pertama, 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
AlloyDB, gunakan class
AlloyDBVectorStore.
Untuk mengetahui informasi selengkapnya, lihat Penyimpanan Vektor
LlamaIndex.
Menyimpan embedding vektor dengan class AlloyDBVectorStore
Notebook AlloyDB untuk penyimpanan vektor menunjukkan cara melakukan hal berikut:
- Menginisialisasi tabel untuk menyimpan embedding vektor
- Membuat instance class embedding menggunakan model embedding Llama Index.
- Menginisialisasi penyimpanan vektor
AlloyDBVectorStoredefault. - Membuat dan mengkueri indeks dari penyimpanan vektor menggunakan VectorStoreIndex.
- Membuat Penyimpanan Vektor kustom untuk menyimpan dan memfilter metadata secara efektif.
- Menambahkan indeks ANN untuk meningkatkan latensi penelusuran.
Penyimpanan Dokumen dan Indeks
Integrasi Penyimpanan Dokumen LlamaIndex mengelola penyimpanan dan pengambilan dokumen terstruktur yang dioptimalkan untuk kemampuan berpusat pada dokumen LlamaIndex. Penyimpanan Dokumen menyimpan konten yang terkait dengan vektor di penyimpanan vektor.
Untuk mengetahui informasi selengkapnya, lihat dokumentasi produk Penyimpanan Dokumen LlamaIndex.
Penyimpanan Indeks memfasilitasi pengelolaan indeks untuk memungkinkan kueri dan pengambilan data yang cepat, misalnya, indeks ringkasan, kata kunci, dan Pohon.Index di LlamaIndex adalah penyimpanan ringan hanya untuk metadata node. Update pada metadata node tidak memerlukan pengindeksan ulang (baca pembuatan embedding
generation) node lengkap atau semua node dalam dokumen.
Untuk mengetahui informasi selengkapnya, lihat LlamaIndex Penyimpanan Indeks.
Menyimpan dokumen dan indeks
Notebook AlloyDB
untuk Penyimpanan Dokumen menunjukkan cara menggunakan AlloyDB untuk menyimpan dokumen dan indeks menggunakan class AlloyDBDocumentStore dan AlloyDBIndexStore.
Anda akan mempelajari cara melakukan hal berikut:
- Membuat
AlloyDBEnginemenggunakanAlloyDBEngine.from_instance(). - Membuat tabel untuk DocumentStore dan IndexStore.
- Menginisialisasi
AlloyDBDocumentStoredefault. - Menyiapkan
AlloyDBIndexStore. - Menambahkan dokumen ke
Docstore. - Menggunakan Penyimpanan Dokumen dengan beberapa indeks.
- Memuat indeks yang ada.
Penyimpanan Chat
Penyimpanan Chat 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 memungkinkan LLM mempertahankan konteks dan memberikan respons yang lebih relevan berdasarkan dialog yang sedang berlangsung.
Model bahasa besar bersifat tanpa status secara default, yang berarti model tersebut tidak menyimpan input sebelumnya kecuali jika input tersebut diberikan secara eksplisit setiap kali. Dengan menggunakan penyimpanan chat, Anda dapat mempertahankan konteks percakapan, yang memungkinkan model 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 dipersonalisasi dan kontekstual
dalam aplikasi chat. Anda dapat mengintegrasikan modul memori di
LlamaIndex dengan ChatStore
dan ChatMemoryBuffer.
Untuk mengetahui informasi selengkapnya, lihat LlamaIndex
Penyimpanan Chat.
Menyimpan histori chat
Notebook AlloyDB untuk Penyimpanan Chat menunjukkan cara menggunakan AlloyDB for
PostgreSQL untuk menyimpan histori chat menggunakan class AlloyDBChatStore. Anda akan mempelajari cara melakukan hal berikut:
- Membuat
AlloyDBEnginemenggunakanAlloyDBEngine.from_instance(). - Menginisialisasi
AlloyDBChatStoredefault. - Membuat
ChatMemoryBuffer. - Membuat instance class LLM.
- Menggunakan
AlloyDBChatStoretanpa konteks penyimpanan. - Menggunakan
AlloyDBChatStoredengan konteks penyimpanan. - Membuat dan menggunakan Chat Engine.
Document Reader
Document Reader mengambil dan mengubah data dari
AlloyDB
secara efisien ke dalam 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
Document Reader 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 untuk Document Reader menunjukkan cara menggunakan AlloyDB untuk mengambil data sebagai dokumen menggunakan class
AlloyDBReader. Anda akan mempelajari cara melakukan hal berikut:
- Membuat
AlloyDBEnginemenggunakanAlloyDBEngine.from_instance(). - Membuat
AlloyDBReader. - Memuat Dokumen menggunakan argumen
table_name. - Memuat Dokumen menggunakan kueri SQL.
- Menetapkan format konten halaman.
- Memuat dokumen.