LLM이 만든 JSON 고치기

AI 응답은 JSON처럼 보여도 마크다운 펜스, 주석, Python 스타일 리터럴, JavaScript 객체 문법이 섞여 있을 때가 많습니다.

LLM JSON에서 흔한 문제

Markdown 코드 펜스, 주석, 작은따옴표, 따옴표 없는 키, 후행 콤마, Python의 True/False/None 값은 모두 잘 쓴 AI 응답도 엄격한 JSON 파싱에서 실패하게 만들 수 있습니다.

수리 흐름

응답을 JSON Fix에 붙여 넣고 Repair & Format을 실행한 뒤 Validate로 출력이 엄격한 JSON임을 확인하고, 그런 다음에야 코드나 API 요청에서 사용하세요.

프라이버시 메모

수리는 브라우저에서 로컬로 일어나므로, 내부 예시나 비공개 API payload가 포함된 프롬프트를 디버깅할 때 안심하고 쓸 수 있습니다.

도구와 레시피

브라우저 정리용으로는 LLM 출력을 JSON Fix에 붙여 넣고 Repair & Format을 누르세요 — 한 번에 markdown 코드 펜스(```json ... ```), 후행 콤마, Python 리터럴(True/False/None)을 제거합니다. Node에서는 npm 패키지 jsonrepair가 종속성 없이 같은 일을 합니다.

수리량을 줄이는 프롬프트

출력을 제약하세요: 「JSON 객체 하나만 응답하고, markdown 펜스나 설명은 넣지 마세요.」 모델이 지원한다면 JSON 모드 또는 response_format json_object를 사용하세요 — 그러면 구조적으로 펜스와 산문이 사라집니다. 프롬프트의 스키마(또는 function calling)는 발명된 키도 더 줄여 줍니다.

LLM에서 JSON 스트리밍

토큰이 스트리밍되는 동안 JSON은 정의상 유효하지 않습니다 — 아직 닫는 괄호가 없습니다. 응답이 끝날 때까지 버퍼링하고 한 번에 파싱하거나, jsonrepair, partial-json 같은 스트리밍 친화적 파서로 가장 유효한 접두 부분을 받아 점진적으로 렌더링하세요.

수리 대신 큰 소리로 실패해야 할 때

JSON이 금융 거래, 권한 변경, 파괴적 동작을 유발한다면 조용히 수리하지 마세요 — 응답을 거부하고 재시도하거나, 원본 출력을 검토에 노출하세요. 수리는 표시・디버깅・복구에 적합하고, 사람의 검토 없이 상태를 바꾸는 입력에는 절대 쓰지 마세요.