Endpoints suportados
| Endpoint | Descrição |
|---|---|
/v1/chat/completions | Solicitações de conclusão de chat |
/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 solicitações estão sendo processadas. |
finalizing | Todas as solicitações foram processadas e os arquivos de saída estão sendo gerados. |
completed | O lote foi finalizado. Baixe os resultados de output_file_id. |
cancelling | Um cancelamento foi solicitado. Solicitaçõ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. |
Passo 1 — Prepare o arquivo de entrada
Crie um arquivo JSONL onde cada linha é uma solicitação. Cada linha tem quatro campos:| Campo | Tipo | Descrição |
|---|---|---|
custom_id | string | Seu identificador para esta solicitação. Usado para relacionar 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 solicitação — os mesmos parâmetros que você enviaria para o endpoint síncrono. |
Passo 2 — Faça upload do arquivo de entrada
Envie o arquivo JSONL usando a API de Arquivos compurpose: "batch".
Passo 3 — Crie o lote
Informe o ID do arquivo enviado, o endpoint de destino e a janela de conclusão.Passo 4 — Verifique o status do lote
Faça polling do lote até que ele atinja um status final.Passo 5 — Baixe 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 será null e error conterá os detalhes:
error_file_id contendo apenas as entradas que falharam.
Cancelar um lote
Cancele um lote que ainda está em andamento. Solicitações que já foram concluídas permanecem na saída.cancelling enquanto as solicitações em andamento são finalizadas, depois para cancelled.
Listar lotes
Recupere todos os lotes da conta atual, do mais recente para o 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 do JSONL e o endpoint ao criar o lote.
Erros de validação
Se o arquivo de entrada tiver problemas de formatação, o lote muda parafailed imediatamente.
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 não corresponde — o
urlde uma linha não corresponde aoendpointdeclarado ao criar o lote. custom_idduplicado — cadacustom_iddeve ser único dentro do arquivo.
batch.errors.data para mensagens de erro específicas e números de linha.
Veja também
- Gerar uma resposta para o padrão síncrono de conclusões de chat.
- Arquivos e vetores para a API de Arquivos usada para enviar entradas em lote.