jsonquotefixer: 不正な LLM の JSON 構造出力をきれいに整えてくれる Python パッケージ
(github.com/abzb1)こんにちは!
AI モデルを活用していると、構造化された JSON 出力 がどうしても必要になる場面が多くあります。
私自身もいくつものプロジェクトを進める中で JSON 出力を活用する機会が頻繁にあり、毎回同じ不便さを感じていました。
LLM の構造化出力の不便な点は大きく 3 つありました。
-
コードブロック(
```json … ```)の処理
ほとんどの LLM は JSON を返すとき、3 つのバックティックとjsonキーワードで囲んだコードブロックを使います。
単純な正規表現でも処理できますが、毎回繰り返すのは面倒でした。パッケージレベルで 1 行で処理できればずっと便利です。 -
ネストした引用符の問題
JSON では文字列を二重引用符(")で囲む必要があります。ですが、文字列の内部にさらに引用符が現れる場合は\"のようなエスケープが必要です。
LLM はこの区別をしばしば見落として不正な JSON を返します。この問題を自動で補正してくれる機能が必要でした。 -
スマートクォート(Unicode の引用符)
LLM が生成した文章には、よく“ ”のようなスマートクォートが含まれます。
JSON 標準には適合しないため、これを通常の二重引用符(")へ一括変換できる必要があります。
調べてみると、Node.js ベースの ai-json-fixer プロジェクトはありましたが、Python エコシステムにはこれといったツールがありませんでした。
そこで作りました! (GPT 先生と一緒にです 笑)
pip で簡単にインストールして使えます。
pip install jsonquotefixer
ぜひ一度使って、どんどん厳しく批評してください(笑)
2件のコメント
ipynbでGitHub上のサンプルが見やすく表示されるといいですね
時間計算量は n(シーケンス長)です!