LangChain 第三课:Chain 链精讲
单个任务:用LLMChain。
·
LangChain 第三课:Chain 链精讲(通俗讲解 + 完整注释代码)
一、核心概念
1. 什么是 Chain
链就是把多个 LangChain 组件按顺序串成一条自动执行流水线不用分步手动调用,写好流程后输入参数自动走完全部流程
2. Chain 核心作用
- 简化代码,减少重复调用
- 固定业务执行流程
- 模型 + 提示词 + 逻辑一键运行
- 可嵌套、可组合实现复杂任务
3. 最常用 5 种主流链(工作必用)
- LLMChain 基础问答链(最基础)
- SequentialChain 顺序执行多步链
- SimpleSequentialChain 简易顺序链
- RetrievalQA 检索问答链(RAG 专用)
- 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="帮我总结它的链功能"))
七、本节课必背知识点(直接背)
- Chain 本质:组件流水线,自动执行整套流程
- LLMChain:基础绑定模型 + 提示词,单任务首选
- SimpleSequentialChain:简单串行,单入单出
- SequentialChain:复杂串行,多入多出,项目最常用
- RetrievalQA:RAG 知识库专属问答链
- ConversationChain:带记忆多轮对话链
- 链最大优势:流程固化、代码简洁、方便统一维护
八、通俗易懂大白话总结
- 单个任务:用LLMChain
- 先后两步简单流程:SimpleSequentialChain
- 多步骤多结果正式业务:SequentialChain
- 本地文档问答:RetrievalQA
- 聊天连续对话:ConversationChain
更多推荐

所有评论(0)