LangChain 第三课:Chain 链精讲(通俗讲解 + 完整注释代码)

一、核心概念

1. 什么是 Chain

链就是把多个 LangChain 组件按顺序串成一条自动执行流水线不用分步手动调用,写好流程后输入参数自动走完全部流程

2. Chain 核心作用

  1. 简化代码,减少重复调用
  2. 固定业务执行流程
  3. 模型 + 提示词 + 逻辑一键运行
  4. 可嵌套、可组合实现复杂任务

3. 最常用 5 种主流链(工作必用)

  1. LLMChain 基础问答链(最基础)
  2. SequentialChain 顺序执行多步链
  3. SimpleSequentialChain 简易顺序链
  4. RetrievalQA 检索问答链(RAG 专用)
  5. ConversationChain 带记忆对话链

二、1. LLMChain 基础问答链(入门必学)

作用

绑定提示词模板 + 大模型,一键执行问答

完整带注释代码

python

运行

# 导入依赖
from langchain_openai import OpenAI
from langchain.prompts import PromptTemplate
# 导入基础链
from langchain.chains import LLMChain

# 1. 初始化大模型
# temperature=0.2 偏向严谨、少发散
llm = OpenAI(temperature=0.2)

# 2. 定义提示词模板
template = "请简短讲解{knowledge}这个知识点"
prompt = PromptTemplate(
    input_variables=["knowledge"], # 定义传入变量
    template=template
)

# 3. 组装成基础链
# 把模型和提示词绑定在一起
llm_chain = LLMChain(llm=llm, prompt=prompt)

# 4. 运行链,传入参数执行
result = llm_chain.run(knowledge="向量数据库")

# 打印结果
print(result)

执行流程

传入变量 → 填充提示词 → 调用大模型 → 返回答案


三、2. SimpleSequentialChain 简易顺序链

作用

一步结果作为下一步输入,连续执行多个任务适合:翻译→总结、解释→精简、扩写→缩写

业务例子

第一步:解释名词第二步:把解释压缩成一句话

带注释代码

python

运行

from langchain_openai import OpenAI
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain, SimpleSequentialChain

# 1. 初始化模型
llm = OpenAI(temperature=0.3)

# 第一步链:详细解释
template1 = "详细解释一下:{topic}"
prompt1 = PromptTemplate(input_variables=["topic"], template=template1)
chain1 = LLMChain(llm=llm, prompt=prompt1)

# 第二步链:精简成一句话
template2 = "把下面内容精简成一句话:{content}"
prompt2 = PromptTemplate(input_variables=["content"], template=template2)
chain2 = LLMChain(llm=llm, prompt=prompt2)

# 组装顺序链 自动把上一步输出传给下一步
total_chain = SimpleSequentialChain(chains=[chain1, chain2])

# 只需要传入最开始参数
final_result = total_chain.run("大模型RAG")
print(final_result)

特点

只能单输入单输出,不能传多个不同变量


四、3. SequentialChain 标准顺序链(企业常用)

作用

支持多个输入、多个输出,复杂多步骤业务首选

业务场景

输入:技术名词 + 使用场景第一步:写原理第二步:写适用场景第三步:写优缺点

带注释代码

python

运行

from langchain_openai import OpenAI
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain, SequentialChain

llm = OpenAI(temperature=0.2)

# 链1:生成原理
prompt1 = PromptTemplate(
    input_variables=["tech"],
    template="简述{tech}工作原理"
)
chain1 = LLMChain(llm=llm, prompt=prompt1, output_key="principle")

# 链2:生成优缺点
prompt2 = PromptTemplate(
    input_variables=["tech"],
    template="写出{tech}的优点和缺点"
)
chain2 = LLMChain(llm=llm, prompt=prompt2, output_key="advantage")

# 组装多入多出顺序链
all_chain = SequentialChain(
    chains=[chain1, chain2],
    input_variables=["tech"],       # 整体统一输入
    output_variables=["principle","advantage"] # 需要拿到的所有输出
)

# 执行获取字典格式结果
res = all_chain.invoke({"tech":"Agent智能体"})
print("原理:",res["principle"])
print("优缺点:",res["advantage"])

五、4. RetrievalQA 检索问答链(RAG 核心链)

作用

专门做文档知识库问答,自动完成:检索文档片段 → 拼接上下文 → 模型生成答案

极简结构逻辑

python

运行

# 伪代码逻辑
# 加载文档 -> 分块 -> 存入向量库 -> 检索相似内容 -> 问答链回答

核心记忆

做本地知识库问答,直接用 RetrievalQA 链


六、5. ConversationChain 对话记忆链

作用

自带记忆组件,自动保存聊天上下文,多轮对话连贯之前记忆层代码就是此链

python

运行

from langchain_openai import OpenAI
from langchain.chains import ConversationChain
from langchain.memory import ConversationBufferMemory

# 初始化记忆
memory = ConversationBufferMemory()
# 搭建对话链
conv_chain = ConversationChain(llm=OpenAI(temperature=0.5), memory=memory)

# 多轮对话自动记历史
print(conv_chain.predict(input="我在学习LangChain"))
print(conv_chain.predict(input="帮我总结它的链功能"))

七、本节课必背知识点(直接背)

  1. Chain 本质:组件流水线,自动执行整套流程
  2. LLMChain:基础绑定模型 + 提示词,单任务首选
  3. SimpleSequentialChain:简单串行,单入单出
  4. SequentialChain:复杂串行,多入多出,项目最常用
  5. RetrievalQA:RAG 知识库专属问答链
  6. ConversationChain:带记忆多轮对话链
  7. 链最大优势:流程固化、代码简洁、方便统一维护

八、通俗易懂大白话总结

  • 单个任务:用LLMChain
  • 先后两步简单流程:SimpleSequentialChain
  • 多步骤多结果正式业务:SequentialChain
  • 本地文档问答:RetrievalQA
  • 聊天连续对话:ConversationChain
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