You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Langchain SequentialChain多输出场景run方法报错求助

解决方案

方法1:使用invoke方法(推荐)

LangChain v0.1及之后版本,所有链统一用invoke方法处理输入输出,单/多输出场景都适用。传入输入字典后,会直接返回包含所有输出键的结果字典:

# 示例输入(根据你的业务场景调整)
input_data = {"content": "用于生成MCQ的目标文本"}

# 执行链并获取结果
result = sequential_chain.invoke(input_data)

# 提取两个输出结果
quiz = result["quiz"]
review = result["review"]

方法2:调整为单输出键(适配旧逻辑可选)

如果需要适配仅支持单输出的业务逻辑,可以修改SequentialChain的输出配置,把两个结果打包成字典作为单个输出键的值:

from langchain.chains import SequentialChain

# 重新定义SequentialChain,设置单输出键
sequential_chain = SequentialChain(
    chains=[quiz_chain, review_chain],
    input_variables=["content"],
    # 将输出改为单个键,值包含quiz和review的合并结果
    output_keys=["combined_output"],
    # 需确保链的最后一步能生成包含两个结果的字典,或额外添加合并步骤
)

# 此时可使用run方法(仍推荐优先用invoke)
result = sequential_chain.run(input_data)
quiz = result["quiz"]
review = result["review"]

关键说明

  • run方法仅支持单一输出键的链,设计目的是直接返回单个结果值,而非字典,多输出场景下必然报错。
  • SequentialChain继承自BaseChain,新版LangChain已统一用invoke作为标准执行方法;predict方法仅针对LLMChain这类单输出链设计,SequentialChain本身确实没有该方法。

内容的提问来源于stack exchange,提问作者light0-0

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 10:31:31