模型输出一旦要进入数据库、表单或下一步代码,JSON 语法正确还不够,字段和类型也要稳定。Structured Outputs 让模型按开发者提供的 JSON Schema 生成结构化结果。1
JSON mode 主要保证结果能解析成 JSON;Structured Outputs 进一步约束结果匹配指定 Schema。反复重试和手写解析器仍然可以用,但它们把格式维护成本留在应用层。1
约束解码会先把 JSON Schema 转成语法规则,模型每生成一个 token,推理过程就屏蔽当前不符合规则的候选。新 Schema 的第一次请求还要完成预处理,后续请求可以复用缓存结果。1
接入时抓住三个分支:用 Schema 描述字段,用
strict: true 开启严格匹配,用 refusal 处理模型拒答。Schema 匹配只说明结构合格,字段里的事实、数值和业务规则仍要由应用校验。1需要一份结构化数据时,优先使用
response_format;需要模型选择并调用外部工具时,使用 tools 的 Function Calling。两种入口都能使用严格 Schema,但交付物分别是数据和工具参数。23最小实践可以从一个小 Schema 开始:用 Pydantic 或 Zod 定义字段,选择
response_format 或 tools,分别处理 parsed、refusal 和提前截断,再补一层业务校验。官方 Cookbook 提供了可运行的 Python 示例。4参考来源
- 1
- 2Structured model outputs
developers.openai.com
- 3Function calling
developers.openai.com
- 4Introduction to Structured Outputs
developers.openai.com


评论
登录后可发表评论。