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

AlloyDB for PostgreSQL 整合 LangChain 後,您就能建構由資料庫支援的大型語言模型 (LLM) 和檢索增強生成 (RAG) 應用程式。您可以使用 AlloyDB 的 LangChain 類別,透過向量儲存庫執行語意搜尋、載入及儲存文件,以及保留即時通訊訊息記錄。每個元件總覽都會連結至 GitHub 中的逐步程序指南。

什麼是 LangChain?

LangChain 是 LLM 自動調度管理框架,可協助開發人員建構生成式 AI 應用程式或檢索增強生成 (RAG) 工作流程。提供可簡化複雜大型語言模型 (LLM) 工作流程的結構、工具和元件。如要進一步瞭解 LLM、用途,以及 Google 提供的特定模型和服務,請參閱「 Google Cloud中的 LLM 概念和服務總覽」。

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

AlloyDB 的 LangChain 元件

瞭解如何搭配使用 LangChain 與 AlloyDB 的 LangChain 快速入門導覽課程。本快速入門導覽課程會建立應用程式,存取 Netflix 電影資料集,讓使用者與電影資料互動。

AlloyDB 的向量儲存庫

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

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

詳情請參閱 LangChain 向量儲存庫產品說明文件。

向量儲存庫程序指南

AlloyDB 向量儲存區指南說明如何執行下列操作:

  • 安裝整合套件和 LangChain
  • 建立 AlloyDBEngine 物件,並設定 AlloyDB 資料庫的連線集區
  • 初始化向量儲存庫的資料表
  • 使用 VertexAIEmbeddings 設定嵌入服務
  • 初始化 AlloyDBVectorStore
  • 新增及刪除文件
  • 搜尋類似文件
  • 新增向量索引來提升搜尋效能
  • 建立自訂向量儲存庫,連結至現有的 AlloyDB for PostgreSQL 資料庫,其中包含含有向量嵌入的資料表

AlloyDB 的文件載入器

文件載入器會儲存、載入及刪除 LangChain Document 物件。舉例來說,您可以將資料載入嵌入進行處理,然後儲存在向量儲存庫,或做為工具,為鏈結提供特定情境。

如要從 AlloyDB 載入文件,請使用 AlloyDBLoader 類別。AlloyDBLoader 從資料表傳回文件清單,並使用第一欄做為頁面內容,其餘欄則做為中繼資料。預設資料表的第一欄是頁面內容,第二欄是 JSON 中繼資料。每個資料列都會成為文件。如要瞭解如何自訂這些設定,請參閱程序指南。

使用 AlloyDBSaver 類別儲存及刪除文件。

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

文件載入器程序指南

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

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

AlloyDB 的即時通訊訊息記錄

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

AlloyDB 會使用 AlloyDBChatMessageHistory 擴充這個類別。

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

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

  • 安裝整合套件和 LangChain
  • 建立 AlloyDBEngine 物件,並設定 AlloyDB 資料庫的連線集區
  • 初始化表格
  • 初始化 AlloyDBChatMessageHistory 類別,即可新增及刪除訊息
  • 使用 LangChain 運算式語言 (LCEL) 建立訊息記錄鏈

後續步驟