EN
返回档案库

档案库 · 产品创意 · 产品决策 · 2023

GPT-JSON 让 Python 类型提示成为 GPT 结构化输出的模式

2023年5月的一个 Python 封装,将 Pydantic 模型转化为提示模式,然后将 GPT 的回复解析为类型化对象,并自动修复损坏的 JSON。

GPT-JSON

创意是什么让类型提示成为输出契约:将 Pydantic 模式注入提示,将回复解析为类型化对象,并自动修复常见的 JSON 故障。小步快跑

当时的题目

In spring 2023, developers who wanted JSON back from GPT had to coax it out with prose instructions and then clean the result: replies arrived truncated, used Python-style True/False instead of true/false, or came wrapped in extra text. Existing libraries (the GPT-JSON README names jsonformer) did not fit the author's OpenAI-based deployment, so he wrote his own wrapper.

它是怎么成立的

在 2023 年初,从 GPT 获得结构化数据的标准方式是在提示中明确要求并以任何形式清理返回内容。回复可能在对象中间被截断,使用 Python 风格的 True 而不是 JSON 的 true,或者混入对话文本——每个基于 API 构建的开发人员都手动解决了相同的清理问题。

GPT-JSON 的做法是将模式作为类型而不是段落。用户将预期的答案定义为 Pydantic BaseModel,在提示中的任何位置放置一个 {json_schema} 关键字,库在运行时注入模型的模式。响应直接解析为类型化对象,通过轻量级转换重新闭合截断的 JSON 并纠正布尔值文字,以及对常见 API 失败的重试逻辑。

该项目于 2023 年 5 月 4 日作为 Show HN 发布,获得了 174 分和 72 条评论。开发人员将其重试循环与 pydantic-chatcompletion 和 jsonformer 进行比较,争论类型化 ChatGPT 方法,并分享模式模板技巧。仓库后来达到 734 个星标,然后所有者在 2025 年 6 月将其存档为只读,因为结构化输出工具成为 LLM 堆栈的标准层。

妙在哪

  • 模式已经在代码中:Pydantic 模型既是验证器又是提示,因此契约不能与程序实际期望的偏离。
  • 提示位置比注入本身更重要——{json_schema} 关键字可以放置在系统或用户提示中,使库灵活而无需额外配置。
  • 将损坏的输出视为可修复的案例,而不是失败,将截断和布尔值错误转变为调用者可以审计甚至拒绝的转换。
  • 以开源方式在 Hacker News 上发布,早期揭示了竞争方法,让作者针对生态系统定位库,而不是猜测。

做出来什么

The Show HN on 4 May 2023 drew 174 points and 72 comments, where developers swapped retry and schema tricks and compared pydantic-chatcompletion, jsonformer and Guardrails. The repository shows 734 stars, and the owner archived it as read-only on 12 June 2025.

案例页GPT-JSON — source and docs on GitHub

可以借走的

当 AI 模型的输出格式是真正的 API 时,将其编码在类型系统中而不是格式说明中:模式注入、验证和修复成为每次运行的代码,而不是提示传说。

后来

发布线程读起来像设计审查:评论者分享了 pydantic-chatcompletion 替代方案,建议用于大写布尔值的 YAML 解析,并争论重试验证错误是否明智。作者将库聚焦在 OpenAI GPT 模型上,明确区别于 jsonformer 的 Hugging Face 方法。到 2025 年 6 月所有者存档仓库时,结构化输出已成为 LLM 工具的标准层,GPT-JSON 填补的细分市场已被其封装的平台吸收。

资料来源

发现哪里写错了?告诉我们。

轮到你了

你刚读完一个点子。把你手上的题目说出来,看看谁接过同样的题。

免费账号 · 3 次免费提问 · 不用绑卡

相关案例