json_repair: 一個使用啟發式方法與架構引導來修復來自 LLMs 和 APIs 的格式錯誤 JSON 的 Python 函式庫

json_repair: 一個使用啟發式方法與架構引導來修復來自 LLMs 和 APIs 的格式錯誤 JSON 的 Python 函式庫

它解決了什麼問題

json_repair 旨在處理在接收來自 LLMs、 APIs 或日誌時經常出現的格式錯誤 JSON 字串。它能修復常見的語法錯誤——例如缺少引號、逗號位置錯誤、括號未閉合以及多餘的散文內容——這些錯誤通常會導致標準 JSON 解析器如 json.loads() 失敗。

運作原理

該函式庫根據 BNF 定義解析 JSON 並應用啟發式方法來修正錯誤。它會自動添加缺失的括號、為缺少引號的字串加上引號,並清理空白字元或換行符號。預設情況下,它會先嘗試使用標準函式庫的 json.loads() 進行嚴格解析,只有在失敗時才會退回到修復解析器。

對象是誰

開發 AI 應用程式的開發者,這些應用程式依賴 LLM 生成的 JSON,以及處理不穩定資料來源(如日誌或使用者輸入)且無法保證嚴格符合 JSON 規範的人員。

重點功能

  • 直接替換 (Drop-in Replacement): 可以直接作為 json.loads()json.load() 的替換方案。

  • 架構引導修復 (Schema-Guided Repair): 支援 JSON Schema 或 Pydantic v2 模型來填補缺失值、強制轉換純量值,並移除不允許的屬性。

  • 串流支援 (Streaming Support): 包含 stream_stable 模式,可在串流輸出期間保持部分 JSON 的穩定性。

  • 嚴格模式 (Strict Mode): 提供 strict=True 選項,在遇到結構性問題時拋出錯誤而非進行修復。

  • CLI 工具: 提供命令列介面,用於修復 JSON 檔案或透過 stdin 進行資料管線傳輸。

Sources