AI Agent开发学习系列 - langchain之Chains的使用(2):SimpleSequentialChain
·
SimpleSequentialChain 是 LangChain 框架中用于将多个链(Chain)按顺序连接执行的组件。它让你可以定义一系列的处理步骤,每个步骤的输出会作为下一个步骤的输入,形成完整的处理流水线。
主要特点
- 顺序执行:多个链按定义顺序依次执行,前一个链的输出作为后一个链的输入。
- 简化配置:相比 SequentialChain,SimpleSequentialChain 配置更简单,适合输入输出变量名相同的场景。
- 流水线处理:适合需要多步骤、分阶段处理的任务。
应用场景
- 多步骤文本处理(翻译→总结→分类)
- 数据预处理流水线
- 复杂问答流程
- 内容生成与优化
典型用法
# 顺序链 SimpleSequentialChain: 只支持固定的链路
from langchain.chains import SimpleSequentialChain # 导入顺序链
from langchain.chains import LLMChain # 导入LLM链
from langchain_openai import ChatOpenAI # 导入腾讯混元模型封装
from langchain.prompts import ChatPromptTemplate # 导入聊天提示词模板
import os
from pydantic import SecretStr
from dotenv import load_dotenv
load_dotenv() # 自动加载 .env 文件
# 初始化腾讯混元大模型
llm = ChatOpenAI(
api_key=SecretStr(os.environ.get("HUNYUAN_API_KEY", "")), # 读取API密钥
base_url="https://api.hunyuan.cloud.tencent.com/v1", # 腾讯混元API地址
model="hunyuan-t1-latest", # 指定模型
temperature=0, # 结果更稳定
)
# 第一个链:根据水果生成饮料做法
first_prompt = ChatPromptTemplate.from_template("你是一个美食专家,请根据{fruit}想一种饮料做法。")
chain_one = LLMChain(
llm=llm,
prompt=first_prompt,
verbose=True # 打印详细日志
)
# 第二个链:用6个词描述饮料
second_prompt = ChatPromptTemplate.from_template("用6个词来描述一下这种饮料{drink}。")
chain_two = LLMChain(
llm=llm,
prompt=second_prompt,
verbose=True # 打印详细日志
)
# 构建顺序链,将两个链串联
overall_simple_chain = SimpleSequentialChain(
chains=[chain_one, chain_two],
verbose=True # 打印详细日志
)
# 执行顺序链,输入水果名称
overall_simple_chain.run({"西瓜"})
结果:
> Entering new SimpleSequentialChain chain...
> Entering new LLMChain chain...
Prompt after formatting:
Human: 你是一个美食专家,请根据{'西瓜'}想一种饮料做法。
> Finished chain.
### **西瓜柠檬气泡冷萃饮**
(一款融合清甜、酸爽与气泡感的夏日解暑特调,操作简单却颜值在线,适合家庭或野餐场景~)
#### **食材准备**(2杯量)
- 无籽西瓜肉 300g(选成熟度高的,甜度更足)
- 柠檬 1个(约80g,取汁+切片装饰)
- 薄荷叶 8-10片(新鲜的更清香)
- 苏打水 300ml(可选含气矿泉水或气泡水)
- 凉白开/矿泉水 100ml(调节浓度)
- 蜂蜜/白砂糖 10g(可选,根据西瓜甜度调整)
#### **制作步骤**
1. **处理西瓜**:西瓜去籽后切小块(无需去皮,保留少量红瓤更美观),放入料理机打成果泥(或用勺子压成泥状)。若喜欢细腻口感,可用滤网过滤掉粗纤维,只留西瓜原汁;若偏好果粒感,保留部分果肉即可。
2. **调底味**:将西瓜泥倒入碗中,挤入半个柠檬的汁(约15ml),搅拌均匀。尝一口,若偏酸可加蜂蜜/白糖调和(西瓜本身甜度高,建议少糖更突出清新感)。
3. **分层组装**:取2个透明玻璃杯(推荐高杯型,方便分层),先倒入1/3杯的西瓜柠檬混合液,再加入半杯冰块(冰块可提前用西瓜汁冻成,融化后颜色更统一)。
4. **注入气泡**:沿杯壁缓缓倒入苏打水(避免冲散底层),至杯子8分满。最后用剩余的西瓜泥在液面画圈,形成自然的渐变纹路(或直接铺一层西瓜果粒增加口感)。
5. **装饰点睛**:柠檬切片捏扁(释放香气)后放入杯口,薄荷叶轻拍出香后斜插,最后撒少许西瓜籽(可选,增加趣味)。
#### **关键Tips**
- 西瓜选“黑美人”或“麒麟瓜”最佳,甜度高且纤维少;若用普通西瓜,建议去籽后过滤,避免口感粗糙。
- 气泡水可选零糖款,更适合控糖人群;若喜欢更浓郁的风味,可加1片青柠或薄荷叶一起捣压,增加草本香气。
- 冷藏10分钟再饮用,西瓜的清甜和柠檬的酸爽会更融合,气泡也更持久~
这款饮料既有西瓜的清润,柠檬的酸甜解腻,气泡的刺激感又能瞬间唤醒夏日疲惫,冰镇后一口下去,仿佛咬碎了一整个夏天的凉爽! 🍉✨
> Entering new LLMChain chain...
Prompt after formatting:
Human: 用6个词来描述一下这种饮料### **西瓜柠檬气泡冷萃饮**
(一款融合清甜、酸爽与气泡感的夏日解暑特调,操作简单却颜值在线,适合家庭或野餐场景~)
#### **食材准备**(2杯量)
- 无籽西瓜肉 300g(选成熟度高的,甜度更足)
- 柠檬 1个(约80g,取汁+切片装饰)
- 薄荷叶 8-10片(新鲜的更清香)
- 苏打水 300ml(可选含气矿泉水或气泡水)
- 凉白开/矿泉水 100ml(调节浓度)
- 蜂蜜/白砂糖 10g(可选,根据西瓜甜度调整)
#### **制作步骤**
1. **处理西瓜**:西瓜去籽后切小块(无需去皮,保留少量红瓤更美观),放入料理机打成果泥(或用勺子压成泥状)。若喜欢细腻口感,可用滤网过滤掉粗纤维,只留西瓜原汁;若偏好果粒感,保留部分果肉即可。
2. **调底味**:将西瓜泥倒入碗中,挤入半个柠檬的汁(约15ml),搅拌均匀。尝一口,若偏酸可加蜂蜜/白糖调和(西瓜本身甜度高,建议少糖更突出清新感)。
3. **分层组装**:取2个透明玻璃杯(推荐高杯型,方便分层),先倒入1/3杯的西瓜柠檬混合液,再加入半杯冰块(冰块可提前用西瓜汁冻成,融化后颜色更统一)。
4. **注入气泡**:沿杯壁缓缓倒入苏打水(避免冲散底层),至杯子8分满。最后用剩余的西瓜泥在液面画圈,形成自然的渐变纹路(或直接铺一层西瓜果粒增加口感)。
5. **装饰点睛**:柠檬切片捏扁(释放香气)后放入杯口,薄荷叶轻拍出香后斜插,最后撒少许西瓜籽(可选,增加趣味)。
#### **关键Tips**
- 西瓜选“黑美人”或“麒麟瓜”最佳,甜度高且纤维少;若用普通西瓜,建议去籽后过滤,避免口感粗糙。
- 气泡水可选零糖款,更适合控糖人群;若喜欢更浓郁的风味,可加1片青柠或薄荷叶一起捣压,增加草本香气。
- 冷藏10分钟再饮用,西瓜的清甜和柠檬的酸爽会更融合,气泡也更持久~
这款饮料既有西瓜的清润,柠檬的酸甜解腻,气泡的刺激感又能瞬间唤醒夏日疲惫,冰镇后一口下去,仿佛咬碎了一整个夏天的凉爽! 🍉✨
。
> Finished chain.
清爽|清甜|酸爽|气泡感|夏日|高颜值
> Finished chain.
'清爽|清甜|酸爽|气泡感|夏日|高颜值\n'
这段代码通过 LangChain 的 SimpleSequentialChain 构建了一个智能的饮料制作流水线:首先用腾讯混元大模型根据输入的水果(如"西瓜")生成具体的饮料制作方法,然后将这个制作方法作为输入传递给第二个链,用6个词简洁地描述这种饮料的特点和口感,最终形成一个从水果到饮料描述完整解决方案的自动化处理流程,展示了如何将复杂的AI任务分解为多个有序步骤并实现端到端的智能处理。技术要点包括:使用 ChatPromptTemplate 定义结构化提示词模板,通过 LLMChain 将提示词与大模型绑定,利用 SimpleSequentialChain 实现链式数据流转,设置 verbose=True 进行调试监控,以及通过 temperature=0 确保输出的一致性和可预测性。
SimpleSequentialChain 让你可以轻松构建多步骤的 AI 处理流水线,每个步骤的输出自动传递给下一步,适合需要分阶段处理的复杂任务。
更多推荐
所有评论(0)