跳到内容
·作者: 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