mangiucugna/json_repair

Repair malformed JSON from LLMs, APIs, logs, and user input in Python.

解決する課題

json_repairは、LLMの出力、API、ログ、またはユーザー入力から頻繁に発生する不正なJSON文字列を処理するために設計されています。引用符の欠落、カンマの位置ミス、閉じられていないブラケット、不要な文章など、通常の json.loads() のような標準的なJSONパーサーではエラーになる一般的な構文エラーを修正します。

仕組み

このライブラリはBNF定義に基づいてJSONを解析し、ヒューリスティックを適用して構造的な問題を修正します。不足している括弧を自動的に追加し、引用符のない文字列に引用符を付け、空白や改行をクリーンアップします。デフォルトでは、まず厳密な json.loads() チェックを試行し、失敗した場合は独自の修復パーサーにフォールバックしてデータを救出します。

対象者

非決定的なソースからの構造化データに依存するアプリケーションを構築している開発者、特に、わずかに無効なJSONを生成する可能性のあるLLMを統合している開発者に適しています。

特徴

  • そのまま置き換え可能: json.loads() および json.load() の直接的な代替として使用できます。
  • スキーマによる修復: JSON SchemaまたはPydantic v2モデルを使用して、欠落した値の補完、型の強制、許可されていないプロパティの削除をサポートします。
  • ストリーミング対応: データがストリーミングされている間に部分的なJSONを安定させる stream_stable モードが含まれています。
  • 厳格モード: 構造的な問題が発生した際に修復するのではなく、エラーを発生させる strict=True オプションを提供します。
  • CLIツール: JSONファイルを修復したり、stdin経由でデータをパイプしたりするためのコマンドラインインターフェースを提供します。

関連

  • プロジェクト
  • プロジェクト
  • Dispatch
  • プロジェクト
  • プロジェクト