使用 LangChain 建構採用 LLM 的應用程式

本頁面將介紹如何使用 LangChain 建構採用 LLM 的應用程式。本頁面的總覽連結至 GitHub 中的程序指南。

什麼是 LangChain?

LangChain 是一種 LLM 自動化調度管理框架,可協助開發人員建構生成式 AI 應用程式或檢索增強生成 (RAG) 工作流程。提供結構、工具和元件,簡化複雜的 LLM 工作流程。

如要進一步瞭解 LangChain,請參閱 Google LangChain 頁面。如要進一步瞭解 LangChain 架構,請參閱 LangChain 產品說明文件。

Spanner 適用的 LangChain 元件

Spanner 提供下列 LangChain 介面:

如要瞭解如何在應用程式中使用這些元件,請參閱 Spanner 適用的 LangChain 快速入門指南

Spanner 的向量儲存庫

向量儲存服務會從向量資料庫擷取及儲存文件和中繼資料。向量儲存庫可讓應用程式執行語意搜尋,解讀使用者查詢的含意。這類搜尋稱為向量搜尋,可找出與查詢相符的主題。在查詢時,向量儲存庫會擷取與搜尋要求嵌入項目最相似的嵌入向量。在 LangChain 中,向量儲存庫會負責儲存嵌入的資料,並為您執行向量搜尋。

如要在 Spanner 中使用向量儲存庫,請使用 SpannerVectorStore 類別。

詳情請參閱 LangChain Vector Stores 產品說明文件。

向量儲存庫程序指南

向量儲存空間的 Spanner 指南說明如何執行下列操作:

  • 安裝整合套件和 LangChain
  • 為向量儲存庫初始化表格
  • 使用 VertexAIEmbeddings 設定嵌入服務
  • 初始化 SpannerVectorStore
  • 新增及刪除文件
  • 搜尋類似文件
  • 建立自訂向量儲存庫,以連線至現有的 Spanner 資料庫,該資料庫含有向量嵌入資料表

Spanner 的文件載入器

文件載入器會儲存、載入及刪除 LangChain Document 物件。舉例來說,您可以將要處理的資料載入至嵌入資料,並將其儲存在向量儲存空間中,或是將其做為工具,為鏈結提供特定情境。

如要從 Spanner 載入文件,請使用 SpannerLoader 類別。使用 SpannerDocumentSaver 類別儲存及刪除文件。

詳情請參閱「LangChain 文件載入器」主題。

文件載入程序指南

Spanner 文件載入器指南說明如何執行下列操作:

  • 安裝整合套件和 LangChain
  • 從資料表載入文件
  • 在載入器中新增篩選器
  • 自訂連線和驗證
  • 指定客戶內容和中繼資料,自訂文件建構作業
  • 如何使用及自訂 SpannerDocumentSaver 來儲存及刪除文件

Spanner 的即時通訊訊息記錄

問答應用程式需要對話內容的記錄,才能提供應用程式上下文,回答使用者的後續問題。LangChain ChatMessageHistory 類別可讓應用程式將訊息儲存至資料庫,並在需要時擷取訊息,以便進一步擬定答案。訊息可以是使用者或應用程式在對話期間提供的問題、答案、陳述、問候語或任何其他文字。ChatMessageHistory 會為每則對話儲存每則訊息,並將訊息鏈結在一起。

Spanner 會使用 SpannerChatMessageHistory 擴充這個類別。

即時通訊訊息記錄程序指南

Spanner 即時通訊訊息記錄指南說明如何執行下列操作:

  • 安裝 LangChain 並驗證 Google Cloud
  • 初始化資料表
  • 初始化 SpannerChatMessageHistory 類別,以便新增及刪除訊息
  • 使用用戶端自訂連線和驗證
  • 刪除 SpannerChatMessageHistory 工作階段

Spanner 的圖形儲存庫

圖表儲存庫會從圖表資料庫擷取及儲存節點和邊。使用圖表儲存庫,讓應用程式執行下列操作:

  • 在圖中加入節點和邊
  • 對圖表執行遍歷和分析
  • 檢查圖表的結構定義

您也可以使用圖表儲存庫搭配圖表 QA 鏈結,建立可與圖表進行即時通訊的應用程式。

如要搭配 Spanner Graph 使用圖形儲存空間,請使用 SpannerGraphStore 類別,儲存從文件中擷取的節點和邊緣。SpannerGraphStore 支援 Graph Query Language (GQL)。

圖表儲存程序指南

Spanner 圖表儲存空間指南說明如何執行下列操作:

  • 安裝整合套件和 LangChain
  • 準備來自不同資料來源的圖表
  • 使用現有的 Spanner Graph 資料庫初始化 SpannerGraphStore
  • 在 Spanner 圖中新增節點和邊
  • 使用 GQL 查詢執行檢索作業
  • 以視覺化方式呈現圖表查詢結果
  • 清理圖表

Spanner 的圖形 QA 鏈結

Spanner 的圖形 QA 鏈結會使用 Spanner 圖形來回答問題。以下是圖表 QA 工作流程,用於回答問題:

  1. Graph QA 會使用 LangChain 大型語言模型,將自然語言問題轉換為 GQL 查詢。
  2. Spanner Graph 會使用圖形儲存格介面執行 GQL 查詢。
  3. GQL 查詢結果會傳回大型語言模型。
  4. 大型語言模型會產生並傳回問題的答案。

圖表品質確保程序指南

圖表 QA 的 Spanner 指南會示範如何使用 Spanner 和圖表 QA 來回答問題,並說明如何執行下列操作:

  • 使用 LLMGraphTransformer 從非結構化文字 Blob 建立圖表。
  • 使用 SpannerGraphStore 類別,將圖表儲存在 Spanner Graph 中。
  • 初始化 SpannerGraphQAChain 例項。
  • 使用 Spanner 圖形中的圖形儲存庫,為自然語言問題產生答案。