A Batch API para Large Language Models permite o processamento assíncrono de inúmeras solicitações de inferência e é totalmente compatível com o padrão da OpenAI API.
A Batch API é uma solução econômica quando resultados de inferência imediatos não são necessários. Ela oferece limites de taxa mais altos do que chamadas online, garantindo que os resultados sejam entregues dentro de um prazo razoável de 24 horas.
Esta API é ideal para:
- Realizar avaliações e análise de dados.
- Classificar conjuntos de dados extensos.
- Gerar resumos de documentos em modo offline.
Modelos compatíveis:
Início rápido
1. Preparar arquivos de lote
A Batch API usa arquivos no formato .jsonl como entrada, com cada linha representando os detalhes de uma solicitação de inferência da API. Os endpoints disponíveis incluem /v1/chat/completions e /v1/completions.
Defina o parâmetro endpoint como /v1/chat/completions ou /v1/completions para compatibilidade com a OpenAI API.
Cada solicitação deve incluir um custom_id exclusivo para localizar os resultados de inferência no arquivo de saída após a conclusão do lote. Os parâmetros no campo body de cada linha são enviados como parâmetros reais da solicitação de inferência para o endpoint.
Todas as solicitações em um único arquivo JSONL de lote devem direcionar para o mesmo modelo. Não misture solicitações para modelos diferentes em um lote.
Abaixo está um exemplo de arquivo de entrada contendo 2 solicitações:
2. Fazer upload do arquivo de entrada do lote
Faça upload do arquivo de entrada do lote para garantir que ele possa ser referenciado com precisão ao criar um lote. Use a Files API para fazer upload do seu arquivo .jsonl e defina o purpose como batch. Observe que o arquivo será retido por 15 dias.
Exemplo de código
Python
Curl
Resposta de exemplo após o upload bem-sucedido do arquivo:
3. Criar um lote
Depois que o arquivo de entrada for carregado com sucesso, você poderá iniciar um lote usando o ID do objeto File carregado. A janela de conclusão é fixa em 24h e atualmente não é ajustável.
Exemplo de código
Python
Curl
Esta solicitação retornará um objeto Batch que inclui metadados sobre seu lote, conforme ilustrado no exemplo abaixo:
4. Verificar o status de um lote
Você pode verificar o status de um lote a qualquer momento para receber as informações mais recentes do lote.
Os valores de enumeração de status do objeto Batch são os seguintes:
| Status | Descrição |
|---|
| VALIDATING | O arquivo de entrada está sendo validado antes que o lote possa começar |
| PROGRESS | O lote está em andamento |
| COMPLETED | O processamento do lote foi concluído com sucesso |
| FAILED | O processamento do lote falhou |
| EXPIRED | O lote excedeu o prazo |
| CANCELLING | O lote está sendo cancelado |
| CANCELLED | O lote foi cancelado |
Exemplo de código
Python
Curl
5. Recuperar os resultados
Depois que a inferência em lote for concluída, você poderá baixar o arquivo de saída de resultados usando o campo output_file_id do objeto Batch.
O arquivo de saída de resultados será excluído 30 dias após a conclusão da inferência em lote, portanto, recupere-o prontamente por meio da interface.
Exemplo de código
Python
Curl
A resposta retorna o conteúdo bruto do arquivo. Para arquivos de saída em lote, cada linha contém uma resposta como esta:
Instruções
Limitações
- Cada lote pode conter até 50.000 solicitações.
- O tamanho máximo do arquivo de entrada por lote é de 100 MB.
Tratamento de erros
Erros encontrados durante o processamento em lote são registrados em um arquivo de erro separado, acessível por meio do campo error_file_id. Códigos de erro comuns incluem:
| Código de erro | Descrição | Solução |
|---|
| 400 | Formato de solicitação inválido | Verifique a sintaxe JSONL e os campos obrigatórios |
| 401 | Falha na autenticação | Verifique a chave de API |
| 404 | Lote não encontrado | Verifique o ID do lote |
| 429 | Limite de taxa excedido | Reduza a frequência das solicitações |
| 500 | Erro do servidor | Entre em contato conosco |
Expiração de lotes
Lotes não concluídos em 24 horas passarão para o estado EXPIRED. Solicitações não finalizadas serão canceladas, enquanto solicitações concluídas serão fornecidas por meio de um arquivo de saída. Você paga apenas pelos tokens consumidos pelas solicitações concluídas. O lote faz todos os esforços para ser concluído em 24 horas.
Todas as APIs de lote
- Criar lote
- Recuperar lote
- Cancelar lote
- Listar lotes
- Fazer upload de arquivo
- Listar arquivos
- Recuperar arquivo
- Excluir arquivo
- Recuperar conteúdo do arquivo