文档

结构化的 JSON AI 输出

停止解析纯文本。为您的 AI 响应定义严格的 JSON 模式。ModelRiver 负责跨所有供应商处理验证、合并和类型安全的交付。

为什么需要结构化输出?

原始的 AI 响应是不可预测的。不同的供应商返回不同的格式,即使是同一个模型在不同请求之间也可能存在差异。结构化输出(Structured outputs)通过在每个响应上强制执行 JSON 模式来解决这个问题,为您的应用程序提供可依赖的契约。

工作原理

  1. 定义模式(schema):在 ModelRiver 控制台下的 Structured Outputs 中创建一个 JSON 模式。
  2. 附加到工作流:将模式链接到一个或多个工作流。
  3. 自动验证:ModelRiver 根据您的模式验证每个 AI 响应,并合并结果,以便所需字段始终存在。
  4. 供应商故障转移:如果供应商停机或超时,ModelRiver 会依次尝试您配置的备用模型。如果所有尝试都失败,请求将返回错误。ModelRiver 绝不会编造响应。

创建结构化输出

  1. 从您的项目侧边栏导航至 Structured Outputs
  2. 点击 Create Structured Output
  3. 定义您的 JSON schema,包含所需的字段、类型和描述
  4. 添加符合该模式的示例数据(用于测试模式)
  5. 保存并附加到工作流

模式示例

JSON
1{
2 "type": "object",
3 "required": ["summary", "sentiment", "category"],
4 "properties": {
5 "summary": {
6 "type": "string",
7 "description": "A concise summary of the input"
8 },
9 "sentiment": {
10 "type": "string",
11 "enum": ["positive", "negative", "neutral"],
12 "description": "Overall sentiment classification"
13 },
14 "category": {
15 "type": "string",
16 "description": "Topic category of the content"
17 },
18 "confidence": {
19 "type": "number",
20 "minimum": 0,
21 "maximum": 1,
22 "description": "Model confidence score"
23 }
24 }
25}

最佳实践

  • 在模式中 包含示例 以指导供应商。ModelRiver 将其作为上下文传递以提高遵循度。
  • 从简单开始:从最少的模式开始,随着应用程序的成熟添加字段。
  • 对分类字段 使用枚举(enums) 以约束值并减少解析错误。
  • 监控验证情况:在可观测性(Observability)中检查验证失败率并相应调整模式。
  • 配置备用模型:添加来自其他供应商的备用模型,这样单个供应商故障不会导致请求失败。

所有供应商均失败时

如果主模型和所有备用模型都失败,ModelRiver 会返回错误,并在 meta.attempts 中列出每次尝试的供应商、模型和失败原因。它不会填充占位数据或示例数据,因此任何成功的响应都包含由模型生成的输出。

  • 在您的应用程序中处理该错误,例如稍后重试或显示“请重试”提示
  • 如果需要在不调用供应商的情况下获取示例数据,请使用测试模式

后续步骤