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 menjelajahi 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 membuat kueri 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 mendetail.
Untuk mengetahui informasi selengkapnya tentang framework LlamaIndex, lihat dokumentasi produk LlamaIndex.
Komponen LlamaIndex
AlloyDB Omni menawarkan antarmuka LlamaIndex berikut:
- Penyimpanan Vektor
- Penyimpanan Dokumen
- Penyimpanan Indeks
- Penyimpanan Chat
- Pembaca Dokumen
Pelajari cara menggunakan LlamaIndex dengan Panduan Memulai untuk AlloyDB Omni.
Penyimpanan Vektor
Integrasi LlamaIndex ini memungkinkan Anda menggunakan sifat AlloyDB Omni yang andal dan skalabel untuk menyimpan dan mengelola data LlamaIndex. Dengan menggabungkan kapabilitas pengindeksan dan pembuatan kueri LlamaIndex dengan performa dan keandalan tinggi AlloyDB Omni, 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 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 ke node yang cocok dengan kriteria metadata yang ditentukan.
Untuk menggunakan penyimpanan vektor di AlloyDB Omni, gunakan class AlloyDBVectorStore. Untuk mengetahui informasi selengkapnya, lihat
Penyimpanan Vektor LlamaIndex.
Menyimpan embedding vektor dengan class AlloyDBVectorStore
Notebook AlloyDB Omni untuk penyimpanan vektor menunjukkan cara melakukan hal berikut:
- Membuat
AlloyDBEngineuntuk terhubung ke instance AlloyDB Omni menggunakanAlloyDBEngine.from_connection_string(). - Menginisialisasi tabel untuk menyimpan embedding vektor.
- Membuat instance class embedding menggunakan model embedding Llama Index.
- Menginisialisasi penyimpanan vektor
AlloyDBVectorStoredefault. - Membuat dan membuat kueri indeks dari penyimpanan vektor menggunakan VectorStoreIndex.
- Membuat Penyimpanan Vektor kustom untuk menyimpan dan memfilter metadata.
- 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 pembuatan 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) dari node lengkap atau semua node dalam dokumen.
Untuk mengetahui informasi selengkapnya, lihat Penyimpanan Indeks LlamaIndex.
Menyimpan dokumen dan indeks
Notebook AlloyDB Omni
untuk Penyimpanan Dokumen menunjukkan cara menggunakan AlloyDB Omni untuk menyimpan
dokumen dan indeks menggunakan AlloyDBDocumentStore dan AlloyDBIndexStore
class. Anda akan mempelajari cara melakukan hal berikut:
- Membuat
AlloyDBEngineuntuk terhubung ke instance AlloyDB Omni menggunakanAlloyDBEngine.from_connection_string(). - 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 LLM dapat mempertahankan konteks dan memberikan respons yang lebih relevan berdasarkan dialog yang sedang berlangsung.
Model bahasa besar tidak memiliki 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 Penyimpanan Chat LlamaIndex.
Menyimpan histori chat
Notebook AlloyDB Omni
untuk Penyimpanan Chat menunjukkan cara menggunakan AlloyDB for PostgreSQL untuk menyimpan histori chat menggunakan class AlloyDBChatStore. Anda akan mempelajari cara melakukan hal berikut:
- Membuat
AlloyDBEngineuntuk terhubung ke instance AlloyDB Omni menggunakanAlloyDBEngine.from_connection_string(). - Menginisialisasi
AlloyDBChatStoredefault. - Membuat
ChatMemoryBuffer. - Membuat instance class LLM.
- Menggunakan
AlloyDBChatStoretanpa konteks penyimpanan. - Menggunakan
AlloyDBChatStoredengan konteks penyimpanan. - Membuat dan menggunakan Mesin Chat.
Pembaca Dokumen
Pembaca Dokumen mengambil dan mengubah data secara efisien dari AlloyDB Omni ke format yang kompatibel dengan LlamaIndex untuk pengindeksan. Antarmuka Pembaca Dokumen menyediakan metode untuk memuat data dari sumber sebagai Documents.
Dokumen 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 Pembaca Dokumen LlamaIndex.
Mengambil data sebagai dokumen
Notebook AlloyDB Omni
untuk Pembaca Dokumen menunjukkan cara menggunakan AlloyDB Omni untuk mengambil
data sebagai dokumen menggunakan class AlloyDBReader. Anda akan mempelajari cara melakukan hal berikut:
- Membuat
AlloyDBEngineuntuk terhubung ke instance AlloyDB Omni menggunakanAlloyDBEngine.from_connection_string(). - Membuat
AlloyDBReader. - Memuat Dokumen menggunakan argumen
table_name. - Memuat Dokumen menggunakan kueri SQL.
- Menetapkan format konten halaman.
- Memuat dokumen.
Langkah berikutnya
- Membangun aplikasi yang didukung LLM menggunakan LangChain.
- Pelajari cara men-deploy AlloyDB Omni dan model AI lokal di Kubernetes.