跳到正文
docai.cc

DOCAI · 概念 · L2

什么是结构化输出

一句话定义

让模型按给定 schema 返回 JSON 等机器可读格式,而不是自由文本。

开发者更新 2026-11-13核验 2026-11-13 · docai 编辑部

它解决什么

要让程序消费模型的输出,就不能是「一段话里夹着答案」。

结构化输出把结果约束成固定字段:{"sentiment": "negative", "confidence": 0.82},程序直接解析。

两种实现层次

方式 保证什么 不保证什么
提示里写「只输出 JSON」 大概率的格式 一定合法、字段齐全
schema 约束(服务端支持时) 符合给定结构 内容正确

能开 schema 约束就开。靠提示要格式,迟早会遇到多一句解释、少一个引号。

一个最小 schema

{
  "type": "object",
  "properties": {
    "sentiment": { "type": "string", "enum": ["positive", "neutral", "negative"] },
    "reason": { "type": "string" }
  },
  "required": ["sentiment", "reason"],
  "additionalProperties": false
}

enum 和 required 是最有用的两个约束:前者把答案锁进集合,后者防止字段缺失。

三个常见误解

  • 「格式对了内容就对」:格式只保证可解析。字段值仍可能是编的,关键字段要自己校验。
  • 「JSON mode 等于 schema 约束」:不是。前者只保证是合法 JSON,不保证字段。
  • 「结构化输出不需要重试」:仍可能因为截断、拒答、超长而失败。解析失败要有兜底。

三个实践要点

  • 把 temperature 调低,减少字段值漂移。
  • 让模型在字段里给「依据」,方便事后核对。
  • 解析失败时记录原始输出,不要静默丢弃。

延伸阅读

来源

定义与事实以以下来源为准;表述与取舍是本站整理的。
  1. [1]OpenAI · Structured outputs
  2. [2]OpenAI · API Reference

相邻概念