Validador de saída JSON de LLM
Cole um JSON Schema e uma resposta de LLM para ver cada erro de validação com caminho JSON e linha. Blocos de código, vírgulas finais, aspas simples ou tipográficas, comentários e True/None do Python são corrigidos antes. A validação usa o Ajv 8.20.0 (draft-07, 2019-09, 2020-12) no navegador.
Como usar
- Cole o JSON Schema à esquerda. Um invólucro response_format da OpenAI com name e schema é aberto automaticamente.
- Cole a saída do modelo à direita, exatamente como veio, mesmo com bloco de código ou texto em volta.
- Leia o resultado. Cada erro mostra linha e coluna (clique para ir até lá), o caminho JSON e o que deu errado. Se a saída precisou de limpeza antes, as correções são listadas e o JSON limpo fica pronto para copiar.
Como é calculado
Primeiro a saída é lida como está. Se falhar, a ferramenta remove os problemas que os modelos mais produzem e tenta de novo: bloco de código Markdown, texto antes ou depois do JSON, marca BOM, aspas tipográficas, strings com aspas simples, comentários // e /* */, vírgulas finais e True, False e None do Python. O texto dentro das strings nunca é alterado.
O esquema é verificado com o Ajv 8.20.0, um validador de JSON Schema muito usado, carregado só quando você cola algo. Os rascunhos 2020-12 e 2019-09 são usados quando o campo $schema os cita; nos demais casos, o draft-07. Todos os erros são informados, não só o primeiro.
A palavra-chave format (email, date-time etc.) não é verificada, e links $ref remotos não são baixados.
Nada do que você cola é salvo, enviado ou escrito no endereço da página.
Erros mais comuns dos LLMs
| Problema | Exemplo | Corrigido automaticamente |
|---|---|---|
| Bloco de código | ```json { ... } ``` | Sim |
| Texto em volta do JSON | Sure! Here it is: { ... } | Sim |
| Vírgula final | {"a": 1,} | Sim |
| Aspas simples ou tipográficas | {'a': 'b'} | Sim |
| Campo obrigatório ausente | {"title": "x"} | Não, informado |
| Tipo errado | "rating": "5" | Não, informado |
| Campo a mais | "author": "x" com additionalProperties false | Não, informado |
Como obter saída válida desde o início
- Use o modo de saída estruturada do provedor sempre que puder. O json_schema estrito da OpenAI e as structured outputs da Anthropic restringem o modelo ao esquema.
- Os modos estritos exigem todas as propriedades em required e additionalProperties como false. Confira se o seu esquema segue essas regras.
- Ao ler a saída de um modelo sem modo estrito, mantenha uma etapa de limpeza como esta e valide antes de confiar nos dados.
Perguntas frequentes
Por que meu JSON não é lido se parece certo?
As causas mais comuns são uma vírgula depois do último item, um bloco de código em volta do JSON ou aspas tipográficas vindas de uma janela de chat. A ferramenta corrige isso e mostra o que mudou.
Quais rascunhos de JSON Schema são aceitos?
Draft-07 por padrão, além de 2019-09 e 2020-12 quando o campo $schema indica.
Meus dados são enviados?
Não. A leitura e a validação acontecem no seu navegador, e o texto não é salvo nem colocado na URL.
Posso colar um objeto response_format da OpenAI?
Sim. Um objeto com name e schema, ou com json_schema.schema, é aberto e o esquema interno é usado.