Skip to main content
Referência da API de Geração de Texto

Anthropic-compatible Messages

Migre sua aplicação Anthropic para o Model Studio alterando três configurações. Este tópico aborda os parâmetros de requisição e resposta com exemplos de código.

Para migrar uma aplicação Anthropic existente para o Model Studio, altere estas configurações:
  • api_key: Substitua pela Model Studio API key.
  • base_url: Substitua por um endpoint do Model Studio listado abaixo.
  • model: Substitua pelo nome de um modelo suportado, como qwen3.7-plus.
O Alibaba Cloud Model Studio lançou domínios específicos por workspace para as regiões China (Beijing), Singapore e China (Hong Kong). Os novos domínios dedicados oferecem desempenho superior e maior estabilidade para requisições de inferência. Recomendamos a migração para os novos domínios:
  • China (Beijing): de https://dashscope.aliyuncs.com para https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com
  • Singapore: de https://dashscope-intl.aliyuncs.com para https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com
  • China (Hong Kong): de https://cn-hongkong.dashscope.aliyuncs.com para https://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com
{WorkspaceId} é o ID do seu workspace, disponível na página Workspace Details no console do Alibaba Cloud Model Studio. O domínio existente permanece totalmente funcional.
  • Singapore
  • China (Beijing)
  • Germany (Frankfurt)
  • US (Virginia)
  • Japan (Tokyo)
SDK base_url:https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/apps/anthropicURL da requisição HTTP:POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/apps/anthropic/v1/messages
Substitua {WorkspaceId} pelo seu workspace ID real. Autenticação: Informe sua Model Studio API key no header x-api-key ou no header Authorization: Bearer.

Request Body

  • Basic Call
  • Streaming
  • Extended Thinking
  • Image Understanding
  • Video Understanding
  • Function calling
  • Prompt Caching
  • Structured Outputs
Python
import anthropic
    import os

    client = anthropic.Anthropic(
        api_key=os.getenv("DASHSCOPE_API_KEY"),
        # Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
        base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/apps/anthropic",
    )

    message = client.messages.create(
        model="qwen3.8-max",
        max_tokens=1024,
        system="You are a helpful assistant",
        messages=[
            {
                "role": "user",
                "content": "Who are you?"
            }
        ],
        thinking={"type": "disabled"},
    )

    print(message.content[0].text)
