为什么需要结构化输出?
原始的 AI 响应是不可预测的。不同的供应商返回不同的格式,即使是同一个模型在不同请求之间也可能存在差异。结构化输出(Structured outputs)通过在每个响应上强制执行 JSON 模式来解决这个问题,为您的应用程序提供可依赖的契约。
工作原理
- 定义模式(schema):在 ModelRiver 控制台下的 Structured Outputs 中创建一个 JSON 模式。
- 附加到工作流:将模式链接到一个或多个工作流。
- 自动验证:ModelRiver 根据您的模式验证每个 AI 响应,并合并结果,以便所需字段始终存在。
- 回退综合:如果供应商停机或超时,ModelRiver 可以综合出一个遵循模式的回退(fallback),通过
meta.offline_fallback = true进行标记。
创建结构化输出
- 从您的项目侧边栏导航至 Structured Outputs
- 点击 Create Structured Output
- 定义您的 JSON schema,包含所需的字段、类型和描述
- 添加符合该模式的示例数据(用于测试模式)
- 保存并附加到工作流
模式示例
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 响应而崩溃
后续步骤
- Type-safe AI Solution:在生产中为何以及如何使用结构化数据。
- Test mode:使用示例数据验证集成。
- Build a workflow:将结构化输出附加到工作流。
- API response formats:了解响应结构。