JSON模式
JSON模式概述
JSON模式(JSON Mode)是LLM API提供的一种确保输出为合法JSON的机制。通过API参数设置,模型会保证输出可以被JSON解析器正确解析,大大简化了应用开发。
工作机制
API参数
在API请求中设置输出格式:
{
"model": "gpt-4",
"messages": [...],
"response_format": { "type": "json_object" }
}
生成保证
开启JSON模式后:
- 输出保证是合法的JSON字符串
- 不保证符合特定的Schema
- 可能返回任意JSON结构
Schema约束
更高级的JSON Schema模式:
- 定义字段名和类型
- 约束值的范围和格式
- 指定必填和可选字段
使用场景
API集成
LLM输出需要被下游系统处理:
- 数据库记录存储
- 第三方API调用
- 工作流系统集成
数据提取
从非结构化文本中提取结构化数据:
- 信息抽取
- 实体识别
- 关系提取
配置生成
生成系统配置或参数:
- 动态配置生成
- 参数推荐
- 自动化设置
实现细节
系统提示配合
在系统提示中定义JSON结构:
你是一个数据提取助手。请以JSON格式返回提取结果,包含:
- entities: 实体列表
- relationships: 关系列表
- summary: 摘要
错误处理
JSON模式不保证内容正确性:
- 解析验证JSON结构
- 检查字段完整性
- 验证字段类型
- 重试机制处理格式错误
嵌套结构
支持复杂的嵌套JSON:
- 数组和对象嵌套
- 多层数据结构
- 条件字段
与其他方式的对比
| 方式 | 格式保证 | Schema保证 | 灵活性 |
|---|---|---|---|
| JSON Mode | 合法JSON | 无 | 高 |
| JSON Schema | 合法+结构 | 有 | 中 |
| 函数调用 | 自动格式化 | 有 | 中 |
| 约束解码 | 100%正确 | 有 | 低 |
模型支持
- OpenAI:response_format参数
- Anthropic:Tool Use实现
- Google:JSON模式支持
- 开源模型:通过引导解码实现
最佳实践
- 明确定义期望的JSON结构
- 提供JSON示例帮助模型理解
- 实现Schema验证和错误重试
- 处理模型可能生成的意外结构
- 使用流式JSON解析提升体验
JSON模式是LLM结构化输出的基础能力,为LLM与程序系统的集成提供了可靠的格式保证。