1.1 定义
输出解析器(Output Parser),就是站在模型输出和程序最终要用的数据之间的一层转换器。
它的核心任务是:把模型返回的内容,从“面向人阅读”的文本,转成“面向程序处理”的结构化结果。
这条链可以拆成:
-
Prompt 负责把输入整理好,告诉模型“你要怎么回答”;
-
Model 负责生成结果,真正“生成回答”;
-
Output Parser 负责把结果转成字符串、JSON 或对象,把这份回答“整理成程序好用的样子”。 放到实际使用中,根据解析器类型不同,输出解析器通常会承担下面几类工作:
-
格式转换:把模型回答转成
str、dict、Pydantic 对象等。 -
结构约束:引导模型尽量按指定字段输出。
-
结果校验:检查字段类型、范围、必填项是否符合预期。
-
工程衔接:让模型输出能被数据库、接口、前端、工作流直接消费
1.2 输出解析器的作用
初学大模型时,最容易把模型回答理解成“它回我一段文字就结束了”。但在真实项目里,模型输出通常还要继续流向别的程序模块,例如:
- 存进数据库;
- 返回给前端页面渲染;
- 交给下一个工作流节点;
- 作为 Agent、工具、接口调用的参数;
- 进入风控、审核、统计、报表逻辑。
这时,“一段自然语言”通常就不够用了。程序更希望拿到的是:
- 一个字符串;
- 一个 JSON 字典;
- 一个字段固定的对象;
- 一个带校验规则的强类型数据结构。
如果只靠 split()、正则、字符串截取去拆模型输出,代码往往会变得脆弱:模型多加一句解释、少一个逗号、换一个字段名,程序就可能出错。