封面图

架构图

适合读者

  • 表单抽取开发者
  • 需要把模型输出写入数据库的后端工程师

这篇文章解决什么问题?

模型输出混入解释文字、字段缺失或 JSON 解析失败。

核心概念解释

  • 结构化输出
  • JSON Schema
  • 字段类型
  • 解析校验
  • 错误修复

实战步骤

  1. 定义目标 schema
  2. 在提示词中给出字段约束
  3. 调用模型生成 JSON
  4. 用 Python 校验并给出重试策略

Python 代码示例

本文配套 demo 会生成在:

cd examples/llm-guides/009_json_schema_basics
python demo.py

示例代码遵循两个原则:

  • OPENAI_API_KEY 读取密钥,不在代码里写死。
  • 没有 API Key 时自动进入 mock 模式,方便先理解流程。

核心调用方式可以简化成下面这样:

import os

api_key = os.getenv("OPENAI_API_KEY")
if not api_key:
    print("未配置 OPENAI_API_KEY,进入 mock 模式。")
else:
    # 真实项目中在这里初始化 SDK 客户端并发起请求。
    print("已读取 OPENAI_API_KEY,可以调用模型。")

常见坑

  • 只跑通 Demo 就直接发布,缺少错误处理、日志和人工审核。
  • 把 API Key、真实路径、账号或业务数据写进文章和代码。
  • 没有区分 mock 示例和真实线上环境,导致读者复制后无法复现。
  • 引用 API 或框架能力时没有核对官方文档,版本变化后容易误导读者。

总结

  • 这篇文章围绕「大模型使用指南 09:如何让大模型稳定输出 JSON?」解决一个具体工程问题:模型输出混入解释文字、字段缺失或 JSON 解析失败。
  • 实践时优先保证可复现、可回滚、可人工审核,不要只追求一次性生成效果。
  • 涉及模型能力、API 参数和第三方框架时,发布前需要重新核对官方文档。

CSDN 标签

JSON、大模型、Python、数据抽取、结构化输出

公众号摘要

用一个字段抽取案例讲清结构化输出的基本套路,让模型结果能安全进入程序。

知乎标题变体

  • 为什么大模型总是输出不合法 JSON?
  • 如何让 LLM 输出可解析的数据?
  • JSON Schema 能解决哪些大模型落地问题?

参考资料与延伸阅读

  • OpenAI 官方文档:以你实际使用的模型、SDK 和账号权限为准。
  • Python 官方文档:环境变量、虚拟环境和异常处理部分。
  • 相关框架官方文档:LangChain、LlamaIndex、Haystack、向量数据库等按文章主题选择。