model string (Required)Nome do modelo. Modelos suportados:
Qwen-Max: qwen3.8-max, qwen3.7-max, qwen3.7-max-2026-05-20, qwen3.7-max-2026-06-08, qwen3.6-max-preview, qwen3-max, qwen3-max-2026-01-23, qwen3-max-previewQwen-Plus: qwen3.7-plus, qwen3.7-plus-2026-05-26, qwen3.6-plus, qwen3.6-plus-2026-04-02, qwen3.5-plus, qwen3.5-plus-2026-04-20, qwen3.5-plus-2026-02-15, qwen-plus, qwen-plus-latest, qwen-plus-2025-09-11Qwen-Flash: qwen3.8-flash, qwen3.7-flash, qwen3.7-flash-2026-07-15, qwen3.6-flash, qwen3.6-flash-2026-04-16, qwen3.5-flash, qwen3.5-flash-2026-02-23, qwen-flash, qwen-flash-2025-07-28Qwen-Turbo: qwen-turboQwen-Coder: qwen3-coder-next, qwen3-coder-plus, qwen3-coder-plus-2025-09-23, qwen3-coder-flashQwen-VL: qwen3-vl-plus, qwen3-vl-flash, qwen-vl-max, qwen-vl-plusQwen Open-Source Models: qwen3.6-27b, qwen3.5-397b-a17b, qwen3.5-122b-a10b, qwen3.5-27b, qwen3.5-35b-a3b, qwen3.8-2.4t-a95b, qwen3.8-27bThird-Party Modelsdeepseek-v4-pro, deepseek-v4-pro-0813, deepseek-v4-flash, deepseek-v4-flash-0731, kimi-k3, kimi-k2.7-code, kimi-k2.5, kimi-k2-thinking, glm-5.1, glm-5, glm-4.7, glm-4.6, MiniMax-M2.5, MiniMax-M2.1
max_tokens integer (Required)
  • deepseek-v4-pro, deepseek-v4-pro-0813, deepseek-v4-flash, deepseek-v4-flash-0731, qwen3.8-max: max_tokens representa o limite total de tokens para o conteúdo da resposta e para a cadeia de pensamento. A geração é interrompida antecipadamente quando a saída do modelo excede esse valor, e stop_reason assume o valor max_tokens.
    max_tokens limita o comprimento combinado do conteúdo da resposta e do processo de raciocínio. Quando o extended thinking está ativado, max_tokens > thinking.budget_tokens
  • glm-5.2: Se o parâmetro thinking.budget_tokens não for passado, max_tokens define o limite total de tokens para o conteúdo da resposta e da cadeia de pensamento. A geração para antes se a saída ultrapassar esse limite, resultando em stop_reason igual a max_tokens. Caso o parâmetro thinking.budget_tokens seja fornecido, max_tokens restringe apenas os tokens da resposta final, enquanto os tokens de raciocínio são controlados separadamente por thinking.budget_tokens.
  • Demais modelos: Número máximo de tokens para o conteúdo da resposta. Se o conteúdo gerado ultrapassar esse valor, a geração cessa prematuramente e stop_reason retorna max_tokens.
    max_tokens não limita a extensão do processo de raciocínio. Com o extended thinking habilitado, os tokens de pensamento são gerenciados independentemente via thinking.budget_tokens.
