Para cenários de inferência que não exigem respostas em tempo real, a inferência em lote processa grandes volumes de solicitações de dados de forma assíncrona com 50% do custo da inferência em tempo real. Sua API compatível com OpenAI é ideal para trabalhos em lote, como avaliação de modelos e rotulagem de dados.
Como funciona
Envie uma tarefa: faça upload de um arquivo JSONL contendo várias solicitações para criar uma tarefa de inferência em lote.
Processamento assíncrono: o sistema processa as tarefas em uma fila em segundo plano. Monitore o progresso e o status da tarefa no console ou pela API.
Baixe os resultados: após a conclusão da tarefa, o sistema gera um arquivo de resultados para as respostas bem-sucedidas e um arquivo de erros com detalhes sobre quaisquer falhas.
Escopo
China (Beijing)
Modelos suportados:
-
Modelos de geração de texto
Qwen-Max: qwen3.7-max, qwen3-max
Qwen-Plus: qwen3.7-plus, qwen3.6-plus, qwen3.5-plus, qwen-plus, qwen-plus-latest
Qwen-Flash: qwen3.5-flash, qwen-flash
Modelos recomendados: qwen-long, qwen-long-latest
Modelos de terceiros: deepseek-r1, deepseek-v3.2, deepseek-v3
-
Modelos multimodais
Compreensão de imagem e vídeo: qwen3.7-plus, qwen3.6-plus, qwen3.5-plus, qwen3.5-flash, qwen3-vl-plus, qwen3-vl-flash
Extração de texto: qwen-vl-ocr, qwen-vl-ocr-latest
Omni-modal: qwen3.5-omni-plus
Modelos de embedding de texto: text-embedding-v1, text-embedding-v2, text-embedding-v3, text-embedding-v4
No cenário de processamento em lote, o limite de tokens de contexto por solicitação é de 256 K para
qwen3.7-max,qwen3.7-plus,qwen3.6-plus,qwen3.5-plus,qwen3.5-flasheqwen3.5-omni-plus. O modeloqwen3.5-omni-plusnão suporta saída de voz.Alguns modelos suportam o modo de pensamento. Ativar esse modo gera
tokensde pensamento e aumenta os custos.Os modelos das séries
qwen3.7,qwen3.6eqwen3.5têm o modo de pensamento ativado por padrão. Se você usar um modelo de pensamento híbrido, defina explicitamente o parâmetroenable_thinking. Defina este parâmetro comotruepara ativar o modo oufalsepara desativá-lo.No corpo da solicitação JSONL,
enable_thinkingé um parâmetro de nível superior debodye deve estar no mesmo nível demodel. Não o coloque dentro deextra_body.
Singapore
Modelos suportados: qwen-max, qwen-plus, qwen-turbo.
Singapore
Modelos suportados: qwen-max, qwen-plus, qwen-flash, qwen-turbo.
China (Beijing)
Modelos suportados:
-
Modelos de geração de texto
Qwen-Max: qwen3.7-max, qwen3-max, qwen-max, qwen-max-latest
Qwen-Plus: qwen3.7-plus, qwen3.6-plus, qwen3.5-plus, qwen-plus, qwen-plus-latest
Qwen-Flash: qwen3.5-flash, qwen-flash
Modelos recomendados: qwen-long-latest
Modelos recomendados: qwq-plus
Modelos de terceiros: deepseek-r1, deepseek-v3.2, deepseek-v3
-
Modelos multimodais
Compreensão de imagem e vídeo: qwen3.7-plus, qwen3.6-plus, qwen3.5-plus, qwen3.5-flash, qwen3-vl-plus, qwen3-vl-flash, qwen-vl-max, qwen-vl-max-latest, qwen-vl-plus, qwen-vl-plus-latest
Extração de texto: qwen-vl-ocr
Omni-modal: qwen3.5-omni-plus
Modelos de embedding de texto: text-embedding-v4
No cenário de processamento em lote, o limite de tokens de contexto por solicitação é de 256 K para
qwen3.7-max,qwen3.7-plus,qwen3.6-plus,qwen3.5-plus,qwen3.5-flasheqwen3.5-omni-plus. O modeloqwen3.5-omni-plusnão suporta saída de voz.Alguns modelos suportam o modo de pensamento. Ativar esse modo gera
tokensde pensamento e aumenta os custos.Os modelos das séries
qwen3.7,qwen3.6eqwen3.5têm o modo de pensamento ativado por padrão. Se você usar um modelo de pensamento híbrido, defina explicitamente o parâmetroenable_thinking. Defina este parâmetro comotruepara ativar o modo oufalsepara desativá-lo.No corpo da solicitação JSONL,
enable_thinkingé um parâmetro de nível superior debodye deve estar no mesmo nível demodel. Não o coloque dentro deextra_body.
Usar inferência em lote
Etapa 1: Preparar o arquivo de entrada
Antes de criar uma tarefa, prepare um arquivo JSONL que atenda aos seguintes requisitos:
Formato: JSONL codificado em UTF-8 (um objeto JSON por linha).
-
Limites de escala: até 50.000 solicitações por arquivo e tamanho máximo de 500 MB.
Se seu conjunto de dados exceder esses limites, divida-o em vários arquivos e envie-os como tarefas separadas.
Limite por linha: cada objeto JSON pode ter até 6 MB e não deve exceder a janela de contexto do modelo.
Consistência: todas as solicitações no mesmo arquivo devem usar o mesmo modelo .
Identificador exclusivo: cada solicitação deve incluir um campo
custom_idexclusivo no arquivo para correspondência de resultados. O custom_id suporta no máximo 256 caracteres. Se esse limite for excedido, a validação da tarefa falhará. Para retornar um identificador mais longo, use um campo personalizado no parâmetrometadataao criar a tarefa. Para obter mais informações, consulte Usar metadados para retornar identificadores personalizados.
Cada objeto JSON deve seguir o seguinte esquema:
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
|
string |
Sim |
Identificador exclusivo da solicitação no arquivo. |
|
|
string |
Sim |
O método HTTP suportado é |
|
|
string |
Sim |
Apenas o endpoint de solicitação |
|
|
object |
Sim |
O corpo da solicitação segue o mesmo formato da API |
Arquivo de exemplo
Baixe o arquivo de exemplo test_model.jsonl. O conteúdo é o seguinte:
{"custom_id":"1","method":"POST","url":"/v1/chat/completions","body":{"model":"qwen-max","messages":[{"role":"system","content":"You are a helpful assistant."},{"role":"user","content":"Hello!"}]}}
{"custom_id":"2","method":"POST","url":"/v1/chat/completions","body":{"model":"qwen-max","messages":[{"role":"system","content":"You are a helpful assistant."},{"role":"user","content":"What is 2+2?"}]}}
Configure o modo de pensamento na inferência em lote
Alguns modelos, como qwen3.7-plus, qwen3.7-max e as séries qwen3.6 e qwen3.5, têm o modo de pensamento ativado por padrão, o que gera tokens de pensamento adicionais. Para configurar o modo de pensamento na inferência em lote, defina o parâmetro enable_thinking no mesmo nível do parâmetro model dentro do body de cada solicitação. Use o parâmetro opcional thinking_budget para definir um limite superior no número de tokens de pensamento.
Os parâmetros enable_thinking e thinking_budget devem estar diretamente no nível superior do body, no mesmo nível de model. Não os coloque em extra_body. O parâmetro extra_body é um mecanismo para passar parâmetros não padrão com o SDK Python da OpenAI; ele é válido apenas para chamadas de inferência em tempo real e não se aplica a arquivos de inferência em lote.
Exemplo: Desativar o modo de pensamento
{"custom_id":"request-1","method":"POST","url":"/v1/chat/completions","body":{"model":"qwen3.5-plus","enable_thinking":false,"messages":[{"role":"user","content":"Hello"}]}}
Exemplo: Ative o modo de pensamento e limitar o orçamento de tokens de pensamento
{"custom_id":"request-2","method":"POST","url":"/v1/chat/completions","body":{"model":"qwen3.5-plus","enable_thinking":true,"thinking_budget":50,"messages":[{"role":"user","content":"Please analyze the following question"}]}}
Etapa 2: Crie uma tarefa de inferência em lote
Acesse a página Batch Inference, clique em Create Batch.
-
Na caixa de diálogo exibida, insira um Task Name e uma Description, defina o Maximum Waiting Time (de 1 a 14 dias) e faça upload do arquivo JSONL.
Clique em Download Sample File para obter o modelo.

