第四章:大模型(LLM)】06.langchain原理-(2)langchain Chain的使用方法
第四章:大模型(LLM)
第六部分:langchain原理
第二节:langchain Chain的使用方法
1. 什么是 Chain?
在 LangChain 中,Chain 是将一个或多个组件(模型、工具、Prompt 等)按顺序组合起来的执行流程。
它的作用类似于一个“流水线”,输入数据后,经过多个处理步骤,得到最终的输出。
优点:
将复杂的任务拆分为多个可复用的步骤
方便调试和扩展
可以嵌套使用(Chain 里可以再套 Chain)
2. Chain 的常见类型
LangChain 提供了几种常见的 Chain:
Chain 类型 | 作用 | 示例场景 |
---|---|---|
SimpleSequentialChain | 简单串联多个 Chain,输出直接作为下一个 Chain 的输入 | 问题翻译 → 问答 |
SequentialChain | 支持多个输入输出字段的串联 | 多任务并行处理 |
LLMChain | 用 LLM 执行特定 Prompt 模板的单步骤任务 | 问答、文本生成 |
RouterChain | 根据输入自动选择不同的子 Chain | 多领域问答路由 |
RetrievalQA | 结合检索器(Vector Store)做问答 | 基于知识库的搜索问答 |
3. 基本使用示例
以下是一个使用 LLMChain
的简单示例:
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain# 定义 LLM
llm = OpenAI(temperature=0)# 定义 Prompt 模板
prompt = PromptTemplate(input_variables=["topic"],template="请写一首关于 {topic} 的短诗"
)# 创建 Chain
chain = LLMChain(llm=llm, prompt=prompt)# 运行
result = chain.run("人工智能")
print(result)
说明:
PromptTemplate
用来定义输入和输出格式LLMChain
结合 LLM 和 Prompt 模板.run()
方法直接执行 Chain
4. 多步骤 Chain 示例
使用 SimpleSequentialChain
串联两个步骤:翻译 → 总结
from langchain.chains import SimpleSequentialChain# 第一步:英文翻译
translate_chain = LLMChain(llm=llm,prompt=PromptTemplate(input_variables=["text"],template="将以下内容翻译成英文:{text}")
)# 第二步:英文摘要
summary_chain = LLMChain(llm=llm,prompt=PromptTemplate(input_variables=["text"],template="请用一句话总结以下内容:{text}")
)# 串联
overall_chain = SimpleSequentialChain(chains=[translate_chain, summary_chain])# 执行
print(overall_chain.run("人工智能正在改变世界"))
5. Chain 调试技巧
打印中间结果:
verbose=True
可以输出每个步骤的结果自定义输入输出字段:
SequentialChain
允许命名输入输出字段,方便多个步骤传递数据结合 Memory:可以让 Chain 记住之前的对话上下文
6. 典型应用场景
数据清洗 + 分析
问答前的上下文检索
多语言翻译与总结
自动化内容生成
7. 流程图:LangChain Chain 工作原理
下面是一个 连接线清晰 的示意图(LLMChain + SimpleSequentialChain 结构):
[ 用户输入 ] │▼
[ PromptTemplate #1 ] → [ LLM ] → (输出结果1)│▼
[ PromptTemplate #2 ] → [ LLM ] → (最终输出)