system string or array (Optional)Prompt de sistema que define o comportamento do modelo. system é um parâmetro de nível superior — o array messages não aceita a função system.Uma string equivale a um único bloco type="text". Utilize um array para marcar pontos de interrupção de cache de prompt.
type string (Required)Valor fixo: text.text string (Required)O texto do prompt de sistema.cache_control object (Optional)Ponto de interrupção para cache de prompt. Em caso de acerto de cache, as requisições subsequentes são cobradas pela taxa de leitura de cache. Contém apenas type, fixado em ephemeral.
messages array (Required)O array de mensagens, organizado em turnos alternados de user/assistant.
role string (Required)A função da mensagem. Valores válidos: user, assistant.content string or array (Required)String de texto simples ou array de conteúdo estruturado. Uma string corresponde a um único bloco de content com type="text".
Text
type string (Required)Valor fixo: text.text string (Required)O conteúdo textual.cache_control object (Optional)Ponto de interrupção para cache de prompt. Contém apenas type, fixado em ephemeral.
Image (requer modelo de visão)
type string (Required)Valor fixo: image.source object (Required)A origem dos dados da imagem.
type string (Required)Valores válidos: url (URL pública da imagem), base64 (codificado em Base64).url stringA URL pública da imagem. Obrigatório quando type for url.media_type stringO tipo MIME da imagem, como image/jpeg. Obrigatório quando type for base64.data stringOs dados da imagem codificados em Base64. Obrigatório quando type for base64.
Video (requer modelo de visão)
type string (Required)Valor fixo: video.source object (Required)A origem dos dados de vídeo.
type string (Required)Valores válidos: url (URL pública do vídeo), base64 (codificado em Base64).url stringA URL pública do vídeo. Obrigatório quando type for url.media_type stringO tipo MIME do vídeo, como video/mp4. Obrigatório quando type for base64.data stringOs dados do vídeo codificados em Base64. Obrigatório quando type for base64.
Tool use (função assistant; instrução de chamada de ferramenta retornada pelo modelo)
type string (Required)Valor fixo: tool_use.id string (Required)Identificador único da chamada de ferramenta, usado para associar o resultado em um tool_result subsequente.name string (Required)O nome da ferramenta invocada.input object (Required)Os parâmetros de entrada da chamada de ferramenta. A estrutura é determinada pelo input_schema da ferramenta correspondente em tools.cache_control object (Optional)Ponto de interrupção para cache de prompt. Contém apenas type, fixado em ephemeral. O conteúdo da chamada de ferramenta participa do prefixo de cache.
Tool result (função user; resultado da execução de uma ferramenta enviado de volta ao modelo)
type string (Required)Valor fixo: tool_result.tool_use_id string (Required)Corresponde ao id no bloco tool_use.content string (Required)Conteúdo retornado pela ferramenta.cache_control object (Optional)Ponto de interrupção para cache de prompt. Contém apenas type, fixado em ephemeral.
stream boolean (Optional)Ativa ou desativa o streaming. Valor padrão: false.
temperature number (Optional)Controla a diversidade do texto gerado. Intervalo de valores: [0, 2). Valores mais altos produzem resultados mais aleatórios.
Este intervalo difere do intervalo oficial da Anthropic, que é [0,0, 1,0]. Ao migrar da Anthropic, verifique o valor deste parâmetro.
top_p number (Optional)Limiar de probabilidade para amostragem nuclear.
Tanto temperature quanto top_p podem controlar a diversidade do texto gerado. Recomendamos configurar apenas um deles. Para mais informações, consulte Overview.
top_k integer (Optional)Tamanho do conjunto de candidatos durante a amostragem.
stop_sequences array (Optional)Sequências de texto que acionam a parada da geração. A saída termina antes da sequência correspondente.
Após uma correspondência, o stop_reason na resposta ainda será end_turn, e a resposta não incluirá a sequência encontrada.
thinking object (Optional)Configuração de extended thinking. Quando ativado, o modelo raciocina antes de responder, e a resposta inclui blocos de conteúdo do tipo thinking. Nem todos os modelos suportam o modo de raciocínio.
type string (Required)Valores válidos: enabled (ativa o modo de raciocínio), disabled (desativa o modo de raciocínio).budget_tokens integer (Optional, to be deprecated)
Este parâmetro será descontinuado. Para novas integrações, utilize effort.
Máximo de tokens para o processo de raciocínio. Independente de max_tokens: este parâmetro limita a parte de raciocínio, enquanto max_tokens limita a resposta final. Um orçamento maior permite análises mais detalhadas em questões complexas. Entra em vigor quando type é enabled.
tools array (Optional)Definições de ferramentas para function calling.
name string (Required)O nome da ferramenta.description string (Optional)A descrição da função da ferramenta.input_schema object (Required)A definição JSON Schema dos parâmetros de entrada da ferramenta.
tool_choice object (Optional)Estratégia de seleção de ferramentas:
  • {"type": "auto"}: O modelo decide se deve chamar uma ferramenta (padrão).
  • {"type": "any"}: Força o modelo a chamar qualquer ferramenta disponível.
  • {"type": "none"}: Proíbe o modelo de chamar ferramentas.
  • {"type": "tool", "name": "tool_name"}: Obriga o modelo a chamar uma ferramenta específica.
output_config object (Optional)
effort string (Optional)Controla a intensidade de inferência dos modelos. Os valores válidos e padrões variam conforme o modelo.
  • glm-5.2, deepseek-v4-pro e deepseek-v4-flash: Valor padrão: max Valores válidos:
    • high: Inferência de alta intensidade
    • max: Inferência de intensidade máxima
    low e medium são mapeados para high, e xhigh é mapeado para max.
  • qwen3.8-max: Valor padrão: xhigh Valores válidos:
    • xhigh: Inferência de alta intensidade
    • medium: Inferência de média intensidade
    • low: Inferência de baixa intensidade
    max e high são mapeados para xhigh.
