LangChain 是一個專為大語言模型(LLM)應用開發設計的開源框架,核心作用是把大模型和各種外部資源(數據庫、API、文檔)、工具(搜索引擎、計算器)“串” 起來,讓你不用從零寫代碼,就能快速搭建複雜的 AI 應用(比如智能問答機器人、文檔分析工具、自主代理)。

你可以把它理解成 LLM 應用的 “樂高積木”:大模型是核心積木,其他積木包括 “數據讀取模塊”“記憶模塊”“工具調用模塊”,LangChain 幫你做好了積木之間的 “連接件”,直接拼就能出成品。

一、核心定位:解決大模型的 “先天缺陷”

大模型本身有幾個痛點:

  1. 知識過時:訓練數據有截止日期,沒法知道實時信息(比如今天的天氣、最新股票價格);
  2. 不會用工具:算數學題容易錯、不會查數據庫、不能調用 API;
  3. 沒有記憶:單次對話的上下文有限,沒法記住歷史會話的關鍵信息;
  4. 無法處理私有數據:不能直接讀取你的本地文檔、企業內部數據庫。

LangChain 的核心使命:用標準化的組件,幫你解決這些問題,讓 LLM 從 “只會聊天” 變成 “能幹活的智能助手”。

二、LangChain 核心組件(白話版)

LangChain 的架構可以拆成 6 大核心組件,每個組件都是一個 “功能積木”,支持單獨使用,也能組合起來玩出花。

1. 模型輸入輸出(Model I/O):和大模型的 “對話接口”

這是 LangChain 最基礎的組件,負責和大模型打交道—— 把你的指令(Prompt)傳給大模型,再把大模型的返回結果拿回來。

  • 核心功能
  • Prompt 模板:不用每次寫重複的指令,比如做 “文檔問答” 時,模板可以固定成 “請根據下面的文檔回答問題:{文檔內容}\n問題:{用户問題}”,只需填變量;
  • 模型調用:支持 OpenAI、Anthropic、國內的智譜 AI、文心一言等主流大模型,一行代碼切換模型;
  • 輸出解析:把大模型返回的 “自然語言” 轉成結構化數據(比如 JSON、列表),方便後續處理。
  • 白話例子:你要做一個 “古詩生成器”,可以用 Prompt 模板固定格式 “請生成一首關於{主題}的七言絕句,語言優美”,調用模型時只傳 “主題 = 春天”,輸出解析器自動把詩句拆分成 “標題 + 四句詩” 的結構。

2. 數據連接(Data Connection):讓大模型 “讀” 外部數據

解決大模型 “知識過時”“不會讀私有文檔” 的問題,負責加載、處理、檢索外部數據

  • 核心功能
  • 文檔加載器:支持讀取各種格式的文件 ——PDF、Word、TXT、Excel,甚至網頁、Notion、數據庫的數據;
  • 文本分割器:把大文檔切成小片段(因為大模型有上下文長度限制),比如把一本 100 頁的 PDF 切成 500 字 / 段的小文本;
  • 向量存儲與檢索:這是最核心的功能!把文本片段轉成向量(用 Embedding 模型),存到向量數據庫(比如 Chroma、FAISS),用户提問時,先檢索和問題最相關的文本片段,再傳給大模型回答 —— 這樣既保證回答準確,又避免 “胡説八道”。
  • 白話例子:你想做一個 “公司內部文檔問答機器人”,用 LangChain 的 PDF 加載器讀取公司手冊,分割成小片段,轉成向量存起來;用户問 “年假怎麼休”,系統先檢索手冊裏關於 “年假” 的片段,再讓大模型基於這個片段回答,保證答案 100% 符合公司規定。

3. 鏈(Chains):把組件串起來的 “流水線”

單個組件幹不了複雜活,Chain 就是把多個組件按順序組合成一個工作流

  • 常見的鏈類型
  • LLMChain:最基礎的鏈 ——Prompt 模板 + 大模型 + 輸出解析器,比如 “生成古詩” 就用這個;
  • RetrievalQA:檢索增強問答鏈 —— 文檔加載 → 分割 → 向量檢索 → 大模型回答,這是做 “文檔問答” 的標配鏈;
  • SequentialChain:串行鏈 —— 把多個鏈串起來,比如 “先生成古詩 → 再把古詩翻譯成英文”。
  • 白話例子:RetrievalQA 鏈的工作流程:
  1. 用户提問 → 2. 檢索相關文檔片段 → 3. 把 “問題 + 片段” 塞進 Prompt 模板 → 4. 傳給大模型 → 5. 輸出解析成自然語言回答。

4. 記憶(Memory):讓大模型有 “長期記憶”

