Endpoints suportados
| Endpoint | Descrição |
|---|---|
/v1/chat/completions | Requisições de chat completion |
/v1/embeddings | Geração de embeddings |
/v1/images/generations | Geração de imagens |
Ciclo de vida
Um lote passa pelos seguintes status:| Status | Descrição |
|---|---|
validating | O arquivo de entrada está sendo verificado quanto a erros de formato e conteúdo. |
failed | A validação falhou — o arquivo de entrada contém erros. Verifique batch.errors para detalhes. |
in_progress | As requisições estão sendo processadas. |
finalizing | Todas as requisições foram processadas e os arquivos de saída estão sendo gerados. |
completed | O lote foi concluído. Baixe os resultados de output_file_id. |
cancelling | Um cancelamento foi solicitado. Requisições em andamento estão sendo finalizadas. |
cancelled | O lote foi cancelado. Resultados parciais podem estar disponíveis. |
expired | O lote não foi concluído dentro da janela de 24 horas. |
Etapa 1 — Preparar o arquivo de entrada
Crie um arquivo JSONL onde cada linha é uma requisição. Cada linha possui quatro campos:| Campo | Tipo | Descrição |
|---|---|---|
custom_id | string | Seu identificador para esta requisição. Usado para associar entrada e saída. Deve ser único dentro do arquivo. |
method | string | "POST" — o único método suportado. |
url | string | O caminho do endpoint — deve corresponder ao endpoint que você declara ao criar o lote. |
body | object | O corpo da requisição — os mesmos parâmetros que você enviaria para o endpoint síncrono. |
Etapa 2 — Fazer upload do arquivo de entrada
Faça upload do arquivo JSONL usando a API de Files compurpose: "batch".
Etapa 3 — Criar o lote
Passe o ID do arquivo enviado, o endpoint de destino e a janela de conclusão.Etapa 4 — Verificar o status do lote
Consulte o lote periodicamente até que ele alcance um status terminal.Etapa 5 — Baixar os resultados
Quando o lote estivercompleted, baixe o arquivo de saída. Ele é um arquivo JSONL onde cada linha contém o custom_id que você forneceu, a resposta e qualquer erro.
response é null e error contém os detalhes:
error_file_id contendo apenas as entradas que falharam.
Cancelar um lote
Cancele um lote que ainda está em andamento. Requisições que já foram concluídas permanecem na saída.cancelling enquanto as requisições em andamento são finalizadas, e depois para cancelled.
Listar lotes
Recupere todos os lotes da conta atual, do mais recente ao mais antigo. Suporta paginação.after com um ID de lote para paginar os resultados.
Exemplo: embeddings em lote
O mesmo fluxo funciona para embeddings. Altere ourl em cada linha JSONL e o endpoint ao criar o lote.
Erros de validação
Se o arquivo de entrada tiver problemas de formatação, o lote passa imediatamente parafailed.
Causas comuns:
- JSON inválido — uma linha não é um JSON válido.
- Campos ausentes — uma linha está sem
custom_id,method,urloubody. - Método incorreto —
methoddeve ser"POST". - URL incompatível — o
urlem uma linha não corresponde aoendpointdeclarado ao criar o lote. custom_idduplicado — cadacustom_iddeve ser único dentro do arquivo.
batch.errors.data para as mensagens de erro específicas e números de linha.
Veja também
- Gerar uma resposta para o padrão síncrono de chat completions.
- Arquivos e vector stores para a API de Files usada para fazer upload de entradas de lote.