Skip to main content
A API de Batch permite enviar grupos de solicitações como um único trabalho processado de forma assíncrona. Isso é útil quando você precisa executar muitas solicitações e não precisa de resultados imediatos — por exemplo, executar avaliações, gerar embeddings para um grande conjunto de dados ou classificar conteúdo em massa. As solicitações em lote são executadas dentro de uma janela de conclusão de 24 horas e têm limites de taxa separados e mais altos do que chamadas de API síncronas.

Endpoints compatíveis

Todas as solicitações em um único lote devem ter como destino o mesmo endpoint.

Ciclo de vida

Um lote passa por estes status:

Etapa 1 — Prepare o arquivo de entrada

Crie um arquivo JSONL no qual cada linha seja uma solicitação. Cada linha tem quatro campos:
Um único lote pode conter até 10.000 solicitações.

Etapa 2 — Envie o arquivo de entrada

Envie o arquivo JSONL usando a API de Files com purpose: "batch".

Etapa 3 — Crie o lote

Informe o ID do arquivo enviado, o endpoint de destino e a janela de conclusão.
Você também pode anexar metadados para seu próprio acompanhamento:

Etapa 4 — Verifique o status do lote

Consulte o lote até que ele alcance um status terminal.
Aqui está um auxiliar de consulta que aguarda a conclusão do lote:

Etapa 5 — Baixe os resultados

Quando o lote estiver completed, baixe o arquivo de saída. Ele é um arquivo JSONL no qual cada linha contém o custom_id fornecido, a resposta e qualquer erro.
Cada linha no arquivo de saída tem esta estrutura:
Se uma solicitação falhar, response será null e error conterá os detalhes:
Se alguma solicitação falhar, o lote também fornecerá um error_file_id contendo apenas as entradas que falharam.

Cancele um lote

Cancele um lote que ainda esteja em andamento. As solicitações que já foram concluídas permanecem na saída.
O lote passa para cancelling enquanto as solicitações em andamento são concluídas e, então, para cancelled.

Liste os lotes

Recupere todos os lotes da conta atual, começando pelos mais recentes. Compatível com paginação.
Use o parâmetro after com um ID de lote para paginar pelos resultados.

Exemplo: embeddings em lote

O mesmo fluxo funciona para embeddings. Altere a url 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 passará para failed imediatamente. Causas comuns:
  • JSON inválido — uma linha não é um JSON válido.
  • Campos ausentes — uma linha não possui custom_id, method, url ou body.
  • Método incorretomethod deve ser "POST".
  • Incompatibilidade de URL — a url em uma linha não corresponde ao endpoint declarado ao criar o lote.
  • custom_id duplicado — cada custom_id deve ser único no arquivo.
Consulte batch.errors.data para ver as mensagens de erro e os números de linha específicos.

Veja também