JSON 结构化输出和自由文本回答有什么区别?怎么选
JSON 结构化输出和自由文本回答经常被放在一起比较。弄清区别后,你能更快判断该用哪一种。
核心区别
自由文本可读性好但格式不稳定;结构化输出牺牲一点流畅度,换来可以直接复制、导入和自动处理的稳定结果。
从原理看,自由文本每次结构都不同,后续整理很费时;预先定义字段相当于给 AI 一张要填的表,结果更一致,也更容易检查遗漏。设计字段时要从“下一步怎么用”倒推。如果结果要做数据透视,字段值就要标准化;如果要人工复核,就需要保留原文依据;如果要导入系统,字段名最好与系统字段一致。先想清楚用途,结构化输出才真正省事。
什么时候选结构化输出
- 从大量文本里提取信息,比如简历、合同、反馈里的关键字段。
- 需要把结果导入表格或数据库。
- 多人协作需要统一格式的输出。
- 写程序调用 AI 接口,需要稳定解析结果。
一个虚构的对比:一位 HR 收到 30 份简历,需要统计候选人的工作年限、技能和期望城市。逐份阅读要花一下午;定义好字段后让 AI 逐份输出 JSON,再合并成表格,HR 只需抽查几份核对,把时间用在面试判断上。
什么时候自由文本回答就够了
任务简单、一次性、对格式没有严格要求时,自由文本回答往往更省事。另外要注意,一次提取的字段过多。更好的做法是:字段太多时拆成两次,先提取核心字段,再补充次要字段。
如果选择结构化输出,这样开始
- 说明缺失值怎么处理,例如找不到就填 null 或“未提及”
- 要求“只输出 JSON,不要任何解释”
- 用几条真实样本测试,检查字段是否齐全、格式是否合法。
- 如果通过接口调用,优先使用平台提供的结构化输出或 JSON 模式等功能,并在程序里做格式校验。
示范提示词
以老师的场景为例:
请从下面的教案片段中提取信息,只输出 JSON,不要解释。
字段要求:
{
"主题": "字符串,不超过 20 字",
"负责人": "字符串,原文未提及填 null",
"截止日期": "YYYY-MM-DD 格式,未提及填 null",
"风险点": ["字符串数组,最多 3 条"],
"需要教研组长决策的事项": ["字符串数组"]
}
原文:
[粘贴内容]
使用时请注意:学生个人信息不要输入 AI,涉及成绩和评价的内容要保护隐私。
一个常被问到的问题
AI 偶尔输出不合法的 JSON 怎么办? 在程序中加格式校验,失败时把错误信息连同原输出发回给 AI 修正,并保留人工兜底。
结论
一句话:对质量要求高、愿意多花一点准备时间时选结构化输出,临时的简单问题用自由文本回答即可。两者也可以先后使用:先用自由文本回答快速试探,再用结构化输出打磨。
常见误解
有人认为结构化输出一定比自由文本回答高级,其实不然。工具没有高低,只有合不合适。真正需要警惕的是两种极端:凡事都套复杂方法,或者明明效果不稳定还坚持最简单的问法。