使用 LlamaIndex 建構應用程式

您可以使用 LlamaIndex 和 Spanner Graph,建構使用圖形檢索增強生成 (GraphRAG) 的大型語言模型 (LLM) 應用程式。

Spanner Graph 透過屬性圖形儲存庫功能與 LlamaIndex 整合,讓您使用下列項目建立資料擷取工作流程:

  • 屬性圖形存放區:可讓您在圖形資料庫中儲存節點和邊緣,以圖形形式呈現資料。您可以使用圖形資料庫查詢資料中的複雜關係。

  • 圖形檢索器:可讓您使用 LLM 將使用者的自然語言問題轉換為圖形儲存庫的查詢。應用程式可透過圖表資料中的結構化關係回答問題。

什麼是 LlamaIndex?

LlamaIndex 是用於建構 LLM 應用程式的資料架構,可協助您簡化檢索增強生成 (RAG) 和其他情境感知系統的開發作業。LlamaIndex 提供工具,可將大型語言模型與您的資料連結,協助您擷取、建立索引及查詢資料。您可以搭配使用 LlamaIndex 和 LLM,建構可提供準確且相關回覆的應用程式。

如要進一步瞭解 LlamaIndex 架構,請參閱 LlamaIndex 產品說明文件

Spanner 的屬性圖儲存空間

應用程式可以使用屬性圖形存放區執行下列操作:

  • 從文件中擷取實體和關係,並以圖形形式儲存。

  • 對圖形結構執行複雜的遍歷和分析。

  • 使用 Graph Query Language (GQL) 查詢圖形,為 LLM 提供特定背景資訊。

如要在 Spanner Graph 中使用屬性圖形存放區,請使用 SpannerPropertyGraphStore 類別。

屬性圖商店教學課程

如要瞭解如何搭配 Spanner 使用屬性圖形儲存空間,請參閱 Spanner 適用的屬性圖形儲存空間教學課程。 本教學課程將說明如何執行下列操作:

  • 安裝 llama-index-spanner 套件和 LlamaIndex

  • 初始化 SpannerPropertyGraphStore 類別,並使用該類別連線至 Spanner 資料庫。

  • 使用 LlamaIndex 知識圖譜擷取器,將從文件中擷取的資料新增至 Spanner Graph 的節點和邊緣。

  • 使用 GQL 查詢圖表,擷取結構化資訊。

  • 以視覺化方式呈現圖表查詢結果。

Spanner 的圖形擷取器

LlamaIndex 中的圖形檢索器是使用 LLM 將使用者的自然語言問題轉換為圖形儲存庫查詢的元件。應用程式會使用產生的查詢,透過圖形資料中的結構化關係回答問題。圖形檢索器會使用下列工作流程,根據自然語言查詢生成答案:

  1. 提示大型語言模型將自然語言問題翻譯成 GQL 查詢。

  2. 使用 Spanner Graph 和 SpannerPropertyGraphStore 類別,對圖形存放區執行 GQL 查詢。

  3. 使用 Spanner 圖表,將查詢傳回的結構化資料傳送至 LLM。

  4. 使用 LLM 生成人類可解讀的答案。

使用 LlamaIndex 擷取器類別

下列 LlamaIndex 圖形檢索器類別可搭配 Spanner Graph 使用,為 LLM 提示生成方便使用者閱讀的答案:

SpannerGraphTextToGQLRetriever 類別

SpannerGraphTextToGQLRetriever 類別會將自然語言轉換為 GQL 查詢,從圖形中擷取資料。

SpannerGraphCustomRetriever 類別

SpannerGraphCustomRetriever 類別會實作混合式擷取方法。SpannerGraphCustomRetriever 會按照下列步驟處理具體和概念性問題:

  1. 同時執行下列搜尋:

    • 圖表搜尋:將自然語言問題轉換為 GQL 查詢,並使用圖表尋找答案。

    • 向量搜尋或語意搜尋,尋找概念相關的資訊。

  2. 合併圖形搜尋和向量搜尋的結果。

  3. 使用 LLM 評估合併結果並重新排名。LLM 會選取最相關且符合情境的資訊,回答原始問題。

圖形擷取器教學課程

如要瞭解如何搭配使用 Spanner 和圖形擷取器回答問題,請參閱 Spanner 適用的圖形擷取器教學課程。本教學課程將示範如何:

  • 從非結構化文字 Blob 建立圖形。

  • 使用 SpannerPropertyGraphStore 類別將圖表儲存在 Spanner 中

  • 使用圖形儲存區和 LLM 初始化 SpannerGraphTextToGQLRetriever 類別和 SpannerGraphCustomRetriever 執行個體。

  • 使用儲存在 Spanner 中的圖表資料,生成自然語言問題的答案。

後續步驟