返回知识库

AI 与提示 · 模型与输出

结构化输出Structured Outputs

结构化输出强不强,看约束在哪一层:只靠提示会解析失败,JSON mode 只保证语法,约束解码在采样时就把非法字段拦住。

先认出这张要入库的工单,再看约束在哪一层

下面就是下游代码要解析的分类工单。默认只靠一句「请输出 JSON」,工单盖着解析失败;约束越靠近采样,字段才能一次写对。

工单 CL-184解析失败
当然,这是分类结果:{"category":"退款","confidence":"高"}
category
退款
confidence
「高」
reason
缺失

开头带人话,枚举写成中文,必填 reason 也没了。代码解析直接炸。

原因:只说「请输出 JSON」,约束不在采样层。下一步:改 JSON mode 看语法能否先过,或直接上约束解码。

知识点:约束越靠近采样越稳

工单上的失败章和字段对错已经演过,这里只给命名。

  • 裸提示词:写完再祈祷,常带开场白、漏字段、枚举写成中文。
  • JSON mode:保证整体能 parse,不保证字段名、类型、枚举值。
  • 约束解码:采样时 mask 非法 token,物理上写不出 schema 外的值。
  • 前两种靠失败重试,多花一次调用;后者一次成功,下游走 happy path。

什么时候用、怎么用

只有代码要直接消费输出时,才值得上硬约束。

  • 信号:分类、抽取、路由、要入库或触发退款/下单。
  • 适用:字段错一次就是脏数据或错动作。
  • 不适用:写给人读的回复、散文、创意文案——强行填表会僵。
  • 最短路径:先定 schema → 能约束解码就上 → 仍做校验兜底。

正反例:同一条留言,只换约束

都要把留言分类成三个字段。

正例约束解码一次入库

工单字段齐全,1 次调用搞定,用户几乎不等待。

反例「请输出 JSON」再自动重试

第一次带开场白,第二次漏字段。延迟和成本翻倍,还可能把脏数据混进库。

快速自测

接口要求返回分类结构,延迟敏感且字段必须匹配 schema。该优先选哪种?

继续查证

术语的技术定义和行为以这些一手或权威资料为准。

下一步学

和本知识点经常一起出现的概念。