~/tools / AI JSONL Checker
AI JSONL Checker — Verifique um JSONL de lote ou fine-tuning linha por linha
Verifique, linha por linha, um arquivo JSONL para a OpenAI Batch API, a Anthropic Message Batches API ou o fine-tuning da OpenAI. Encontre JSON inválido, valores de custom_id duplicados, endpoints e parâmetros não compatíveis e limites de tamanho antes de enviar. Nada sai do seu navegador.
Regras conferidas com a documentação em 2026-10-23.
Documentação: OpenAI Batch / Anthropic Message Batches / Fine-tuning da OpenAI
Não verificado: nomes de modelos, o conteúdo dos parâmetros, contagens de tokens e regras que a documentação não informa, como se todas as requisições de um mesmo lote da OpenAI precisam usar o mesmo endpoint.
Tudo roda no seu navegador. O arquivo não é enviado.
As APIs em lote e o fine-tuning recebem um arquivo JSONL, ou seja, um valor JSON em cada linha. Uma única linha inválida pode fazer o envio inteiro falhar, e o erro muitas vezes aponta para o arquivo, não para a linha. Esta ferramenta lê o texto que você cola e o verifica com o que a documentação diz sobre o formato escolhido: para o OpenAI Batch, um custom_id único, um endpoint listado, um único modelo por arquivo e nenhum streaming; para o Anthropic Message Batches, um custom_id de 1 a 64 letras, números, hífens e sublinhados e os parâmetros que um lote rejeita; e para o fine-tuning da OpenAI, um array messages em cada linha, pelo menos 10 linhas e um weight igual a 0 ou 1. Os resultados mostram o número da linha de cada problema, e as regras foram conferidas com a documentação na data exibida abaixo da ferramenta.
Casos de uso
- Verificar um arquivo de entrada de lote antes de enviá-lo, para que uma linha inválida não faça o lote inteiro falhar
- Encontrar valores de custom_id duplicados, ou uma requisição com stream definido como true, em um arquivo com milhares de linhas
- Verificar dados de fine-tuning em busca de linhas sem messages, sem resposta do assistant ou com um weight diferente de 0 ou 1
Como usar
- Escolha o formato: OpenAI Batch, Anthropic Message Batches ou fine-tuning da OpenAI.
- Cole o conteúdo do arquivo ou carregue o exemplo desse formato.
- Leia a lista de problemas com os números das linhas. Corrigir significa que a documentação diz que a linha será rejeitada ou é inválida, Verificar significa que vale a pena dar uma olhada, e Nota é apenas informativa. Corrija o arquivo e cole-o novamente.
FAQ
O que é JSONL?
JSON Lines: um arquivo de texto com um valor JSON completo em cada linha e sem vírgulas entre as linhas. A documentação de fine-tuning da OpenAI pede uma estrutura JSON completa em cada linha. Um documento JSON distribuído por várias linhas, ou um único array, não é JSONL.
A Anthropic Message Batches API aceita um arquivo JSONL?
Ela aceita uma lista de requisições, cada uma com um custom_id e um objeto params, no parâmetro requests da chamada de criação. Os resultados voltam como um arquivo .jsonl. Esta ferramenta trata cada linha como uma requisição e também aceita um array JSON ou um objeto com um array requests.
Quais limites ela verifica?
Para o OpenAI Batch: 50.000 requisições por lote, um arquivo de entrada de 200 MB e 50.000 entradas de embeddings em todo o lote. Para a Anthropic: 100.000 requisições ou 256 MB por lote. Para o fine-tuning da OpenAI: pelo menos 10 linhas. O tamanho exibido é o tamanho em UTF-8 do texto que você colou.
Por que ela diz que uma requisição com stream definido como true é um problema?
A documentação da OpenAI diz que o worker do Batch rejeita requisições que definem stream como true. A documentação da Anthropic lista stream: true, speed, fallbacks e max_tokens: 0 como parâmetros que retornam um erro de validação em um lote.
O que ela não verifica?
Nomes de modelos, o conteúdo dos parâmetros, contagens de tokens, se o endpoint é aceito pela sua conta e qualquer coisa que a documentação não informe. Por exemplo, ela não diz se todas as requisições de um mesmo lote da OpenAI precisam usar o mesmo endpoint. Um arquivo aprovado ainda pode falhar na API, então teste primeiro com um arquivo pequeno.
Meu arquivo é enviado para um servidor?
Não. A verificação roda no seu navegador, então o conteúdo não é enviado.