结构化的 JSON AI 输出

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

为什么需要结构化输出?

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

工作原理

  1. 定义模式(schema):在 ModelRiver 控制台下的 Structured Outputs 中创建一个 JSON 模式。
  2. 附加到工作流:将模式链接到一个或多个工作流。
  3. 自动验证:ModelRiver 根据您的模式验证每个 AI 响应,并合并结果,以便所需字段始终存在。
  4. 回退综合:如果供应商停机或超时,ModelRiver 可以综合出一个遵循模式的回退(fallback),通过 meta.offline_fallback = true 进行标记。

创建结构化输出

  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)中检查验证失败率并相应调整模式。
  • 利用回退(fallbacks)meta.offline_fallback 标志可帮助您的应用程序区分真实的和综合的响应。

离线回退行为

当所有配置的供应商均失败时,ModelRiver 可以利用您的示例数据返回遵循模式的响应:

  • 该响应标记有 meta.offline_fallback = true
  • 您的应用程序可以检测到此标记并显示适当的 UI(例如,“结果可能是近似值”)
  • 这可确保您的应用程序绝不会因缺少 AI 响应而崩溃

后续步骤