·作者: AI Resource Hub Team
从 LLM 获取结构化输出:JSON、表格及更多
掌握使用函数调用和约束解码从大语言模型可靠提取 JSON、表格和类型化数据的技巧。
问题
LLM 擅长生成文本,但应用通常需要结构化数据——JSON 对象、数组、类型化值。获取可靠的结构化输出需要特定技术。
方法 1:提示词工程
要求模型以 JSON 格式回复:
- 在提示中指定确切 schema。
- 包含示例输入/输出对。
方法 2:函数调用/工具使用
主要 API 现在支持函数调用:
- 定义预期输出的 JSON schema。
- 模型被约束为输出匹配 schema。
方法 3:约束解码
Outlines 和 LMQL 等库强制模型产生有效输出:
- 定义 Pydantic 模型或 JSON schema。
- 解码过程逐 token 强制执行 schema。
方法 4:Instructor 库
Instructor 库用 Pydantic 验证包装任何 LLM API:
- 用 Pydantic 定义数据模型。
- Instructor 自动处理重试和验证。
最佳实践
- 始终对照 schema 验证输出。
- 对有限选项使用枚举类型。
- 包含重试逻辑。
- 保持 schema 简单。
开发JSON