本頁面說明一些用途,介紹如何使用與 AlloyDB Omni 整合的 LlamaIndex,建構採用 LLM 的應用程式。我們提供 GitHub 筆記本連結,協助您探索方法或開發應用程式。
LlamaIndex 是生成式 AI 自動調度管理架構,可讓您將資料來源與大型語言模型 (LLM) 連結及整合。您可以使用 LlamaIndex 建構應用程式,透過自然語言查詢,存取及查詢私人或特定領域資料中的資訊。
LlamaIndex 是自訂資料和 LLM 之間的橋梁,可協助開發具備檢索增強生成 (RAG) 功能的知識助理應用程式。
LlamaIndex 著重於結構化文件管理,可簡化索引和擷取作業,因此非常適合以文件為中心的應用程式。這個架構提供最佳化的查詢機制,可提升資訊存取速度和相關性,並提供強大的中繼資料處理功能,實現精細的篩選。
如要進一步瞭解 LlamaIndex 框架,請參閱 LlamaIndex 產品說明文件。
LlamaIndex 元件
AlloyDB Omni 提供下列 LlamaIndex 介面:
- 向量儲存庫
- 文件儲存庫
- 索引儲存庫
- Chat 商店
- 文件讀取器
請參閱 AlloyDB Omni 快速入門導覽課程,瞭解如何搭配使用 LlamaIndex。
向量儲存庫
這項 LlamaIndex 整合功能可讓您運用 AlloyDB Omni 強大且可擴充的特性,儲存及管理 LlamaIndex 資料。只要結合 LlamaIndex 的索引和查詢功能,以及 AlloyDB Omni 的高效能和可靠性,就能建構更有效率且可擴充的 LLM 輔助應用程式。
LlamaIndex 會將文件 (doc、文字和 PDF) 拆解成稱為節點的文件元件。VectorStore 只能包含擷取節點內容的嵌入向量和節點文字。節點包含文字內容、向量嵌入和中繼資料。您可以對這些中繼資料欄位套用篩選器,限制只擷取符合指定中繼資料條件的節點。
如要在 AlloyDB Omni 中使用向量儲存庫,請使用 AlloyDBVectorStore 類別。詳情請參閱「LlamaIndex 向量儲存區」。
使用 AlloyDBVectorStore 類別儲存向量嵌入
向量儲存空間的 AlloyDB Omni 筆記本會說明如何執行下列操作:
- 建立
AlloyDBEngine,使用AlloyDBEngine.from_connection_string()連線至 AlloyDB Omni 執行個體。 - 初始化資料表,用於儲存向量嵌入。
- 使用任何 Llama Index 嵌入模型建立嵌入類別例項。
- 初始化預設
AlloyDBVectorStore向量儲存庫。 - 使用 VectorStoreIndex 從向量儲存庫建立及查詢索引。
- 建立自訂向量儲存庫,用於儲存及篩選中繼資料。
- 新增 ANN 索引,縮短搜尋延遲時間。
文件和索引儲存庫
LlamaIndex 文件儲存庫整合功能可管理結構化文件儲存和擷取作業,並針對 LlamaIndex 以文件為中心的功能進行最佳化。Document Store 則儲存與向量儲存庫中向量相關的內容。
詳情請參閱 LlamaIndex 文件儲存庫產品說明文件。
索引儲存庫可協助管理索引,以便快速查詢及擷取資料,例如摘要、關鍵字和樹狀索引。LlamaIndex 中的 Index 是輕量儲存空間,僅用於節點中繼資料。更新節點中繼資料時,不必重新建立完整節點或文件中所有節點的索引 (讀取嵌入生成)。
詳情請參閱「LlamaIndex 索引商店」。
儲存文件和索引
AlloyDB Omni 筆記本適用於文件儲存區,說明如何使用 AlloyDBDocumentStore 和 AlloyDBIndexStore 類別,透過 AlloyDB Omni 儲存文件和索引。您會學到下列內容:
- 建立
AlloyDBEngine,使用AlloyDBEngine.from_connection_string()連線至 AlloyDB Omni 執行個體。 - 為 DocumentStore 和 IndexStore 建立資料表。
- 初始化預設
AlloyDBDocumentStore。 - 設定「
AlloyDBIndexStore」。 - 將文件新增至
Docstore。 - 使用具備多個索引的文件儲存庫。
- 載入現有索引。
Chat 商店
Chat Store 會維護對話式應用程式的對話記錄和情境,提供個人化互動。對話儲存區提供中央存放區,可儲存及擷取對話中的即時通訊訊息,讓 LLM 維持脈絡,並根據進行中的對話提供更相關的回覆。
大型語言模型預設為無狀態,也就是說,除非每次都明確提供先前的輸入內容,否則模型不會保留這些內容。使用對話儲存庫,即可保留對話脈絡,讓模型隨著時間生成更相關且連貫的回覆。
LlamaIndex 的記憶體模組可有效儲存及擷取對話內容,讓聊天應用程式提供更個人化且符合情境的互動。您可以在 LlamaIndex 中整合記憶體模組,搭配 ChatStore 和 ChatMemoryBuffer 使用。詳情請參閱「LlamaIndex Chat Stores」。
儲存對話記錄
AlloyDB Omni 筆記本適用於 Chat Stores,可說明如何使用 AlloyDB for PostgreSQL,透過 AlloyDBChatStore 類別儲存對話記錄。您會學到下列內容:
- 建立
AlloyDBEngine,使用AlloyDBEngine.from_connection_string()連線至 AlloyDB Omni 執行個體。 - 初始化預設
AlloyDBChatStore。 - 建立
ChatMemoryBuffer。 - 建立 LLM 類別例項。
- 在沒有儲存空間情境的情況下使用
AlloyDBChatStore。 - 搭配儲存空間結構定義使用
AlloyDBChatStore。 - 建立及使用 Chat Engine。
文件讀取器
Document Reader 可從 AlloyDB Omni 擷取資料,並轉換為 LlamaIndex 相容格式,以建立索引。Document Reader 介面提供從來源載入資料做為 Documents 的方法。
Document 類別會儲存一段文字和相關聯的中繼資料。您可以使用 Document Reader 載入要儲存在 Document Store 中的文件,或用於建立索引。
詳情請參閱 LlamaIndex 文件讀取器。
以文件形式擷取資料
文件讀取器的 AlloyDB Omni 筆記本會說明如何使用 AlloyDB Omni,透過 AlloyDBReader 類別擷取資料做為文件。您將瞭解如何執行下列操作:
- 建立
AlloyDBEngine,使用AlloyDBEngine.from_connection_string()連線至 AlloyDB Omni 執行個體。 - 建立
AlloyDBReader。 - 使用
table_name引數載入文件。 - 使用 SQL 查詢載入文件。
- 設定頁面內容格式。
- 載入文件。