解決大模型 “健忘” 的問題,Memory 負責存儲和管理會話歷史,讓模型能記住之前聊過的內容。

  • 常見的記憶類型
  • ConversationBufferMemory:簡單的 “緩衝區記憶”,把所有歷史對話都存起來,適合短對話;
  • ConversationSummaryMemory:摘要記憶,把長對話總結成一句話存起來,節省上下文空間;
  • VectorStoreRetrieverMemory:向量記憶,把歷史對話轉成向量,只檢索和當前問題相關的歷史內容。
  • 白話例子:你和機器人聊:“我叫張三,喜歡打籃球” → 過了一會兒問 “我喜歡什麼運動”,帶 Memory 的機器人會回答 “你喜歡打籃球”;沒有 Memory 的機器人會説 “我不知道”。

5. 智能代理(Agents):讓大模型 “自主幹活”

這是 LangChain 最強大的組件 ——讓大模型自主決定 “該用什麼工具”“下一步做什麼”,不用你預設流程。

  • 核心邏輯
  1. 用户提出複雜任務(比如 “查一下今天北京的天氣,再算一下 2025 年 12 月 28 日是星期幾”);
  2. Agent 讓大模型分析任務:需要 “查天氣 API” 和 “計算器 / 日曆工具”;
  3. 調用對應的工具,獲取結果;
  4. 把工具結果整理成自然語言回答用户。
  • 常用工具:搜索引擎(Google、Bing)、計算器、數據庫查詢、API 調用、代碼執行器(比如讓模型寫 Python 代碼算複雜數學題)。
  • 白話例子:用户問 “幫我查一下蘋果公司最新的股價,再計算市盈率”,Agent 會:
  1. 調用股票 API 查蘋果當前股價和每股收益;
  2. 調用計算器算市盈率(股價 ÷ 每股收益);
  3. 把結果整理成 “蘋果最新股價 X 美元,市盈率 Y 倍”。

6. 工具(Tools):Agent 能調用的 “外掛”

工具是 Agent 的 “手腳”,LangChain 內置了很多常用工具,也支持你自定義工具(比如把你公司的內部系統做成工具)。

  • 內置工具舉例
  • SerpAPI:調用搜索引擎查實時信息;
  • Calculator:做數學計算;
  • PythonREPL:執行 Python 代碼;
  • SQLDatabaseToolkit:操作 SQL 數據庫。

三、LangChain 能做什麼?(典型應用場景)

基於這些組件,你可以快速搭建各種 AI 應用:

  1. 檢索增強問答(RAG):最主流的場景!比如企業知識庫問答、PDF 文檔問答、合同分析;
  2. 智能聊天機器人:帶記憶功能的客服機器人、個人助手;
  3. 自主代理(Auto Agent):比如自動寫代碼、數據分析助手、市場調研機器人;
  4. 多模態應用:結合圖片、音頻、視頻(比如用 LangChain 處理圖片描述,再讓大模型生成文案)。

四、快速上手:5 行代碼搭一個簡單的 RAG 問答

用 LangChain 做一個 “本地文檔問答” 機器人,核心步驟超簡單(以 Python 版為例):

python

運行

# 1. 安裝 LangChain 相關包
# pip install langchain openai chromadb pypdf

from langchain.document_loaders import PyPDFLoader
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import Chroma
from langchain.embeddings import OpenAIEmbeddings
from langchain.chains import RetrievalQA
from langchain.llms import OpenAI

# 2. 加載 PDF 文檔
loader = PyPDFLoader("你的文檔.pdf")
documents = loader.load()

# 3. 分割成小文本片段
text_splitter = CharacterTextSplitter(chunk_size=500, chunk_overlap=50)
texts = text_splitter.split_documents(documents)

# 4. 轉成向量,存到 Chroma 向量庫
db = Chroma.from_documents(texts, OpenAIEmbeddings())

# 5. 搭建 RAG 鏈,開始問答
qa_chain = RetrievalQA.from_chain_type(llm=OpenAI(), chain_type="stuff", retriever=db.as_retriever())
print(qa_chain.run("你的問題是什麼?"))

五、關鍵注意事項(避坑指南)

  1. 模型選擇:國內用户如果用不了 OpenAI,可以換國內的模型(比如智譜 AI、文心一言),LangChain 都有對應的集成;
  2. 向量數據庫:小項目用 Chroma(輕量級,不用部署),大項目用 Milvus、Pinecone;
  3. 成本控制:Embedding 和大模型調用都要花錢,建議用小模型做 Embedding,長文檔先分割再檢索;
  4. 知識更新:如果文檔更新了,要重新生成向量,不然模型會用舊知識回答。

六、LangChain 家族成員

  • LangChain Python:最核心的版本,功能最全;
  • LangChain JS/TS:前端開發者用的版本,適合做瀏覽器或 Node.js 應用;
  • LangChain Hub:Prompt 模板和鏈的共享平台,直接抄別人的優秀模板;
  • LangSmith:LangChain 官方的調試和監控平台,幫你排查應用問題。

總結

LangChain 不是一個 AI 模型,而是大模型應用的 “開發腳手架”—— 它把複雜的流程拆成標準化組件,讓你不用關注底層細節,專注於業務邏輯。不管你是想做簡單的文檔問答,還是複雜的自主代理,LangChain 都能幫你 “事半功倍