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

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

什麼是 LangChain?

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

如要進一步瞭解 LangChain,請參閱 Google LangChain 頁面。如要進一步瞭解 LangChain 架構,請參閱 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 的 Chat 訊息記錄

問答應用程式需要對話記錄,才能瞭解對話內容,進而回答使用者提出的問題。應用程式可透過 LangChain ChatMessageHistory 類別將訊息儲存至資料庫,並在需要時擷取訊息,以制定進一步的答案。訊息可以是問題、答案、陳述、問候語,或使用者/應用程式在對話期間提供的任何其他文字。ChatMessageHistory會儲存每則訊息,並將每則對話的訊息串連在一起。

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

Chat 訊息記錄程序指南

Spanner 即時通訊訊息記錄指南說明如何完成下列作業:

  • 安裝 LangChain 並驗證 Google Cloud
  • 初始化資料表
  • 初始化 SpannerChatMessageHistory 類別,即可新增及刪除訊息
  • 使用用戶端自訂連線和驗證
  • 刪除 SpannerChatMessageHistory 課程

Spanner 的圖形商店

圖形儲存區會從圖形資料庫擷取及儲存節點和邊緣。應用程式可透過圖形存放區執行下列操作:

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

您也可以搭配使用圖形儲存庫和圖形問答鏈,建立可與圖形對話的應用程式。

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

圖表商店程序指南

圖形儲存區的 Spanner 指南說明如何執行下列操作:

  • 安裝整合套件和 LangChain
  • 根據各種資料來源準備圖表
  • 使用現有的 Spanner Graph 資料庫初始化 SpannerGraphStore
  • 將節點和邊緣新增至 Spanner 圖表
  • 使用 GQL 查詢執行遍歷
  • 以視覺化方式呈現圖表查詢結果
  • 清除圖表

Spanner 的圖形 QA 鏈結

Spanner 的圖形 QA 鏈結會使用 Spanner 圖形回答問題。圖表問答工作流程如下:

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

圖表品質保證程序指南

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

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