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

如何在LangChain中结合JSON解析器使用重试与输出修复解析器?

解决LangChain自定义链中输出修复解析器引发的ValidationError问题

错误详情

pydantic.v1.error_wrappers.ValidationError: 1 validation error for Generation
text
str type expected (type=type_error.str)

错误截图说明:显示上述ValidationError信息,明确指出Generation类的text字段需要字符串类型,但实际传入的不是有效字符串。

解决方案

  • 检查LLM原始输出:在链中添加日志打印LLM的返回结果,确认是否为纯字符串,排除返回None、字典或其他非字符串类型的情况。
  • 调整输出修复解析器逻辑:确保解析器的prompt模板明确要求模型返回纯文本格式,避免解析后生成非字符串结构。
  • 显式转换输出类型:在解析器处理完成后,强制将结果转换为字符串,再传入Generation对象,示例代码如下:
# 在自定义链的输出处理环节添加类型转换
fixed_output = output_fixing_parser.parse(llm_response)
# 确保text字段为字符串类型
generation_result = Generation(text=str(fixed_output))
  • 验证Generation类定义:确认使用的Generation模型(LangChain内置或自定义)中text字段的类型注解为str,避免因字段定义错误导致验证失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 10:45:06