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

LangChain LCEL执行报错:Serializable初始化参数数量不符

问题解决:LangChain中Serializable.init() TypeError报错

错误原因

你在链式调用中直接使用StrOutputParser类本身,而非创建它的实例,导致调用时错误地将输入参数传递给类的构造函数,触发Serializable.__init__()参数不匹配的报错。

修正后的代码

将StrOutputParser改为StrOutputParser()(添加括号完成实例化)即可解决问题:

from langchain.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
from langchain_openai import ChatOpenAI  # 部分LangChain版本需从该路径导入ChatOpenAI

model = ChatOpenAI()
prompt = ChatPromptTemplate.from_template("tell me a joke about {topic}")
chain = prompt | model | StrOutputParser()
chain.invoke({"topic": "bears"})

简单示例的修正

同样需要实例化StrOutputParser:

prompt2 = ChatPromptTemplate.from_template("What's up?")
chain = prompt2 | model | StrOutputParser()
chain.invoke({})

补充说明

LangChain的输出解析器需要以实例形式加入链式调用,因为链式调用的每个环节都要求是可执行的Runnable对象,类本身不具备可执行能力,必须通过实例化生成可调用对象。

内容的提问来源于stack exchange,提问作者devinbost

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 08:42:50