format object (Optional)Configuração de saída estruturada. Quando habilitada, o modelo retorna uma string JSON. O comportamento varia conforme o modelo:
  • Saídas estruturadas estritas: Disponível para as séries qwen3.8, qwen3.7, deepseek e glm. O modelo segue rigorosamente o JSON Schema fornecido, garantindo os mesmos tipos de campos e hierarquia.
  • Saídas estruturadas regulares: Para todos os outros modelos, as restrições de campo do schema não são aplicadas — a API reverte automaticamente para um modo JSON simples (garantindo apenas que a saída seja uma string JSON válida). Neste modo de fallback, a requisição deve satisfazer ambas as condições: (1) o parâmetro output_config deve ser explicitamente fornecido; (2) o conteúdo de system ou messages deve conter a palavra-chave "JSON" (insensível a maiúsculas/minúsculas). Se a palavra-chave "JSON" estiver ausente, a API lançará o erro: 'messages' must contain the word 'json' in some form.
type string (Required)Valor fixo: json_schema.schema object (Required)Objeto JSON Schema que segue a especificação padrão. Deve incluir type (tipo de dado), properties (definições de campos), required (array de nomes de campos obrigatórios) e additionalProperties (deve ser definido como false).

Non-streaming Response

Response Example
{
  "id": "msg_e2898f19-fc0e-4cb3-bd9b-5b7dc4ea3bc9",
  "type": "message",
  "role": "assistant",
  "model": "qwen3.8-max",
  "content": [
    {
      "type": "thinking",
      "thinking": "Let me analyze this problem...",
      "signature": ""
    },
    {
      "type": "text",
      "text": "Hello! I am Qwen..."
    }
  ],
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "usage": {
    "input_tokens": 22,
    "output_tokens": 223,
    "cache_creation_input_tokens": 0,
    "cache_read_input_tokens": 0
  }
}
id stringIdentificador único da mensagem.
type stringValor fixo: message.
role stringValor fixo: assistant.
model stringO modelo utilizado para geração.
content arrayO array de conteúdo.
Text
type stringValor fixo: text.text stringA resposta textual gerada pelo modelo.
Thinking (retornado quando Extended Thinking está ativado)
type stringValor fixo: thinking.thinking stringO raciocínio do modelo antes da resposta final.signature stringAtualmente fixado como uma string vazia.
Tool use (cenário de chamada de função)
type stringValor fixo: tool_use.id stringIdentificador único da chamada de ferramenta, usado para corresponder ao tool_result.name stringO nome da ferramenta invocada.input objectOs parâmetros de entrada da chamada de ferramenta.
stop_reason stringMotivo da interrupção da geração. Valores válidos: end_turn (conclusão normal), max_tokens (limite de tokens atingido), tool_use (chamada de ferramenta).
stop_sequence stringSempre null.
usage objectEstatísticas de uso de tokens.
Em chamadas com streaming, o campo usage do evento message_start contém apenas input_tokens e output_tokens. Os quatro campos completos são retornados no evento message_delta.
input_tokens integerTokens de entrada.output_tokens integerTokens de saída.cache_creation_input_tokens integerTokens consumidos para criação de cache.cache_read_input_tokens integerTokens consumidos em leituras de cache.

Streaming Response

