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
- undefinedmangiucugna/json_repair