HiDeepSeekDev
空闲特惠
教程指南
DeepSeek JSON Output 指南:结构化输出、校验与失败兜底
HiDeepSeekDeveloper Guide
教程指南JSON Output结构化输出Validation

DeepSeek JSON Output 指南:结构化输出、校验与失败兜底

H
HiDeepSeek 编辑部
更新于 2026/9/1
阅读大约 7 分钟

JSON Output 能保证模型返回合法 JSON 字符串,但“能解析”不等于“符合业务规则”。字段缺失、枚举越界和语义错误仍需由应用校验。

一、正确开启 JSON Output

请求中设置 response_format: { type: 'json_object' },同时在系统或用户提示中明确写出“json”,并提供目标结构示例。还要为完整输出保留足够的 Token,避免 JSON 被截断。

const response = await client.chat.completions.create({
  model: 'deepseek-v4-flash',
  messages: [{
    role: 'system',
    content: '请输出 json,格式示例:{"title":"...","tags":["..."]}',
  }, {
    role: 'user',
    content: '从这段内容中提取标题和标签:...',
  }],
  response_format: { type: 'json_object' },
  max_tokens: 1000,
});

二、解析之后继续校验

const raw = response.choices[0].message.content;
const data = JSON.parse(raw);

if (typeof data.title !== 'string' || !Array.isArray(data.tags)) {
  throw new Error('模型输出未通过业务结构校验');
}

三、准备失败兜底

  • 检查 finish_reason,识别长度截断。
  • 为偶发空内容、解析失败设置有限重试或人工复核。
  • 限制字符串长度、数组数量和枚举取值,避免异常数据进入数据库。
  • 不要直接执行模型返回的 SQL、Shell 命令或 URL。

如果你的任务需要工具参数严格符合 JSON Schema,可进一步评估工具调用的 strict 模式;该能力属于独立机制,使用前应阅读当前 Beta 限制。

参考资料

本文按下列官方资料核验。模型能力、价格与接口可能调整,请以最新文档为准。