type
Post
status
Published
date
Oct 6, 2025
slug
summary
StrOutputParser、JsonOutputParser、XMLOutputParser、CommaSeparatedListOutputParser、PydanticOutputParser用法
tags
prompt
人工智能
category
技术分享
icon
password
输出解析器介绍
为什么需要输出解析器
语言模型返回的内容通常都是字符串的格式(文本格式),但在实际AI应用开发过程中,往往希望
model可以返回更直观、更格式化的内容,以确保应用能够顺利进行后续的逻辑处理。此时,LangChain提供的输出解析器就派上用场了。
输出解析器(Output Parser)负责获取 model 的输出并将其转换为更合适的格式。这在应用开发中极其重要。
LangChain 输出解析器可参考文档:https://reference.langchain.com/python/langchain_core/output_parsers/
什么是输出解析器
输出解析器是LangChain框架中的重要组件,它的作用是将大语言模型的原始输出内容解析为如JSON、XML、YAML等结构化数据。在LangChain中,输出解析器位于模型和最终数据输出之间,作为数据处理的中间层。通过输出解析器,可以实现如下目的:
- 指定格式输出:将模型的文本输出转换指定格式
- 数据校验:确保输出内容符合预期的格式和类型
- 错误处理:当解析失败时,进行错误修复和重试
- 输出格式提示词:生成对应格式要求的提示词,如要生成JSON的具体描述,可以通过提示词传递给大模型,达到返回特定格式数据的目的
输出解析器分类
LangChain提供了多种输出解析器,以下是常见的输出解析器及使用场景:
解析器类型 | 适用场景 | 输出格式 |
StrOutputParser | 简单文本输出 | 字符串 |
JsonOutputParser | JSON格式数据 | 字典/列表 |
PydanticOutputParser | 复杂结构化数据 | Pydantic模型对象 |
ListOutputParser | 列表数据 | Python列表 |
DatetimeOutputParser | 时间日期数据 | datetime对象 |
BooleanOutputParser | 布尔值输出 | True/False |
输出解析器方法
parse:将大模型输出的内容,格式化成指定的格式返回。
format_instructions:它会返回一段清晰的格式说明字符串,告诉 model 希望输出成什么格式(比如 JSON,或者特定格式)。
输出解析器类继承关系
分析LangChain源码可知,在 LangChain 的类结构中,顶层基类是
BaseLLMOutputParser,用于定义所有 LLM 输出解析器的抽象父类。而BaseTransformOutputParser是一个泛型类,用于“对模型输出进行转换”,我们常用的 StrOutputParser、ListOutputParser等均继承自 BaseTransformOutputParser。
常用输出解析器用法
字符串解析器
StrOutputParser是LangChain中最简单的输出解析器,它可以简单地将任何输入转换为字符串。从结果中提取content字段转换为字符串输出。
执行结果:
Json 解析器
JsonOutputParser,即JSON输出解析器,是一种用于将大模型的自由文本输出转换为结构化JSON数据的工具。
适合场景:特别适用于需要严格结构化输出的场景,比如 API 调用、数据存储或下游任务处理。
实现方式:
- 用户自己通过提示词指明返回Json格式
- 借助JsonOutputParser的get_format_instructions() ,生成格式说明,指导模型输出JSON 结构
指定提示词指明返回 json 格式
执行结果如下
使用get_format_instructions 生成格式说明。
执行结果:
列表解析器
利用CommaSeparatedListOutputParser解析器,可以将模型的文本响应转换为一个用逗号分隔的列表(List[str])
执行结果如下
XML 解析器
XMLOutputParser,将模型的自由文本输出转换为可编程处理的 XML 数据。
注意:XMLOutputParser 不会直接将模型的输出保持为原始XML字符串,而是会解析XML并转换成Python字典(或类似结构化的数据)。目的是为了方便程序后续处理数据,而不是单纯保留XML格式。
代码如下:
执行结果如下
解析器进阶用法
Pydantic解析器
PydanticOutputParser 是 LangChain 输出解析器体系中最常用、最强大的结构化解析器之一。
它与 JsonOutputParser 类似,但功能更强 —— 能直接基于 Pydantic 模型 定义输出结构,并利用其类型校验与自动文档能力。 对于结构更复杂、具有强类型约束的需求,PydanticOutputParser 则是最佳选择。它结合了Pydantic模型的强大功能,提供了类型验证、数据转换等高级功能,使用示例如下:执行结果:
2025-10-26 09:25:17.838 | INFO | main:<module>:69 - 解析后的结构化结果:
name=‘小米’ category=‘科技’ description=‘小米公司是一家专注于智能硬件、电子产品和互联网服务的中国科技公司,成立于2010年,以其高性价比的产品和创新技术而闻名。’
2025-10-26 09:25:17.838 | INFO | main:<module>:72 - 结果类型: <class ‘main.Product’>
执行结果:
- Author:guderain
- URL:https://wangguanxi.space/article/2e02b727-a3a3-80f6-85b6-ce08953acda6
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts


.webp?table=collection&id=92be88af-5f71-4631-9d3e-ee3bd53dcced&t=92be88af-5f71-4631-9d3e-ee3bd53dcced&width=1080&cache=v2)