黑色背景上折射彩虹光彩的透明鏈環,象徵 LangChain 模組化的鏈結構

← INSIGHTS & PERSPECTIVES | 生成式AI

LangChain 基礎鏈介紹:LLMChain、SequentialChain 與 TransformChain 入門

介紹 LangChain 的基礎鏈(Chains)概念,包含 LLMChain 單鏈、SequentialChain 循序鏈與 TransformChain 轉換鏈的用途、運作方式與實際應用場景,幫助你用模組化方式打造 LLM 應用程式。

LangChain 是根據大型語言模型(LLM)打造應用程式的框架,它用「基礎鏈(Chains)」把模組化組件串起來,完成特定任務。這篇筆記整理我學習 LangChain 時對三種基礎鏈——LLMChain、SequentialChain 與 TransformChain——的理解與應用場景。

甚麼是 LangChain?為什麼需要基礎鏈?

LangChain 是根據大型語言模型(LLM)打造應用程式的框架。LangChain 使用基礎鏈來建立由 LLM 支援的應用程式,這些基本鏈是模組化構建塊,用於在應用程式中執行特定任務。

LangChain 是用於開發由語言模型驅動的應用程式的框架,主要有兩大能力:

  • 具有上下文採集能力:將語言模型連接到上下文來源(提示指令、少量的範例、需要回應的內容等)。
  • 具有推理能力:依賴語言模型進行推理(根據提供的上下文如何回答、採取什麼行動等)。

LangChain 有哪些推薦的教學資源?

我當初入門時主要參考以下資源:

  • LangChain 中文文档 v0.1.7(舊版文件,原中文鏡像站已下線)
  • LangChain 官方文件 Concepts:<https://python.langchain.com/docs/>
  • [LangChain for LLM Application Development] 課程筆記:<https://hackmd.io/@YungHuiHsu/SJJvZ-ya2?utm_source=preview-mode&utm_medium=rec>

鏈(Chains)結構是怎麼組成的?

鏈(Chains)是一個非常通用的概念,它指的是將一系列模組化組件(或其他鏈)以特定方式組合起來,以實現共同的用例。以下依單鏈、循序鏈、轉換鏈三種類型說明。

QLLMChain(單鏈)如何運作?

類別說明:<https://api.python.langchain.com/en/latest/chains/langchain.chains.llm.LLMChain.html>

LLMChain 是最常用的鏈類型,它結合了 PromptTemplate(input)、Model(LLM)和 Guardrails(output)來接收用戶輸入,進行相應的格式化,將其傳遞給模型並獲取回應,然後驗證和修正(如果需要)模型的輸出。

LLMChain 單鏈結構示意圖

QSequentialChain(循序鏈)適合什麼場景?

類別說明:<https://api.python.langchain.com/en/latest/chains/langchain.chains.sequential.SequentialChain.html>

同一次的詢問,至少兩次與 LLM 交互,把複雜的問題拆解成小的問題,然後再輸出回應。這邊是一篇說明文章:<https://blog.csdn.net/wangjiansui/article/details/137509565>

總之就是讓輸入到輸出之間串聯多個 LLM 系統並依序執行

以下是如何使用 SequentialChain 的一些範例:

  • 機器翻譯:SequentialChain 可用於透過使用專門針對不同語言對的 LLM 呼叫鏈,將文字從一種語言翻譯為另一種語言。
  • 文字摘要:SequentialChain 可用於透過使用一系列 LLM 呼叫來摘要文本,這些呼叫從文本中提取關鍵訊息,然後產生摘要。
  • Q&A:SequentialChain 可用於透過使用一系列 LLM 調用來回答問題,這些調用從文本文檔中提取信息,然後生成問題的答案。

QTransformChain(轉換鏈)在做什麼?

類別說明:<https://api.python.langchain.com/en/latest/chains/langchain.chains.transform.TransformChain.html>

這些轉換可以是簡單的文字操作(例如文字清理),或更複雜的模型處理。

TransformChain 工作原理:

  1. 輸入:TransformChain 接收 LLM 的輸出作為輸入。此輸出可以是文字、程式碼或任何其他資料格式。
  2. 轉換:然後 TransformChain 對輸入資料套用一系列轉換。這些轉換由使用者提供的函數或預先定義的 LangChain 轉換定義。
  3. 輸出:TransformChain 的最終輸出是將所有轉換應用於輸入資料的結果。此輸出可以用作另一個鏈的輸入,或作為應用程式的最終輸出。

以下是如何使用 TransformChain 的一些範例:

  • 文字清理:TransformChain 可用於透過刪除標點符號、將文字轉換為小寫以及刪除停用詞來清理文字。
  • 特徵提取:TransformChain 可用於從文本中提取特徵,例如詞頻或情緒分數。
  • 數據標準化:TransformChain 可用於標準化數據,例如縮放數值數據或將分類數據轉換為數值表示。

延伸閱讀

常見問題

QLangChain 的鏈(Chain)是什麼?

鏈是把一系列模組化組件(或其他鏈)以特定方式組合起來、實現共同用例的概念。它是 LangChain 建立 LLM 應用程式的基本構建塊。

QLLMChain 和 SequentialChain 有什麼差別?

LLMChain 是單一鏈,結合 PromptTemplate、Model 與 Guardrails 完成一次 LLM 呼叫。SequentialChain 則把多個 LLM 系統依序串聯,把複雜問題拆解成小問題逐步處理。

QTransformChain 一定要搭配 LLM 使用嗎?

不一定。TransformChain 的轉換由使用者提供的函數或預先定義的轉換定義,可以是純文字操作(如清理、標準化),也可以串接在 LLM 輸出之後做後處理。

Q初學者該從哪種鏈開始學?

建議從 LLMChain 開始,因為它是最常用的單鏈,理解 PromptTemplate、Model、Guardrails 的串接後,再進階到 SequentialChain 與 TransformChain 的組合應用。

參考資料

  • LangChain 中文文档 v0.1.7(舊版文件,原中文鏡像站已下線)
  • LangChain 官方文件 Concepts:<https://python.langchain.com/docs/>
  • [LangChain for LLM Application Development] 課程筆記:<https://hackmd.io/@YungHuiHsu/SJJvZ-ya2>
  • LLMChain 類別說明:<https://api.python.langchain.com/en/latest/chains/langchain.chains.llm.LLMChain.html>
  • SequentialChain 類別說明:<https://api.python.langchain.com/en/latest/chains/langchain.chains.sequential.SequentialChain.html>
  • TransformChain 類別說明:<https://api.python.langchain.com/en/latest/chains/langchain.chains.transform.TransformChain.html>
  • SequentialChain 說明文章:<https://blog.csdn.net/wangjiansui/article/details/137509565>

最後更新

2026-08-28(原文發布於 2024-05-06,本文保留原始筆記內容並補上 GEO 結構。)

關於作者 {#author}

Claire Chang | 企業 AI 導入與流程轉型顧問。專注於 AI Agent 架構設計、ERP 系統整合與企業 AI 治理。

首次發布:2024-05-06