API em Lote: Reduza o Desperdício de Largura de Banda e Melhore a Eficiência da API

API em Lote: Reduza o Desperdício de Largura de Banda e Melhore a Eficiência da API

Os desenvolvedores frequentemente enfrentam tempos de resposta lentos e altos custos de rede ao enviar milhares de chamadas de API separadas. A API em Lote resolve isso ao combinar várias solicitações independentes em uma única operação, reduzindo a latência, o uso de largura de banda e a sobrecarga de conexão.

Este artigo explica o que é a API em Lote, como ela difere das APIs padrão e como a API em Lote da Novita AI permite inferência assíncrona em grande escala por meio de entrada JSONL estruturada, manipulação eficiente de arquivos e rastreamento confiável de erros. Ele também descreve os principais fatores de eficiência, como custo, latência e vazão, e fornece um guia conciso de implementação e monitoramento.

[Experimente a Inferência em Lote com 50% de Desconto

Execute previsões em grande escala mais rápido e mais barato com os modelos suportados:
qwen/qwen3-vl-235b-a22b-instruct, openai/gpt-oss-120b, deepseek/deepseek-r1-0528, qwen/qwen3-4b-fp8.](https://novita.ai/docs/guides/llm-batch-api)

Experimente a Inferência em Lote com 50% de Desconto

Execute previsões em grande escala mais rápido e mais barato com os modelos suportados:
qwen/qwen3-vl-235b-a22b-instruct, openai/gpt-oss-120b, deepseek/deepseek-r1-0528, qwen/qwen3-4b-f

O que é a API em Lote?

API em Lote: Combina várias chamadas de API independentes (ex: GET, POST, PUT, DELETE) em uma única solicitação HTTP.
Estrutura de Resposta: O servidor retorna os resultados de todas as sub-solicitações em ordem, indicando sucesso ou falha para cada uma.

Diferença Principal entre API em Lote e API Padrão

Solicitações Normais

Client
 ├──► Request 1 (/user/1)
 │       └──► Server Response 1
 ├──► Request 2 (/user/2)
 │       └──► Server Response 2
 └──► Request 3 (/order)
         └──► Server Response 3

Solicitação em Lote

Client
 └──► Single Request (/batch)
          ├─ Sub-request 1: GET /user/1
          ├─ Sub-request 2: GET /user/2
          └─ Sub-request 3: POST /order
          ↓
       Server processes all
          ↓
       Combined Response:
          [Result1, Result2, Result3]

A API em Lote pode ajudar:

Reduzir a latência de rede ao enviar uma solicitação combinada em vez de várias.

Diminuir a sobrecarga de largura de banda e conexão, já que cabeçalhos e handshakes são compartilhados.

Melhorar o desempenho do cliente, especialmente em dispositivos móveis ou redes lentas.

Simplificar a lógica transacional, permitindo tratamento de erros unificado ou reversão.

Otimizar a vazão do API Gateway, evitando inundação de solicitações.

Casos de Uso Típicos da API em Lote

Cenário Descrição
1. Consultas de dados em massa Recupere vários usuários, produtos ou publicações de uma só vez para evitar solicitações repetidas.
2. Escrita ou atualização em massa Crie ou atualize vários registros em uma única operação (ex: upload em lote, atualização de inventário).
3. Otimização de desempenho front-end Reduza o número de chamadas HTTP de navegadores ou aplicativos móveis para tempos de carregamento mais rápidos.
4. Agregação de tarefas de backend Em sistemas de microsserviços, combine várias chamadas de API internas em uma única chamada externa.
5. Sincronização de dados Sincronize vários estados de recursos ou execute operações em lote (ex: marcação, exclusão).
6. Otimização de limite de taxa Diminua a carga do API Gateway e economize largura de banda ao consolidar solicitações.

Principais Fatores que Afetam a Eficiência da API em Lote

Quanto custo as APIs em Lote podem economizar em comparação com APIs em tempo real?

Análises de mercado (Growth-onomics) mostram reduções de custo de cerca de 20 a 45%, principalmente devido a menos viagens de ida e volta na rede, menor sobrecarga de conexão e processamento concentrado, embora a economia exata dependa da frequência de chamadas, tamanho do lote e design do sistema.

E a latência: as APIs em Lote realmente podem concluir as tarefas “em até 24 horas”?

As APIs em Lote geralmente são executadas de forma assíncrona com latência muito maior do que as APIs em tempo real; muitos sistemas executam tarefas de hora em hora ou diariamente, então “em até 24 horas” depende do SLA (Acordo de Nível de Serviço) e não é garantido.

O tamanho do lote ou do arquivo afeta a velocidade?

Sim. Lotes maiores (ex: mais linhas de JSONL) aumentam o tempo de transferência e análise quase linearmente; embora a vazão melhore, o tempo total de conclusão por lote aumenta.

Por que as APIs em Lote são melhores para cargas de trabalho de alto throughput?

Ao agregar milhares de solicitações em um único processo, as APIs em Lote reduzem a sobrecarga por chamada e permitem execução paralela ou reutilização de cache, geralmente melhorando a vazão em 17 a 92% em operações em grande escala, embora isso tenha como custo uma latência mais alta.

Como Usar a API em Lote?

A API em Lote da Novita é altamente compatível com a interface da OpenAI, suportando /v1/chat/completions e /v1/completions, para que o código existente possa ser reutilizado com alterações mínimas. Ela aceita arquivos de entrada .jsonl em que cada linha representa uma solicitação individual para o mesmo modelo, identificada por um custom_id exclusivo para facilitar o rastreamento. A saída também está no formato JSONL, tornando o pós-processamento em grande escala, a análise e a integração simples e eficientes.

Experimente o Serviço de API em Lote da Novita AI Agora!

1. Prepare o Seu Arquivo de Entrada de Lote

Crie um arquivo .jsonl, em que cada linha é uma solicitação de API no formato JSON.
Exemplo (batch_input.jsonl):

{"custom_id": "req-1", "body": {"model": "deepseek/deepseek-v3-0324", "messages": [{"role": "user", "content": "Summarize: batch API basics"}], "max_tokens": 200}}
{"custom_id": "req-2", "body": {"model": "deepseek/deepseek-v3-0324", "messages": [{"role": "system", "content": "You are concise."},{"role": "user", "content": "List 3 batch API use cases"}], "max_tokens": 150}}

Regras:

  • Uma solicitação por linha.
  • Todas as solicitações devem usar o mesmo modelo.
  • Cada linha deve incluir um custom_id exclusivo.

2. Faça Upload do Arquivo de Entrada e Crie um Lote

Use Python ou curl para fazer upload do arquivo e iniciar o trabalho de lote imediatamente.

Python

from openai import OpenAI

client = OpenAI(base_url="https://api.novita.ai/openai/v1", api_key="YOUR_API_KEY")

# Upload + create batch
uploaded = client.files.create(file=open("batch_input.jsonl", "rb"), purpose="batch")

batch = client.batches.create(
    input_file_id=uploaded.id,
    endpoint="/v1/chat/completions",
    completion_window="48h"
)

print("file_id:", uploaded.id)
print("batch_id:", batch.id)

curl

export API_KEY="YOUR_API_KEY"

# Upload file
upload_response=$(curl -s -X POST \
  -H "Authorization: Bearer ${API_KEY}" \
  -F 'file=@batch_input.jsonl' -F 'purpose=batch' \
  https://api.novita.ai/openai/v1/files)

# Extract file_id and start batch
file_id=$(echo $upload_response | jq -r '.id')

curl -X POST https://api.novita.ai/openai/v1/batches \
  -H "Authorization: Bearer ${API_KEY}" \
  -H "Content-Type: application/json" \
  -d "{\"input_file_id\": \"$file_id\", \"endpoint\": \"/v1/chat/completions\", \"completion_window\": \"48h\"}"

Verifique sua Chave de API

3. Verifique o Status do Lote

Você pode verificar o progresso a qualquer momento usando o ID do lote.

batch = client.batches.retrieve("batch_xxx")
print(batch.status)

Os status incluem:

  • VALIDATING – arquivo de entrada sendo verificado
  • PROGRESS – em execução
  • COMPLETED – concluído com sucesso
  • FAILED – falhou
  • EXPIRED – excedeu a janela de 48h

4. Recupere os Resultados

Depois de concluído, baixe o arquivo de resultados por meio do output_file_id:

output = client.files.content("file_xxx")
print(output.read().decode("utf-8"))

Cada linha na saída corresponde a uma entrada, correspondente ao custom_id.

Dicas:

suporta apenas deepseek/deepseek-r1-0528

Até 50 000 solicitações por lote

Arquivo de entrada ≤ 100 MB

Janela de conclusão fixa em 48 horas

Saída retida por 30 dias

Como as Solicitações com Falha Devem Ser Tratadas em uma API em Lote?

Erros encontrados durante o processamento em lote são registrados em um arquivo de erros separado, acessível por meio do campo error_file_id. Cada sub-solicitação com falha inclui um código de erro e uma descrição. Exemplos comuns:

Código de Erro Descrição Solução
400 Formato de solicitação inválido Verifique a sintaxe do 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 de solicitações
500 Erro no servidor Entre em contato com o provedor ou tente novamente mais tarde

Os desenvolvedores devem reprocessar apenas as entradas com falha usando uma fila de repetição ou um lote de acompanhamento menor, em vez de reenviar o arquivo original inteiro.

Quais Endpoints a Novita AI Disponibiliza para Operações de API em Lote?

Endpoint Propósito
Criar lote Enviar um novo trabalho de lote contendo várias solicitações.
Recuperar lote Obter o status ou os resultados de um lote específico por seu ID.
Cancelar lote Interromper um trabalho de lote em execução antes da conclusão.
Listar lotes Listar todos os trabalhos de lote enviados para a conta.
Fazer upload de arquivo Fazer upload de arquivos de dados de entrada (ex: JSONL).
Listar arquivos Visualizar todos os arquivos enviados.
Recuperar arquivo Obter metadados do arquivo por ID do arquivo.
Excluir arquivo Remover um arquivo enviado.
Recuperar conteúdo do arquivo Baixar o conteúdo real de um arquivo (ex: resultados ou log de erros).

A API em Lote consolida várias solicitações pequenas em um fluxo de trabalho eficiente. Ao usar a API em Lote da Novita AI, os desenvolvedores podem reduzir os custos de rede em até 45%, escalar a vazão para até 50 000 solicitações por lote e simplificar o tratamento de erros por meio de endpoints de registro e recuperação integrados. Embora sacrifique a velocidade em tempo real, ela oferece eficiência excepcional para cargas de trabalho de inferência em massa, sincronização e processamento de dados.

Novita AI é uma plataforma de nuvem de IA que oferece aos desenvolvedores uma maneira fácil de implantar modelos de IA usando nossa API simples, além de fornecer uma nuvem de GPU acessível e confiável para construção e escalonamento.

Leituras Recomendadas