Ao terminar, clique em Confirm.
Etapa 3: Monitorar e gerencie tarefas
-
Visualize:
Na página de lista de tarefas, visualize o progresso da tarefa (solicitações processadas/total de solicitações) e o Status.
Pesquise pelo nome ou ID da tarefa ou filtre por workspace para localizar rapidamente uma tarefa específica.

-
Gerencie:
Cancelar: cancele tarefas no estado Executing na coluna Actions.
Solucionar problemas: para uma tarefa com falha, passe o mouse sobre o status para visualizar um resumo do erro ou baixe o arquivo de erros para obter detalhes.

Etapa 4: Baixe resultados
As tarefas são excluídas automaticamente 30 dias após a conclusão. Baixe seus resultados prontamente.
Quando a tarefa for concluída, clique em View Results para baixar o arquivo de saída: 
Arquivo de resultados: registra todas as solicitações bem-sucedidas e seus resultados de
response.Arquivo de erros (se houver): registra todas as solicitações com falha e seus detalhes de
error.
Ambos os arquivos contêm um campo custom_id, usado para corresponder aos dados de entrada originais, associar resultados ou localizar erros.
Etapa 5: Visualize estatísticas de uso (opcional)
Acesse a página Model Monitoring, filtre e visualize as estatísticas de uso para inferência em lote.
-
Visualize visão geral dos dados: selecione um Time Range (até 30 dias), defina o Inference Type como Batches e visualize o seguinte:
Dados de monitoramento: estatísticas resumidas para todos os modelos no período selecionado, como total de chamadas e falhas.
Lista de modelos: dados detalhados de cada modelo, como total de chamadas, taxa de falha e duração média da chamada.

