JSON 结构化输出和自由文本回答经常被放在一起比较。弄清区别后,你能更快判断该用哪一种。

核心区别

自由文本可读性好但格式不稳定;结构化输出牺牲一点流畅度,换来可以直接复制、导入和自动处理的稳定结果。

从原理看,自由文本每次结构都不同,后续整理很费时;预先定义字段相当于给 AI 一张要填的表,结果更一致,也更容易检查遗漏。设计字段时要从“下一步怎么用”倒推。如果结果要做数据透视,字段值就要标准化;如果要人工复核,就需要保留原文依据;如果要导入系统,字段名最好与系统字段一致。先想清楚用途,结构化输出才真正省事。

什么时候选结构化输出

  • 从大量文本里提取信息,比如简历、合同、反馈里的关键字段。
  • 需要把结果导入表格或数据库。
  • 多人协作需要统一格式的输出。
  • 写程序调用 AI 接口,需要稳定解析结果。

一个虚构的对比:一位 HR 收到 30 份简历,需要统计候选人的工作年限、技能和期望城市。逐份阅读要花一下午;定义好字段后让 AI 逐份输出 JSON,再合并成表格,HR 只需抽查几份核对,把时间用在面试判断上。

什么时候自由文本回答就够了

任务简单、一次性、对格式没有严格要求时,自由文本回答往往更省事。另外要注意,一次提取的字段过多。更好的做法是:字段太多时拆成两次,先提取核心字段,再补充次要字段。

如果选择结构化输出,这样开始

  1. 说明缺失值怎么处理,例如找不到就填 null 或“未提及”
  2. 要求“只输出 JSON,不要任何解释”
  3. 用几条真实样本测试,检查字段是否齐全、格式是否合法。
  4. 如果通过接口调用,优先使用平台提供的结构化输出或 JSON 模式等功能,并在程序里做格式校验。

示范提示词

以老师的场景为例:

请从下面的教案片段中提取信息,只输出 JSON,不要解释。
字段要求:
{
  "主题": "字符串,不超过 20 字",
  "负责人": "字符串,原文未提及填 null",
  "截止日期": "YYYY-MM-DD 格式,未提及填 null",
  "风险点": ["字符串数组,最多 3 条"],
  "需要教研组长决策的事项": ["字符串数组"]
}
原文:
[粘贴内容]

使用时请注意:学生个人信息不要输入 AI,涉及成绩和评价的内容要保护隐私。

一个常被问到的问题

AI 偶尔输出不合法的 JSON 怎么办? 在程序中加格式校验,失败时把错误信息连同原输出发回给 AI 修正,并保留人工兜底。

结论

一句话:对质量要求高、愿意多花一点准备时间时选结构化输出,临时的简单问题用自由文本回答即可。两者也可以先后使用:先用自由文本回答快速试探,再用结构化输出打磨。

常见误解

有人认为结构化输出一定比自由文本回答高级,其实不然。工具没有高低,只有合不合适。真正需要警惕的是两种极端:凡事都套复杂方法,或者明明效果不稳定还坚持最简单的问法。

相关阅读