跳至内容

软件技术分享

关于电子游戏的方方面面

  • 游戏产业
    • 行业杂谈
    • 开发者采访
  • 游戏设计
    • 专题学习
    • 设计制作
  • 游戏热点
    • 游戏评测
    • 游戏攻略
    • 流行游戏
  • 工具指南
  • AI
    • AI新闻
    • 使用心得
  • 沙雕应用
  • 游戏7×24小时
  • 关于妙游社

DeepSeek:JSON 输出,合法不等于字段对

作者 2026年11月13日 09:21

(本文转载,原文约 2.5 万字符,此处保留核心结论与四条路径的对比,原文链接见文末。)

先看一个真实场景:把用户提交的报修工单抽成结构化字段写进数据库,字段是 ticket_id、title、priority、summary、contact_email,外加几个可选项。照着官方文档把 response_format 设成 json_object,第一次跑就成功,解析通过、字段齐全、类型正确,于是上线。一周后问题开始零星出现:priority 返回中文「中」而不是约定的 medium,被枚举校验拦下取了默认值;tags 有时是数组、有时是逗号分隔的字符串,前端渲染出六个单字标签;content 偶尔是空串,被最外层兜底 try 吞掉,那条工单从此消失。

三条事故看起来是三件事,其实是同一件事的三个侧面:拿到的东西通过了语法检查,但没有通过合同检查。而 json_object 从设计上只负责前者。

一、官方原话:只保证是 JSON

官方 JSON Output 指南开篇写的是,确保模型输出合法的 JSON 字符串。Chat Completions 接口参考里对 response_format 的说明更直接:设成 json_object 后,保证模型生成的消息是合法 JSON。

合法 JSON 是一个语法判断:花括号配对、引号闭合、逗号合法。它没有提到字段名、字段类型、取值范围、必填可选中的任何一项。「{a: 1}」和「{ticketId: 中, slaHours: 尽快}」在它眼里都是合格产物,一个字段不错可能只是运气。

这一点不用推理,官方在 2024 年 5 月 17 日的更新日志里给过数:模型改进后,内部测试集的 JSON 解析率从 78% 升到 85%;应用侧再引入合适的正则,才进一步提到 97%。三个推论值得记下:97% 不是模型单独的成绩,是模型加你写的正则;97% 仍然不是 100%,每 1000 次调用就有 30 次解析失败,这些失败不会自己变成异常;这是 2024 年的数据,此后官方没有再公布过更新后的解析率。

二、四层保证,json_object 只管第一层

文章把「保证」拆成四层,才看得清 json_object 停在哪一层:

  • 语法层:这串字符能不能被 JSON 解析器读进来。服务端管,这是它唯一的承诺。
  • 结构层:字段名、类型、嵌套层级是否与约定一致。你的代码管。
  • 取值层:枚举、单位、日期格式、空值怎么表示。你的代码管。
  • 语义层:数字是不是真的、结论站不站得住。只能由人来核对。

结论很朴素:结构化输出的服务端保证停在第一层,剩下三层是你的工程活。

三、四条路,代价一条比一条贵

文章把 DeepSeek 现在能走的结构化输出路径全摊开,一共四条:

  • 把字段说明写进提示词:最便宜,靠模型自觉。字段一多、嵌套一深,最先崩。
  • response_format 设成 json_object:服务端保证语法合法,不保证你的 schema。
  • text.format 用 json_schema:只是某些端点收 schema。文章的原话是同一个模型、三套协议、三个门。
  • tools 加 strict:Beta,约束最强,代价也最大。

有个细节值得记住:官方那个 97%,把应用侧正则算成了方案的一部分,不是兜底。你写上正则,等于承认模型自己到不了 100%。

四、上 strict 之前,先把 schema 过一遍

文章拿一个看起来完全正常的业务 schema 去跑严格模式,改了 8 处才通过。这不是模型挑剔,是 strict 对可选字段、嵌套对象、枚举这些写法有硬要求,平时写惯了的 schema 直接搬过去,大概率报错。

成本也要算。把完整示例塞进提示词,常驻成本比重试一次还贵 2.78 倍:示例越长越稳,但每一轮都在为它付费。字段少的时候,多写两行校验代码,往往比多塞三百字示例划算。

开了思考模式之后还有四条硬约束,踩中任何一条都会退回普通 JSON 输出。文章建议上线前逐条对照,别等线上脏数据堆起来才发现。

五、怎么选

  • 一次性脚本、内部工具:提示词加 json_object,配自己的校验,够用。
  • 对外接口、要落库的数据:strict 或 json_schema,schema 先审计再上。
  • 字段多、嵌套深:先砍字段。每多一个可选字段,就多一处可能对不上的地方。

结构化输出这件事,模型能保证的只有「能被解析」。字段对不对、值合不合理,从来是调用方的事。把这层预期摆正,比换哪个模型都管用。

本文转载自CSDN(作者:Rosanci) 《一文读懂 DeepSeek 的结构化输出:只保证「是 JSON」,不保证「是你要的 JSON」》,原文链接:https://blog.csdn.net/Rosanci/article/details/167375353。版权归原作者所有,如需删除请联系我们。

相关阅读

  • 史克威尔艾尼克斯验证本地 Nemotron:基本任务能跑,单独做游戏做不成
  • 三工具对照:把用户访谈记录做成洞察摘要谁更稳
  • Codex:合并冲突发生后,怎么向 Agent 描述“保留哪边”
  • Grok:同一则传闻,怎么让它专门找澄清与反证
  • Claude:Claude Code 里 Ask/只读和自动改的切换时机
  • Codex:Plan/先方案后改代码什么时候该强制打开

浏览更多「AI」文章 ›

  • 一、官方原话:只保证是 JS…
  • 二、四层保证,json_ob…
  • 三、四条路,代价一条比一条贵
  • 四、上 strict 之前,…
  • 五、怎么选

文章导航

上一篇DeepSeek:表格粘进 Excel 列错乱怎么救
下一篇DeepSeek:联网搜索别把三步算一步

相关文章

史克威尔艾尼克斯验证本地 Nemotron:基本任务能跑,单独做游戏做不成 史克威尔艾尼克斯验证本地 Nemotron:基本任务能跑,单独做游戏做不成 三工具对照:把用户访谈记录做成洞察摘要谁更稳 三工具对照:把用户访谈记录做成洞察摘要谁更稳 Codex:合并冲突发生后,怎么向 Agent 描述“保留哪边” Codex:合并冲突发生后,怎么向 Agent 描述“保留哪边”

评测设计产业杂谈

软件技术分享

关于电子游戏的方方面面

栏目

  • 游戏产业
  • 游戏设计
  • 游戏热点
  • 工具指南
  • AI
  • 沙雕应用
  • 游戏7x24小时
  • 关于妙游社

本站

  • 首页
  • 隐私政策
  • 联系我们
  • 关于妙游社
  • 工具指南专题
  • 文章 RSS

关注公众号

沙漏社公众号二维码

© 2026 软件技术分享

沪ICP备19032461号-1

目录

×
  • 一、官方原话:只保证是 JSON
  • 二、四层保证,json_object 只管第一层
  • 三、四条路,代价一条比一条贵
  • 四、上 strict 之前,先把 schema 过一遍
  • 五、怎么选
→ 目录