Para visualizar dados de inferência com mais de 30 dias, acesse a página Bills.
Visualize detalhes do modelo: em Models, clique em Monitor na coluna Actions do modelo desejado para visualizar as Call Statistics, como número e volume de chamadas.

Os dados de chamadas para inferência em lote são registrados com base no horário de conclusão da tarefa. Para tarefas em execução, as informações de chamada só podem ser consultadas após a conclusão da tarefa.
Os dados de monitoramento podem ter um atraso de uma a duas horas.
Usar metadados para retornar identificadores personalizados
O campo custom_id suporta até 256 caracteres. Se você precisar retornar um identificador mais longo no arquivo de resultados, use um campo personalizado em metadata.
Campos de metadados
O parâmetro metadata é opcional na criação de uma tarefa em lote. Ele suporta os seguintes campos:
ds_name: nome da tarefa. Este nome aparece na coluna Task Name no console.ds_description: descrição da tarefa. Esta descrição aparece na coluna Task Description no console.Campos personalizados: além dos campos oficiais, o objeto
metadatatambém aceita quaisquer campos personalizados, e seus valores não estão limitados a 256 caracteres. Ao consultar os detalhes da tarefa, todos os campos personalizados são retornados integralmente.
Exemplo de código
O exemplo a seguir mostra como usar um campo personalizado em metadata para retornar um identificador com mais de 256 caracteres:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
batch = client.batches.create(
input_file_id="file-batch-xxxxxxxxxxxxxxxxxxxx",
endpoint="/v1/chat/completions",
completion_window="24h",
metadata={
"ds_name": "my_batch_task",
"ds_description": "A description for my batch inference task",
"my_custom_field": "The value of this field can exceed 256 characters and is used to pass back longer identifier information..."
}
)
print(batch)
Após criar uma tarefa com êxito, chame a operação GET /v1/batches/{batch_id} para recuperar as informações completas de metadata, que incluem todos os campos personalizados e seu conteúdo completo.
Referência da API
Em ambiente de produção, use a API compatível com OpenAI para automatizar a criação e o gerenciamento de tarefas em lote. O fluxo de trabalho principal é o seguinte:
-
Chame
POST /v1/filespara fazer upload de um arquivo. Registre o ID do arquivo retornado. Para criar uma tarefa, informe o ID do arquivo , chame
POST /v1/batchese registre obatch_idretornado.Consultar status usando o
batch_idpara consultarGET /v1/batches/{batch_id}. Quando ostatusmudar paracompleted, registre ooutput_file_ide interrompa a consulta.Para baixar o arquivo de resultados, use o
output_file_idpara chamarGET /v1/files/{output_file_id}/content.
Para definições completas da API Batch e exemplos de código, consulte Compatível com OpenAI - Batch (entrada de arquivo).
Ciclo de vida da tarefa
|
Status |
Descrição |
|
validating |
O sistema está validando o formato do arquivo (especificação JSONL) e o formato da API de cada solicitação. |
|
in_progress |
O sistema validou o arquivo e começou a processar as solicitações de inferência. |
|
finalizing |
Todas as solicitações foram processadas e o sistema está gravando os resultados nos arquivos de saída. |
|
completed |
Os arquivos de resultados e de erros foram gerados e estão disponíveis para download. |
|
failed |
A tarefa falhou durante o estágio |
|
expired |
O tempo de execução da tarefa excedeu o tempo máximo de espera definido na criação e o sistema a encerrou. Ao criar uma nova tarefa, considere definir um tempo de espera maior. |
|
cancelled |
O usuário cancelou a tarefa. Quaisquer solicitações não processadas são encerradas. |
Faturamento
Preços: para todas as solicitações bem-sucedidas, os tokens de entrada e saída custam 50% do preço de inferência em tempo real do modelo correspondente. Para obter detalhes, consulte Modelos e preços.
-
Escopo de faturamento:
A cobrança ocorre apenas para solicitações executadas com êxito em uma tarefa.
Falhas na análise de arquivos, na execução de tarefas ou erros de solicitação no nível da linha não geram cobranças.
Para tarefas canceladas, quaisquer solicitações concluídas com êxito antes do cancelamento são cobradas normalmente.
A inferência em lote é um item faturável separado e suporta o Plano de Economia Universal de IA. No entanto, não é elegível para outras promoções, como planos pré-pagos (Savings Plans) e cotas gratuitas para novos usuários, nem para recursos como cache de contexto.
Alguns modelos, como qwen3.7-plus, qwen3.7-max e as séries qwen3.6 e qwen3.5, têm o modo de pensamento ativado por padrão. Isso gera tokens de pensamento adicionais, cobrados pelo preço de token de saída, o que aumenta os custos. Para controlar despesas, defina o parâmetro
enable_thinkingconforme a complexidade da tarefa. Para obter detalhes, consulte Pensamento profundo.
Perguntas frequentes
-
Preciso comprar ou ativar algo extra para usar a inferência em lote?
Não. O recurso fica disponível após a ativação do Model Studio. As cobranças ocorrem com base no pagamento conforme o uso e são deduzidas do saldo da sua conta.
-
Por que minha tarefa falhou imediatamente após o envio (o status mudou para failed)?
Isso geralmente indica um erro no nível do arquivo, e nenhuma solicitação de inferência foi executada. Verifique os itens a seguir nesta ordem:
Formato do arquivo: verifique se o arquivo usa o formato JSONL estrito, com um objeto JSON completo por linha.
Escala do arquivo: garanta que o tamanho do arquivo e o número de linhas não excedam os limites. Para obter detalhes, consulte Etapa 1: Preparar o arquivo de entrada.
Consistência do modelo: verifique se o campo
body.modelé idêntico em todas as solicitações do arquivo e se o modelo usado é suportado na região atual.
-
Quanto tempo leva para processar uma tarefa?
O tempo de processamento depende da carga do sistema no momento do envio da tarefa. Durante períodos de pico, as tarefas podem entrar em fila. No entanto, um resultado (sucesso ou falha) é sempre retornado dentro do tempo máximo de espera especificado.
Códigos de erro
Se uma chamada falhar e retornar uma mensagem de erro, consulte Códigos de erro.