O Alibaba Cloud Model Studio oferece uma API de Arquivo em Lote compatível com a OpenAI. Envie solicitações em massa por meio de arquivos. O sistema as processa de forma assíncrona e retorna os resultados quando todas as solicitações são concluídas ou quando o tempo máximo de espera é atingido. Os custos correspondem a apenas 50% das chamadas em tempo real. Essa abordagem é ideal para análise de dados, avaliação de modelos e outras cargas de trabalho em grande escala nas quais a latência não é crítica.
Para usar o console, consulte o guia do console.
Fluxo de trabalho
Pré-requisitos
É possível chamar a API de Arquivo em Lote por meio do SDK da OpenAI (Python, Node.js) ou da API HTTP.
Obter uma chave de API: Obtenha e configure sua chave de API do Model Studio como uma variável de ambiente
Instalar o SDK (opcional): Instale o SDK da OpenAI caso pretenda utilizá-lo.
-
Endpoints de serviço
China continental:
https://dashscope.aliyuncs.com/compatible-mode/v1Internacional:
https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1
O Model Studio lançou domínios específicos de workspace para as regiões de Singapura. Os novos domínios dedicados oferecem desempenho superior e maior estabilidade para solicitações de inferência. Recomendamos a migração para os novos domínios:
Singapura: de
https://dashscope-intl.aliyuncs.comparahttps://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com
{WorkspaceId} corresponde ao ID do seu workspace, que pode ser encontrado na página Workspace Details no console do Model Studio. O domínio existente permanece totalmente funcional.
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 número máximo 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 raciocínio. Ativar esse modo gera
tokensde raciocínio e aumenta os custos.As séries de modelos
qwen3.7,qwen3.6eqwen3.5têm o modo de raciocínio ativado por padrão. Ao utilizar um modelo de raciocínio 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 número máximo 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 raciocínio. Ativar esse modo gera
tokensde raciocínio e aumenta os custos.As séries de modelos
qwen3.7,qwen3.6eqwen3.5têm o modo de raciocínio ativado por padrão. Ao utilizar um modelo de raciocínio 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.
Primeiros passos
Antes de processar tarefas formais, faça testes com o batch-test-model. Esse modelo de teste ignora a inferência e retorna uma resposta de sucesso fixa, permitindo que você verifique sua cadeia de chamadas de API e o formato dos dados.
Limitações do batch-test-model:
Seu arquivo de teste deve atender aos Requisitos do arquivo de entrada. Tamanho máximo: 1 MB. Máximo de linhas: 100.
Limite de simultaneidade: Até 2 tarefas paralelas.
Custo: O modelo de teste não gera taxas de inferência de modelo.
Etapa 1: Preparar o arquivo de entrada
Prepare um arquivo chamado test_model.jsonl com o seguinte conteúdo:
{"custom_id":"1","method":"POST","url":"/v1/chat/ds-test","body":{"model":"batch-test-model","messages":[{"role":"system","content":"You are a helpful assistant."},{"role":"user","content":"Hello! How can I help you?"}]}}
{"custom_id":"2","method":"POST","url":"/v1/chat/ds-test","body":{"model":"batch-test-model","messages":[{"role":"system","content":"You are a helpful assistant."},{"role":"user","content":"What is 2+2?"}]}}
Modelos multimodais (por exemplo, qwen-vl-plus) suportam URLs de arquivos e entradas codificadas em Base64:
{"custom_id":"image-url","method":"POST","url":"/v1/chat/completions","body":{"model":"qwen-vl-plus","messages":[{"role":"user","content":[{"type":"image_url","image_url":{"url":"https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"}},{"type":"text","text":"Describe this image."}]}]}}
{"custom_id":"image-base64","method":"POST","url":"/v1/chat/completions","body":{"model":"qwen-vl-plus","messages":[{"role":"user","content":[{"type":"image_url","image_url":{"url":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEA8ADwAAD..."}},{"type":"text","text":"Describe this image."}]}]}}
Etapa 2: Executar o código
Selecione o trecho de código correspondente à sua linguagem de programação. Salve-o no mesmo diretório do seu arquivo de entrada e execute-o. O código gerencia todo o fluxo de trabalho: upload, criação da tarefa, consulta de status e download dos resultados.
Para personalizar o caminho do arquivo ou outros parâmetros, modifique o código conforme necessário.
Reutilizar um ID de arquivo existente: O ID retornado após o upload de um arquivo (por exemplo, file-batch-xxx) pode ser reutilizado. Se o conteúdo de entrada permanecer o mesmo, pule o novo upload e crie diretamente uma tarefa com o ID existente:
batch = client.batches.create(
input_file_id="file-batch-xxx", # Reuse existing file ID, no need to re-upload
endpoint="/v1/chat/completions",
completion_window="24h"
)
É possível recuperar IDs de arquivos históricos por meio da API client.files.list(purpose="batch") para consultar os IDs de arquivos Batch enviados anteriormente.
Etapa 3: Verificar os resultados do teste
Após a conclusão bem-sucedida da tarefa, o arquivo de resultado result.jsonl contém a resposta fixa {"content":"This is a test result."}:
{"id":"a2b1ae25-21f4-4d9a-8634-99a29926486c","custom_id":"1","response":{"status_code":200,"request_id":"a2b1ae25-21f4-4d9a-8634-99a29926486c","body":{"created":1743562621,"usage":{"completion_tokens":6,"prompt_tokens":20,"total_tokens":26},"model":"batch-test-model","id":"chatcmpl-bca7295b-67c3-4b1f-8239-d78323bb669f","choices":[{"finish_reason":"stop","index":0,"message":{"content":"This is a test result."}}],"object":"chat.completion"}},"error":null}
{"id":"39b74f09-a902-434f-b9ea-2aaaeebc59e0","custom_id":"2","response":{"status_code":200,"request_id":"39b74f09-a902-434f-b9ea-2aaaeebc59e0","body":{"created":1743562621,"usage":{"completion_tokens":6,"prompt_tokens":20,"total_tokens":26},"model":"batch-test-model","id":"chatcmpl-1e32a8ba-2b69-4dc4-be42-e2897eac9e84","choices":[{"finish_reason":"stop","index":0,"message":{"content":"This is a test result."}}],"object":"chat.completion"}},"error":null}
Executar uma tarefa formal
Requisitos do arquivo de entrada
Formato: JSONL codificado em UTF-8 (um objeto JSON independente por linha).
Limites de tamanho: Máximo de 50.000 solicitações por arquivo, com limite de 500 MB.
Limite por linha: Cada objeto JSON não deve exceder 6 MB e precisa caber na janela de contexto do modelo.
Consistência: Todas as solicitações no mesmo arquivo devem usar o mesmo modelo e o mesmo modo de raciocínio (se aplicável).
Identificador único: Cada solicitação deve incluir um campo custom_id exclusivo dentro do arquivo. Esse campo serve para correlacionar solicitações aos respectivos resultados.
Cenário 1: Chat de texto
Exemplo de conteúdo do arquivo:
{"custom_id":"1","method":"POST","url":"/v1/chat/completions","body":{"model":"qwen-plus","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-plus","messages":[{"role":"system","content":"You are a helpful assistant."},{"role":"user","content":"What is 2+2?"}]}}
Cenário 2: Compreensão de imagens e vídeos
Modelos multimodais (como qwen-vl-plus) aceitam URLs de arquivos e entradas codificadas em Base64.
{"custom_id":"image-url","method":"POST","url":"/v1/chat/completions","body":{"model":"qwen-vl-plus","messages":[{"role":"user","content":[{"type":"image_url","image_url":{"url":"https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"}},{"type":"text","text":"Describe this image."}]}]}}
{"custom_id":"image-base64","method":"POST","url":"/v1/chat/completions","body":{"model":"qwen-vl-plus","messages":[{"role":"user","content":[{"type":"image_url","image_url":{"url":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEA8ADwAAD..."}},{"type":"text","text":"Describe this image."}]}]}}
{"custom_id":"video-url","method":"POST","url":"/v1/chat/completions","body":{"model":"qwen-vl-plus","messages":[{"role":"user","content":[{"type":"video","video":"https://example.com/video.mp4"},{"type":"text","text":"Describe this video."}]}]}}
{"custom_id":"video-base64","method":"POST","url":"/v1/chat/completions","body":{"model":"qwen-vl-plus","messages":[{"role":"user","content":[{"type":"video","video":["data:image/jpeg;base64,{frame1}","data:image/jpeg;base64,{frame2}","data:image/jpeg;base64,{frame3}"]},{"type":"text","text":"Describe this video."}]}]}}
{"custom_id":"multi-image-url","method":"POST","url":"/v1/chat/completions","body":{"model":"qwen-vl-plus","messages":[{"role":"user","content":[{"type":"image_url","image_url":{"url":"https://example.com/image1.jpg"}},{"type":"image_url","image_url":{"url":"https://example.com/image2.jpg"}},{"type":"text","text":"Compare these two images."}]}]}}
{"custom_id":"multi-image-base64","method":"POST","url":"/v1/chat/completions","body":{"model":"qwen-vl-plus","messages":[{"role":"user","content":[{"type":"image_url","image_url":{"url":"data:image/jpeg;base64,{image1_base64}"}},{"type":"image_url","image_url":{"url":"data:image/jpeg;base64,{image2_base64}"}},{"type":"text","text":"Compare these two images."}]}]}}
As strings Base64 nos exemplos acima estão truncadas. Gere as codificações completas usando o código Python abaixo.
Para detalhes completos (incluindo limites de arquivos, tipos MIME e métodos de codificação), consulte Passar arquivos locais (codificação Base64 ou caminhos de arquivo).
1. Modificar o arquivo de entrada
-
No arquivo
test_model.jsonl, defina o parâmetromodelpara o modelo desejado e configure o campourl:Tipo de modelo
url
Modelos de geração de texto/multimodais
/v1/chat/completionsModelos de embedding de texto
/v1/embeddings Como alternativa, utilize a "Ferramenta de geração de lotes JSONL" acima para criar um novo arquivo destinado a tarefas formais. Verifique se os campos
modeleurlestão corretos.
2. Ajustar o código de introdução
Altere o caminho do arquivo de entrada para o nome do seu arquivo.
Configure o parâmetro endpoint para corresponder ao campo url no seu arquivo de entrada.
3. Executar o código e aguardar os resultados
Quando a tarefa for concluída, os resultados das solicitações bem-sucedidas serão salvos no arquivo local result.jsonl. Caso alguma solicitação falhe, os detalhes do erro serão gravados no arquivo error.jsonl.
-
Resultados bem-sucedidos (
output_file_id): Cada linha corresponde a uma solicitação bem-sucedida e inclui ocustom_ide aresponse.{"id":"3a5c39d5-3981-4e4c-97f2-e0e821893f03","custom_id":"req-001","response":{"status_code":200,"request_id":"3a5c39d5-3981-4e4c-97f2-e0e821893f03","body":{"created":1768306034,"usage":{"completion_tokens":654,"prompt_tokens":14,"total_tokens":668},"model":"qwen-plus","id":"chatcmpl-3a5c39d5-3981-4e4c-97f2-e0e821893f03","choices":[{"finish_reason":"stop","index":0,"message":{"role":"assistant","content":"Hello! Hangzhou West Lake is a famous scenic spot in China, located in the western part of Hangzhou City, Zhejiang Province, hence the name \"West Lake\". It is one of China's top ten scenic spots and a World Cultural Heritage site (listed by UNESCO in 2011). It is renowned worldwide for its beautiful natural scenery and profound cultural heritage.\n\n### I. Natural Landscape\nWest Lake is surrounded by mountains on three sides and borders the city on one side, covering an area of approximately 6.39 square kilometers, shaped like a ruyi scepter with rippling blue waters. The lake is naturally or artificially divided into multiple water areas by Solitary Hill, Bai Causeway, Su Causeway, and Yanggong Causeway, forming a layout of \"one mountain, two pagodas, three islands, and three causeways\".\n\nMain attractions include the following:\n- **Spring Dawn at Su Causeway**: During the Northern Song Dynasty, the great literary figure Su Dongpo, while serving as the prefect of Hangzhou, led the dredging of West Lake and used the excavated silt to build a causeway, later named \"Su Causeway\". In spring, peach blossoms and willows create a picturesque scene.\n- **Lingering Snow on Broken Bridge**: Located at the eastern end of Bai Causeway, this is where the reunion scene from the Legend of the White Snake took place. After snowfall in winter, it is particularly famous for its silver-white appearance.\n- **Leifeng Pagoda at Sunset**: Leifeng Pagoda glows golden under the setting sun and was once one of the \"Ten Scenes of West Lake\".\n- **Three Pools Mirroring the Moon**: On Xiaoyingzhou Island in the lake, there are three stone pagodas. During the Mid-Autumn Festival, lanterns can be lit inside the pagodas, creating a harmonious interplay of moonlight, lamplight, and lake reflections.\n- **Autumn Moon over Calm Lake**: Located at the western end of Bai Causeway, it is an excellent spot for viewing the moon over the lake.\n- **Viewing Fish at Flower Harbor**: Known for viewing flowers and fish, with peonies and koi complementing each other beautifully in the garden.\n\n### II. Cultural History\nWest Lake not only boasts beautiful scenery but also carries rich historical and cultural significance:\n- Since the Tang and Song dynasties, numerous literati such as Bai Juyi, Su Dongpo, Lin Bu, and Yang Wanli have left poems here.\n- Bai Juyi oversaw the construction of \"Bai Causeway\" and dredged West Lake, benefiting the local people.\n- Around West Lake are many historical sites, including Yuewang Temple (commemorating national hero Yue Fei), Lingyin Temple (a millennium-old Buddhist temple), Liuhe Pagoda, and Longjing Village (the origin of Longjing tea, one of China's top ten famous teas).\n\n### III. Cultural Symbolism\nWest Lake is regarded as a representative of \"paradise on earth\" and a model of traditional Chinese landscape aesthetics. It embodies the philosophical concept of \"harmony between heaven and humanity\" by integrating natural beauty with cultural depth. Many poems, paintings, and operas feature West Lake, making it an important symbol of Chinese culture.\n\n### IV. Travel Recommendations\n- Best visiting seasons: Spring (March-May) for peach blossoms and willows, Autumn (September-November) for clear skies and cool weather.\n- Recommended ways: Walking, cycling (along the lakeside greenway), or boating on the lake.\n- Local cuisine: West Lake vinegar fish, Longjing shrimp, Dongpo pork, pian'erchuan noodles.\n\nIn summary, Hangzhou West Lake is not just a natural wonder but also a living cultural museum worth exploring in detail. If you ever visit Hangzhou, don't miss this earthly paradise that is \"equally charming in light or heavy makeup\"."}}],"object":"chat.completion"}},"error":null} {"id":"628312ba-172c-457d-ba7f-3e5462cc6899","custom_id":"req-002","response":{"status_code":200,"request_id":"628312ba-172c-457d-ba7f-3e5462cc6899","body":{"created":1768306035,"usage":{"completion_tokens":25,"prompt_tokens":18,"total_tokens":43},"model":"qwen-plus","id":"chatcmpl-628312ba-172c-457d-ba7f-3e5462cc6899","choices":[{"finish_reason":"stop","index":0,"message":{"role":"assistant","content":"The spring breeze brushes green willows,\nNight rain nourishes red flowers.\nBird songs fill the forest,\nMountains and rivers share the same beauty."}}],"object":"chat.completion"}},"error":null} Detalhes de falha (
error_file_id): Contém informações sobre solicitações malsucedidas, incluindo números de linha e motivos do erro. Consulte Códigos de erro para solução de problemas.
Procedimento detalhado
O fluxo de trabalho da Batch API consiste em quatro etapas: carregar um arquivo, criar uma tarefa, consultar o status da tarefa e baixar os resultados.
1. Carregar arquivo
2. Criar uma tarefa em lote
3. Consultar e gerenciar tarefas em lote
4. Baixar arquivo de resultado do Batch
Recursos avançados
Configurar notificações de conclusão
Para tarefas de longa duração, utilize notificações assíncronas em vez de polling para reduzir o consumo de recursos.
A notificação de conclusão é suportada apenas na região de Pequim.
Callback: Especifique uma URL acessível publicamente ao criar a tarefa.
Fila de mensagens do EventBridge: Integração profunda com o ecossistema Alibaba Cloud. Não requer IP público.
Método 1: Callback
Método 2: Fila de mensagens do EventBridge
Entrando em produção
-
Gerenciamento de arquivos
Exclua periodicamente arquivos desnecessários usando a API de exclusão de arquivos da OpenAI para evitar atingir os limites de armazenamento (10.000 arquivos ou 100 GB).
Armazene arquivos grandes no OSS em vez de fazer upload direto.
-
Monitoramento de tarefas
Utilize notificações assíncronas via Callback ou EventBridge.
Caso o polling seja necessário, defina o intervalo para mais de 1 minuto e adote uma estratégia de backoff exponencial.
-
Tratamento de erros
Implemente tratamento para erros de rede, erros de API e outras exceções.
Baixe e analise os detalhes dos erros a partir de
error_file_id.Para códigos de erro comuns, consulte Códigos de erro.
-
Otimização de custos
Consolide pequenas tarefas em um único lote.
Defina
completion_windowadequadamente para permitir maior flexibilidade de agendamento.
Ferramentas utilitárias
CSV para JSONL
Resultados JSONL para CSV
Limites de taxa
|
API |
Limite de taxa (por conta Alibaba Cloud) |
|
Criar tarefa |
1.000 chamadas/minuto; até 1.000 tarefas simultâneas |
|
Consultar tarefa |
1.000 chamadas/minuto |
|
Consultar lista de tarefas |
100 chamadas/minuto |
|
Cancelar tarefa |
1.000 chamadas/minuto |
Faturamento
Preço unitário: Os tokens de entrada e saída de todas as requisições bem-sucedidas são cobrados a 50% do preço de inferência em tempo real do modelo correspondente. Para mais informações, consulte Lista de modelos.
-
Escopo de faturamento:
Apenas requisições executadas com sucesso dentro de uma tarefa são faturadas.
Requisições que falham devido a erros de análise de arquivo, falhas na execução da tarefa ou erros no nível da linha não geram cobranças.
Para tarefas canceladas, as requisições concluídas com sucesso antes do cancelamento ainda são faturadas normalmente.
A inferência em lote é um item de faturamento separado. Ela suporta o Plano de economia de uso geral de IA, mas não aceita descontos como assinatura (outros planos de economia) ou cotas gratuitas para novos usuários. Também não suporta recursos como cache de contexto.
Alguns modelos, como qwen3.5-plus e qwen3.5-flash, têm o modo de pensamento ativado por padrão. Esse modo gera tokens de pensamento adicionais, que são cobrados pelo preço de tokens de saída e aumentam os custos. Para controlar despesas, defina o parâmetro
enable_thinkingcom base na complexidade da tarefa. Para mais informações, consulte Pensamento profundo.
Códigos de erro
Se uma requisição falhar e retornar uma mensagem de erro, consulte Códigos de erro para obter uma solução.
Perguntas frequentes
-
Como escolher entre Batch Chat e Batch File?
Use Batch File quando precisar processar assincronamente um arquivo grande contendo muitas requisições. Opte por Batch Chat quando sua lógica de negócio exigir o envio síncrono de muitas requisições de conversa independentes com alta concorrência.
-
Como é feito o faturamento da API Batch File? Preciso comprar um pacote separado?
O Batch utiliza faturamento conforme o uso (pay-as-you-go) com base nos tokens consumidos pelas requisições bem-sucedidas. Nenhum pacote de recursos separado é necessário.
-
Os arquivos em lote enviados são executados em ordem?
Não. O sistema usa agendamento dinâmico baseado na carga computacional e não garante a ordem de execução. As tarefas podem sofrer atrasos quando os recursos estiverem limitados.
-
Quanto tempo leva para concluir um arquivo em lote enviado?
O tempo de execução depende dos recursos do sistema e da escala da tarefa. Se uma tarefa não for concluída dentro do completion_window, ela expira. Requisições não processadas em tarefas expiradas não são executadas e não geram cobranças.
Recomendações de cenário: Utilize chamadas em tempo real para cenários que exigem inferência de modelo estritamente em tempo real. Use chamadas em lote para cenários de processamento de dados em larga escala que toleram atrasos.