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 处理流水线,每个步骤的输出自动传递给下一步,适合需要分阶段处理的复杂任务。

Logo

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

更多推荐