json_repair: 휴리스틱과 스키마 가이드를 사용하여 LLM 및 API의 잘못된 JSON을 복구하는 Python 라이브러리

json_repair: 휴리스틱과 스키마 가이드를 사용하여 LLM 및 API의 잘못된 JSON을 복구하는 Python 라이브러리

해결하는 문제

json_repair는 LLM, API 또는 로그로부터 데이터를 받을 때 자주 발생하는 잘못된 JSON 문자열을 처리하도록 설계되었습니다. 따옴표 누락, 잘못된 위치의 쉼표, 닫히지 않은 대괄호, 불필요한 텍스트와 같이 일반적인 구문 오류를 수정하여, json.loads()와 같은 표준 JSON 파서가 실패할 수 있는 문제를 해결합니다.

작동 방식

이 라이브러리는 BNF 정의를 기반으로 JSON을 파싱하고 오류를 수정하기 위해 휴리스틱을 적용합니다. 누락된 괄호를 자동으로 추가하고, 따옴표가 없는 문자열에 따옴표를 붙이며, 공백이나 줄 바꿈을 정리합니다. 기본적으로 표준 라이브러리의 json.loads()를 사용하여 엄격한 파싱을 먼저 시도하고, 실패할 경우에만 복구 파서를 사용합니다.

대상 사용자

LLM이 생성한 JSON에 의존하는 AI 애플리케이션을 구축하는 개발자뿐만 아니라, 로그나 사용자 입력과 같이 엄격한 JSON 준수가 보장되지 않는 신뢰할 수 없는 데이터 소스를 처리하는 개발자에게 적합합니다.

주요 특징

  • Drop-in Replacement: json.loads()json.load()를 직접 대체하여 사용할 수 있습니다.
  • Schema-Guided Repair: JSON Schema 또는 Pydantic v2 모델을 지원하여 누락된 값을 채우고, 스칼라 값을 강제 변환하며, 허용되지 않는 속성을 제거합니다.
  • Streaming Support: 스트리밍 출력 중에 부분적인 JSON을 안정적으로 유지하기 위한 stream_stable 모드를 포함합니다.
  • Strict Mode: 구조적 문제에 대해 복구하는 대신 오류를 발생시키는 strict=True 옵션을 제공합니다.
  • CLI Tool: JSON 파일을 복구하거나 stdin을 통해 데이터를 파이핑하는 명령줄 인터페이스를 제공합니다.

Sources