链载Ai

标题: LLM 返回的 JSON 有问题?试试 json-repair! [打印本页]

作者: 链载Ai    时间: 前天 18:11
标题: LLM 返回的 JSON 有问题?试试 json-repair!

和 LLM 打交道时,如果你了解一些 Prompt Engineering 的技巧,应该知道我们很多时候需要让模型进行结构化输出,结构化输出相比纯文本有很多优势,我们可以通过程序自然地解析、使用其中的数据。而在众多结构化格式中,JSON 是一个非常理想的选择。它带来了诸多好处,比如:

笔者最近在用 Python 开发 AI 相关服务时,就深刻体会到了让 LLM 返回 JSON 的便利。然而,实践中也遇到了一个令人头疼的问题:LLM 本质上是概率模型,即使你在 Prompt 中反复强调、明确要求(比如叮嘱它生成的 JSON 必须能json.loads成功解析),它有时还是会输出格式错误的 JSON。常见的翻车情况为:

这些问题不仅影响程序解析,还经常导致整个流程中断。起初,我以为只能通过不断调整 Prompt、增加 Retry 机制来曲线救国。但后来读到 Google 出的《Prompt Engineering 白皮书》时,注意到里面提到了一个工具 ——json-repair,用于自动修复 LLM 输出的非法 JSON!它的出现,大大降低了处理这类 Bad Case 的心智负担和代码复杂度。

于是我对这个库进行了深入研究,并整理了这篇文章,希望能帮到遇到同样困扰的你。

什么是json-repair

json-repair是一个修复无效 JSON 的 Python 库。

值得一提的是,这是一个相对较新的库。作者在 Readme 中明确提到,开发它的初衷正是为了解决 LLM 返回 JSON 格式不规范的问题——这与我们的需求不谋而合。

库的功能如下:

  1. 修复 JSON 中的语法错误






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5