LLM JSON 출력 검증기
JSON Schema와 LLM 응답을 붙여 넣으면 모든 검증 오류를 JSON 경로와 줄 번호로 보여 줍니다. 코드펜스, 후행 쉼표, 작은따옴표·둥근 따옴표, 주석, 파이썬 True/None을 먼저 고칩니다. 검증은 브라우저에서 Ajv 8.20.0(draft-07, 2019-09, 2020-12)으로 합니다.
사용 방법
- 왼쪽에 JSON Schema를 붙여 넣습니다. name과 schema로 감싼 OpenAI response_format 객체는 알아서 풀어 씁니다.
- 오른쪽에 모델 출력을 받은 그대로 붙여 넣습니다. 코드펜스나 앞뒤 설명 문장이 붙어 있어도 됩니다.
- 결과를 확인합니다. 오류마다 줄·칸(누르면 그 위치로 이동), JSON 경로, 내용이 나옵니다. 먼저 정리해야 했다면 고친 항목이 표시되고 정리된 JSON을 복사할 수 있습니다.
계산 방법
출력을 먼저 그대로 해석합니다. 실패하면 모델이 자주 내는 문제를 지우고 다시 시도합니다: Markdown 코드펜스, JSON 앞뒤 문장, BOM, 둥근 따옴표, 작은따옴표 문자열, // 와 /* */ 주석, 후행 쉼표, 파이썬 True·False·None. 문자열 안의 글자는 바꾸지 않습니다.
스키마 검사는 널리 쓰이는 JSON Schema 검증기 Ajv 8.20.0으로 하며, 무언가를 붙여 넣을 때만 불러옵니다. $schema 필드가 2020-12나 2019-09를 가리키면 그 초안을, 아니면 draft-07을 씁니다. 첫 오류만이 아니라 모든 오류를 보고합니다.
format 키워드(email, date-time 등)는 검사하지 않고, 원격 $ref 링크는 가져오지 않습니다.
붙여 넣은 내용은 저장하지도, 어디로 보내지도, 주소에 남기지도 않습니다.
LLM이 자주 틀리는 것
| 문제 | 예 | 자동 수정 |
|---|---|---|
| 코드펜스 | ```json { ... } ``` | 예 |
| JSON 앞뒤 문장 | Sure! Here it is: { ... } | 예 |
| 후행 쉼표 | {"a": 1,} | 예 |
| 작은따옴표·둥근 따옴표 | {'a': 'b'} | 예 |
| 필수 필드 누락 | {"title": "x"} | 아니요, 보고 |
| 잘못된 타입 | "rating": "5" | 아니요, 보고 |
| 추가 필드 | additionalProperties false 인데 "author": "x" | 아니요, 보고 |
처음부터 올바른 출력을 받으려면
- 가능하면 제공사의 구조화 출력 모드를 쓰세요. OpenAI strict json_schema와 Anthropic structured outputs는 모델 출력을 스키마에 묶습니다.
- strict 모드는 모든 속성을 required에 넣고 additionalProperties를 false로 두어야 합니다. 스키마가 이 규칙을 따르는지 확인하세요.
- strict 모드 없이 모델 출력을 파싱한다면 여기 같은 정리 단계를 두고, 데이터를 믿기 전에 검증하세요.
자주 묻는 질문
멀쩡해 보이는 JSON이 왜 해석되지 않나요?
흔한 원인은 마지막 항목 뒤 쉼표, JSON을 감싼 코드펜스, 채팅 창에서 들어온 둥근 따옴표입니다. 이 도구가 고치고 무엇을 바꿨는지 알려 줍니다.
어떤 JSON Schema 초안을 지원하나요?
기본은 draft-07이고, $schema 필드에 적혀 있으면 2019-09와 2020-12도 씁니다.
내 데이터가 업로드되나요?
아닙니다. 해석과 검증은 브라우저 안에서 하며, 글은 저장되지도 URL에 들어가지도 않습니다.
OpenAI response_format 객체를 그대로 붙여 넣어도 되나요?
네. name과 schema가 있는 객체나 json_schema.schema가 있는 객체는 풀어서 안쪽 스키마를 씁니다.