术语●●○3 分钟 · +25 XP
Structured Outputs
Structured outputs 强制 AI 按固定格式输出答案——例如按照预先定义的 schema 输出合法的 JSON。
问题所在
LLM 默认会以自由的连续文本形式作答。但如果你想在代码中进一步处理这个答案——比如写入数据库,或传递给另一个函数——你就需要一种可靠的、机器可读的格式,而不是结构时好时坏的散文。
Structured outputs 的作用
Structured outputs 是一项 API 功能,它将模型的输出绑定到预先定义的 schema 上,通常是 JSON schema。与其寄希望于模型遵守某种格式,不如从技术上限制生成过程,使其只能产生符合 schema 的输出。
相关途径:tool use
在 Claude 中,类似可靠的结构化输出通常通过 tool use 实现:你定义一个带有固定 input schema 的"工具",模型会去填充这个 schema,而不是写自由文本。
用途
- 从文档中提取数据(姓名、金额、日期)用于后续处理
- agent 系统中的 function calling / tool use
- 构建可靠的 pipeline,不会因为一点点格式错误就崩溃
示例
不同于"客户叫张三,在5月3日下的订单"这样的表述,structured outputs 直接给出: {"name": "张三", "order_date": "2026-05-03"}
小测验
为什么 structured outputs 对代码 pipeline 很有用?
来源
- OpenAI-Doku: Structured Outputs ↗ platform.openai.com
- Claude-Doku: Tool Use ↗ docs.claude.com
- JSON Schema: Überblick ↗ json-schema.org