Streaming response example
{"type":"message_start","message":{"id":"msg_xxx","type":"message","role":"assistant","model":"qwen3.8-max","content":[],"usage":{"input_tokens":15,"output_tokens":0}}}
{"type":"content_block_start","index":0,"content_block":{"type":"thinking","thinking":"","signature":""}}
{"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":"Here's a thinking process:\n\n1. **Analyze User Input:**\n   - **Topic:** Artificial Intelligence (AI)\n   - **Request:** Give a brief introduction to artificial intelligence."}}
{"type":"content_block_delta","index":0,"delta":{"type":"signature_delta","signature":""}}
{"type":"content_block_stop","index":0}
{"type":"content_block_start","index":1,"content_block":{"type":"text","text":""}}
{"type":"content_block_delta","index":1,"delta":{"type":"text_delta","text":"Artificial intelligence (AI) is an important branch of computer science..."}}
{"type":"content_block_stop","index":1}
{"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":15,"output_tokens":1078,"cache_creation_input_tokens":0,"cache_read_input_tokens":0}}
{"type":"message_stop"}
message_startPrimeiro evento do fluxo, marca o início da mensagem.
type stringValor fixo: message_start.message objectO objeto inicial da mensagem. content é um array vazio, e usage contém apenas input_tokens e output_tokens.
content_block_startMarca o início de um bloco de conteúdo.
type stringValor fixo: content_block_start.index integerÍndice baseado em zero correspondente à posição no array content.content_block objectO objeto inicial do bloco de conteúdo. O valor de type é text, thinking ou tool_use. Para o tipo tool_use, o campo input é um objeto vazio neste evento, e os parâmetros de entrada completos são montados a partir dos deltas content_block_delta subsequentes.
content_block_deltaAtualização incremental do bloco de conteúdo. Múltiplos deltas são enviados por bloco.
type stringValor fixo: content_block_delta.index integerO índice do bloco de conteúdo associado.delta objectObjeto delta. Valores de type:
  • text_delta: Delta de texto, contendo o campo text.
  • thinking_delta: Delta de raciocínio, contendo o campo thinking.
  • signature_delta: Delta de assinatura, contendo o campo signature (atualmente fixado como string vazia).
  • input_json_delta: Delta de parâmetro de entrada de ferramenta, contendo o campo partial_json.
content_block_stopMarca o fim de um bloco de conteúdo.
type stringValor fixo: content_block_stop.index integerO índice do bloco de conteúdo finalizado.
message_deltaEnviado após o término de todos os blocos de conteúdo. Contém o motivo da parada e o uso final de tokens.
type stringValor fixo: message_delta.delta objectContém stop_reason e stop_sequence. Para valores válidos, consulte a tabela de Resposta Sem Streaming acima.usage objectEstatísticas completas de uso de tokens, incluindo input_tokens, output_tokens, cache_creation_input_tokens e cache_read_input_tokens.
message_stopEvento final, marca o encerramento da mensagem.
type stringValor fixo: message_stop.Além disso, respostas em streaming enviam periodicamente eventos de ping ({"type":"ping"}) para manter a conexão ativa. Os clientes podem ignorá-los.

FAQ

Após configurar o Claude Desktop ou Claude Code, o teste de conexão falha comModel discovery — Gateway /v1/models returned HTTP 404, ou a URL da requisição contém/v1/v1/models. Como resolver? O recurso de descoberta de modelos de clientes como Claude Desktop e Claude Code adiciona automaticamente /v1/models à URL base configurada. Verifique os dois pontos a seguir:
  • Não termine a URL base com/v1/: ela deve terminar em /apps/anthropic (por exemplo, para China (Beijing) use https://dashscope.aliyuncs.com/apps/anthropic; consulte as informações de endpoint acima para outras regiões). Se você inserir incorretamente .../apps/anthropic/v1/, o cliente anexará /v1/models e produzirá o caminho duplicado /v1/v1/models, que retorna HTTP 404. Portanto, ao receber um erro 404, verifique primeiro se a URL real da requisição contém um /v1/v1/ duplicado; nesse caso, remova o /v1/ final da URL base.
  • Adicione modelos manualmente para pular a descoberta: o endpoint compatível com Anthropic do Model Studio fornece apenas a Messages API (/v1/messages) e não oferece um endpoint de lista de modelos (/v1/models), logo a requisição de descoberta também retorna 404. Adicione modelos manualmente (por exemplo, qwen3.7-plus) na seção Models do cliente para evitar a descoberta automática.
Referência da API de Geração de Texto
Geração de Imagens
  • FAQ
Geração de Vídeo
Áudio
API em tempo real
Incorporação de Texto
Produção de Modelos