选择输出方式
在 prompt 中描述结构或放入 JSON Schema,可以引导 JSON Mode 的输出,但不等同于 API 层面的严格结构约束。需要严格结构约束时,请使用
json_schema 参数,而不只是将 Schema 写入 prompt。
JSON Schema:通过 API 约束输出结构
以下用法适用于step-5-preview、step-3.7-flash、step-3.5-flash 和 step-3.5-flash-2603。
将 response_format.type 设置为 json_schema,并在 response_format.json_schema 中填写:
name:Schema 名称。strict:设置为true,启用严格模式。schema:期望的 JSON 结构,包括属性、类型和必填字段。
step-5-preview 提取姓名和年龄。Schema 直接通过 API 参数传入,无需在 prompt 中重复。将 YOUR_STEP_API_KEY 替换为您的 API Key,在终端设置 STEPFUN_API_KEY 环境变量,再执行请求;$STEPFUN_API_KEY 表示读取该变量的值。以下命令适用于 Bash 或 Zsh,使用按量付费 API。
choices[0].message.content 是包含 JSON 的字符串,解析后的结果示例为:
required 指定两个字段都必须返回,通过 additionalProperties: false 禁止额外字段。结构约束不代表提取内容在事实或业务含义上一定正确,应用仍需进行业务校验。完整参数说明见 Chat Completions API。
JSON Mode:返回可解析的 JSON
使用方法
在使用 JSON Mode 时,您需要做三件事:- 在 System Prompt 中明确要求返回 JSON,并描述预期结构;也可以放入 JSON Schema 作为提示词引导,但这不提供严格的 Schema 约束。
- 请求时,设置 response_format 为
{ "type": "json_object" },从而来让大模型返回可解析的 JSON 结果。 - 解析大模型返回的结果,并验证是否符合预期。符合预期后即可使用在业务系统中对接。
参考代码
以使用大模型进行评论的情感分析为例子,您可以参考如下代码,让大模型返回 JSON 结果。可选:在 prompt 中使用 Schema 引导 JSON Mode
JSON Schema 可以描述输出字段、类型和必填项。在 JSON Mode 的 prompt 中加入 Schema,可以引导输出结构,但不提供严格约束。 以下 Schema 定义了一个包含url 和 notes 两个必填字段的对象:
response_format: {"type": "json_object"},可以引导模型按预期结构输出。以下仍是提示词示例,不是 API 的 json_schema 参数用法:
注意事项
- 两种方式都需要先检查请求是否成功,以及
finish_reason是否为stop。如果为length,输出可能因max_tokens限制而被截断,不能按完整 JSON 使用;可提高输出上限后重试。 - 对于请求失败、拒绝回答或没有可用
content的情况,请单独处理,不要直接作为业务 JSON 解析。 - 解析
choices[0].message.content后,仍需校验数据是否满足业务要求。使用 JSON Mode 时,还需自行检查字段、类型和必填项。 - JSON Mode 可以通过 prompt 中的输入输出示例改善结构遵循效果,但不应据此承诺严格符合 Schema。
- 如果通过代理或网关调用,请确认
response_format及其嵌套字段完整传递到 API 服务端;客户端请求中包含该字段,不代表中间链路一定保留了它。

