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