modelos

Qwen: Qwen3 Coder 30B A3B Instruct

Markdown · JSON

Qwen: Qwen3 Coder 30B A3B Instruct

Qwen3-Coder-30B-A3B-Instruct é o modelo textual de programação non-thinking da Qwen, com 30,5 mil milhões de parâmetros no total e 3,3 mil milhões ativados. Destina-se a desenvolvimento à escala do repositório, programação e fluxos de agentes de navegador, com contexto nativo de 262 144 tokens e um formato específico de chamadas de funções.

Sobre o modelo

Esta descrição apresenta as capacidades do modelo. As entradas, saídas e opções disponíveis no Ailoot para o método selecionado estão indicadas abaixo.

Destaques: programação à escala do repositório

Qwen3-Coder-30B-A3B-Instruct é um modelo de texto orientado para instruções, destinado a agentes de programação. A Qwen documenta programação, utilização com agentes de navegador e compreensão à escala do repositório, com um formato próprio para chamadas de funções e integração através de fluxos de trabalho como o Qwen Code. A entrada e a saída são texto. Preserve este checkpoint Coder exato, em vez de o substituir pelo Qwen3-30B-A3B-Instruct-2507 de uso geral ou pelo Qwen3-Coder-Next, cujo foco de treino e orientações de geração são diferentes.

O contexto nativo é de 262 144 tokens, e o fabricante descreve uma extensão para aproximadamente um milhão através de YaRN. Um contexto grande permite reunir mais elementos do repositório, mas uma tarefa clara continua a precisar dos módulos, interfaces e requisitos relevantes. Indique o produto esperado e o comportamento observável antes de pedir uma alteração ao código.

Visão geral do modelo

O modelo de mistura de especialistas tem 30,5 mil milhões de parâmetros no total e ativa 3,3 mil milhões. Tem 48 camadas, 128 especialistas e oito especialistas selecionados por token. Os parâmetros totais e os parâmetros ativados têm significados diferentes; o número de parâmetros ativados não corresponde ao tamanho do checkpoint completo. A configuração como modelo de linguagem causal é a de um modelo de texto, não de uma interface de visão ou de voz.

Coder-30B-A3B-Instruct suporta apenas o modo non-thinking e não gera blocos de thinking explícitos. Definir enable_thinking=False é desnecessário no exemplo do fabricante. Pode, ainda assim, explicar um algoritmo ou justificar uma alteração em texto normal. Um pedido de passos de raciocínio não deve ser confundido com a ativação do comportamento Thinking separado de outra edição Qwen.

Preparar um pedido de desenvolvimento

Forneça o código relevante, uma entrada que demonstre o comportamento atual, o resultado observado e a alteração pretendida. Para um algoritmo, especifique as restrições da entrada e a saída necessária antes de pedir uma abordagem. Para uma modificação num repositório, identifique a funcionalidade afetada e as interfaces que a implementação deve preservar. Peça uma alteração editável ou uma função completa separadamente dos comentários explicativos.

Uma resposta útil pode organizar o diagnóstico, a alteração proposta e as verificações necessárias para a analisar. Quando uma tarefa parte de uma referência visual ou de um comportamento gravado, forneça uma representação textual adequada e preserve os identificadores que permitem comparar o resultado com o original. Compare a alteração proposta com o código fornecido, o comportamento esperado e os resultados devolvidos pelas verificações ligadas ao fluxo de trabalho.

Programação com agentes e fluxos de trabalho de navegador

O fabricante destaca as chamadas de ferramentas e um formato de chamadas de funções especialmente concebido. Um fluxo de trabalho com um agente ligado fornece descrições de ferramentas, esquemas de entrada e observações, e executa as operações reais. Defina as ações permitidas e uma condição de conclusão e, em seguida, devolva ao modelo os resultados reais de inspeção ou execução para que possa atualizar a proposta de trabalho.

A capacidade de agente de navegador significa participação num fluxo de trabalho com uma ferramenta de navegador ligada, não acesso automático ao navegador de um utilizador ou às páginas atuais. A mesma distinção aplica-se à inspeção do repositório e à execução de código. Uma ordem proposta, um pedido de ferramenta e uma operação concluída devem permanecer separados no relatório final. Preserve o formato de ferramentas nativo do modelo e o procedimento de interpretação, em vez de assumir que o template de conversa de outro modelo é intercambiável.

Contexto longo e configuração

O fabricante descreve a extensão YaRN do contexto nativo de 262 144 tokens para cerca de um milhão em tarefas à escala do repositório. Use uma configuração de contexto adequada ao material do repositório, reservando espaço para as observações das ferramentas e o resultado. O guia de início rápido também sugere um contexto menor, como 32 768, quando a pressão sobre a memória impede o funcionamento da configuração maior.

Preserve os caminhos do código, os nomes das funções e as definições relevantes numa entrada longa. Remova ficheiros gerados sem relação com a tarefa ou material repetido e reserve espaço para a resposta. O texto-fonte, o histórico, as observações das ferramentas e o código gerado partilham o limite de sequência configurado; a maior entrada possível não deve ser tratada como uma recordação perfeita de todas as dependências.

Orientações de geração

Best Practices recomenda temperature 0,7, top_p 0,8, top_k 20 e uma penalização de repetição de 1,05. A recomendação exata de penalização de repetição difere da de vários outros modelos Qwen e continua a fazer parte da configuração desta edição Coder. A Qwen recomenda um orçamento de geração de 65 536 tokens para a maioria dos pedidos, o que constitui uma recomendação e não um máximo absoluto estabelecido de forma independente.

Indique o idioma e a forma da saída, como uma alteração ao código, uma função completa ou uma explicação, e verifique a sintaxe e as interfaces do produto no fluxo de desenvolvimento real. O exemplo de função do fabricante ilustra o mecanismo da ferramenta; o contrato de uma ferramenta continua a exigir nomes de argumentos e semântica de retorno internamente coerentes na aplicação que a utiliza.

Limitações relevantes e resultado útil

A entrada documentada deste checkpoint é texto. Não estabelece diretamente compreensão de imagens, áudio ou vídeo. O código gerado e uma explicação confiante são produtos provisórios até que o ambiente ligado devolva efetivamente as verificações ou observações relevantes. O resultado útil é uma proposta de implementação que pode ser inspecionada e está ligada às condições do repositório fornecidas, preservando a identidade Coder exata, o modo non-thinking e as orientações de geração do produtor.

Tarefa prática

Tarefa prática

Exemplo técnico em inglês

Implement interval overlap correctly

Implement overlaps(a, b) for two half-open intervals [start, end), using numeric endpoints. Intervals touching at an endpoint do not overlap. Reject intervals with start greater than end; empty intervals never overlap. Return a complete Python function and tests for genuine overlap, touching, empty and reversed intervals. Keep the interface limited to two pairs.

Resultado esperado

A complete Python function and four focused tests expressing the interval contract.

Verificar o resultado

Check that [1, 3) and [3, 5) return false and an empty interval cannot overlap a containing interval.
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions qwen/qwen3-coder-30b-a3b-instruct

qwen/qwen3-coder-30b-a3b-instruct

Alibaba /qwen/qwen3-coder-30b-a3b-instruct

Introdução

Qwen3-Coder-30B-A3B-Instruct é o modelo textual de programação non-thinking da Qwen, com 30,5 mil milhões de parâmetros no total e 3,3 mil milhões ativados. Destina-se a desenvolvimento à escala do repositório, programação e fluxos de agentes de navegador, com contexto nativo de 262 144 tokens e um formato específico de chamadas de funções.

Entradas aceites
Texto
Resultados
Texto

Disponível no Ailoot · entradas e métodos

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
Entrada
text
Saída
text
Formato de saída
json ou SSE
CampoTipoRequisitoValores e limitesPredefinição
CampomodelTipostringRequisitoObrigatórioValores e limites
qwen/qwen3-coder-30b-a3b-instruct
Predefinição—
CampomessagesTipomessage[]RequisitoObrigatórioValores e limites
Número mínimo de elementos: 1
Predefinição—
Campomessages[].roleTipostringRequisitoObrigatórioValores e limites
Exemplos: system, user, assistant, tool, function
Condições: Estes papéis são representados explicitamente pelos tipos de compatibilidade do código-fonte; o conjunto exato de papéis continua específico do modelo.
Depende do modelo
Predefinição—
Campomessages[].contentTipostring|content_part[]|nullRequisitoOpcionalValores e limitesPredefinição—
Campomessages[].tool_callsTipotool_call[]RequisitoOpcionalValores e limitesPredefinição—
Campomessages[].tool_call_idTipostringRequisitoOpcionalValores e limites
Aplica-se quando: role=tool; use o ID realmente devolvido
Predefinição—
Campomessages[].nameTipostringRequisitoOpcionalValores e limitesPredefinição—
Campomessages[].reasoning_contentTipostringRequisitoOpcionalValores e limites
Aplica-se quando: Reintroduza o raciocínio realmente devolvido quando este modelo o utiliza
Predefinição—
Campomessages[].reasoning_detailsTipoobject|arrayRequisitoOpcionalValores e limites
Depende do modelo
Predefinição—
Campomax_tokensTipointegerRequisitoOpcionalValores e limites
Mínimo: 1
Depende do modelo
Predefinição—
Campomax_completion_tokensTipointegerRequisitoOpcionalValores e limites
Mínimo: 1
Depende do modelo
Predefinição—
CampostreamTipobooleanRequisitoOpcionalValores e limitesPredefiniçãofalse
Campostream_options.include_usageTipobooleanRequisitoOpcionalValores e limites
Depende do modelo
Predefinição—
CampotemperatureTiponumberRequisitoOpcionalValores e limites
Depende do modelo
Predefinição—
Campotop_pTiponumberRequisitoOpcionalValores e limites
Depende do modelo
Predefinição—
CampostopTipostring|string[]RequisitoOpcionalValores e limites
Depende do modelo
Predefinição—
CampotoolsTipofunction_tool[]RequisitoOpcionalValores e limites
Depende do modelo
Predefinição—
Campotools[].typeTipostringRequisitoOpcionalValores e limites
function
Depende do modelo
Predefinição—
Campotools[].function.nameTipostringRequisitoObrigatórioValores e limites
Aplica-se quando: Função fornecida como ferramenta
Predefinição—
Campotools[].function.descriptionTipostringRequisitoOpcionalValores e limitesPredefinição—
Campotools[].function.parametersTipoJSON_schemaRequisitoOpcionalValores e limitesPredefinição—
Campotool_choiceTipostring|objectRequisitoOpcionalValores e limites
Depende do modelo
Predefinição—
Campoparallel_tool_callsTipobooleanRequisitoOpcionalValores e limites
Depende do modelo
Predefinição—
Camporesponse_formatTipoobjectRequisitoOpcionalValores e limites
Depende do modelo
Predefinição—
Camporeasoning_effortTipostringRequisitoOpcionalValores e limites
Depende do modelo
Predefinição—
CamporeasoningTipoobjectRequisitoOpcionalValores e limites
Depende do modelo
Predefinição—
Camposervice_tierTipostringRequisitoOpcionalValores e limites
Depende do modelo
Predefinição—
CampoinstructionsTipostringRequisitoOpcionalValores e limites
Campo de compatibilidade
Predefinição—
CampofunctionsTipofunction[]RequisitoOpcionalValores e limites
Depende do modelo
Predefinição—
Campofunction_callTipostring|objectRequisitoOpcionalValores e limites
Depende do modelo
Predefinição—
Campoprompt_cache_optionsTipoobjectRequisitoOpcionalValores e limites
Depende do modelo
Predefinição—
CampomodalitiesTipostring[]RequisitoOpcionalValores e limites
text
Predefinição—
CampoproviderTipoobjectRequisitoOpcionalValores e limites
Condições: provider.options é rejeitado nesta rota textual Ultra
Predefinição—
Campocache_control.ttlTipostringRequisitoOpcionalValores e limites
Condições: 1h é rejeitado nos locais efetivos da cache de prompts
Predefinição—
Combinações de materiais de entrada

Texto · Texto UTF8

messages[].content

Parâmetros e ciclo de vida do método
ParâmetroContrato
Parâmetrocontent_typeContratoapplication/json
ParâmetrorequiredContratomodel, messages
Parâmetromaterial_typesContratotext
ParâmetromessagesContratoLista de mensagens com estrutura role/content
Parâmetrofile_materialContratoDocumento UTF-8 real inserido como texto literal; nenhum ID de ficheiro inferido
Parâmetrooptional_controlsContratostream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice
Parâmetrocontrol_scopeContratoEspecífico do modelo; as ferramentas de funções do utilizador diferem das ferramentas alojadas
Parâmetrooutput_modalitiesContratotext
Parâmetrohosted_operationsContratofalse
Parâmetromultimodal_input_bindingContratonull

Ciclo de vida: synchronous_or_streamed

Envie o ID exato do modelo com messages.

O comprimento do contexto não é um limite de saída.

Um ficheiro de texto pode fornecer texto literal; as entradas de imagem/áudio/objeto de ficheiro exigem uma associação exata.

Tarifários

As referências tarifárias não acrescentam opções ao pedido. Os parâmetros suportados constam do método selecionado.

Modo rápido
Tarifa normal Quando o modo rápido está selecionado
Modo flex
Tarifa normal Quando o modo flex está selecionado
Esforço máximo de raciocínio
Tarifa normal Quando o esforço máximo de raciocínio usa o ajuste predefinido (default)

Tarifas Ailoot

Preços por configuração

Associe cada custo às condições apresentadas. Use uma única tarifa para cada conjunto de configurações alternativas.

ConfiguraçãoTabela de tarifasTokens de contexto, mais deTokens de contexto, até ao limite inclusiveCusto
ConfiguraçãoTarifas base dos tokensTabela de tarifasTarifa baseTokens de contexto, mais de—Tokens de contexto, até ao limite inclusiveSem limite superiorCusto
Entrada · Tokens de entrada $0.0002 / 1K tokens
Saída · Tokens de saída $0.0008 / 1K tokens
Entrada · Leitura da cache $0 / 1K tokens
Entrada · Escrita na cache $0 / 1K tokens
Entrada · Escrita na cache, 1 hora — / 1K tokens
ConfiguraçãoEscalão 1 por comprimento do pedidoTabela de tarifas—Tokens de contexto, mais de0Tokens de contexto, até ao limite inclusiveSem limite superiorCusto
Entrada · Tokens de entrada $0.0002 / 1K tokens
Saída · Tokens de saída $0.0008 / 1K tokens
Entrada · Leitura da cache $0 / 1K tokens
Entrada · Escrita na cache $0 / 1K tokens
Entrada · Escrita na cache, 1 hora — / 1K tokens

O Ailoot reserva um montante estimado antes de um pedido. Após o resultado, liquida o custo final com base na utilização medida. No streaming, a liquidação usa o registo final de utilização. Como funcionam a reserva e a liquidação →

Exemplos de pedidos

Ailoot Ultra · OpenAI Chat

curlPython SDKStreaming em Python
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "qwen/qwen3-coder-30b-a3b-instruct", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model='qwen/qwen3-coder-30b-a3b-instruct',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))
from openai import OpenAI
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.chat.completions.stream(model='qwen/qwen3-coder-30b-a3b-instruct',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")

Receber e guardar os resultados

Ailoot Ultra · OpenAI Chat

json ou SSE

Guardar todos os resultados concluídos

Guarde cada resposta, ficheiro e parte de conteúdo devolvidos na íntegra.

Conserve cada opção com o conteúdo, as chamadas de ferramentas e o raciocínio. Em SSE, junte os deltas por índice de opção e ferramenta e mantenha o motivo final de conclusão e os dados de utilização.

Se for necessário verificar a resposta original

Conserve os ID e cabeçalhos de pedido/resposta. Não é fornecido um URL genérico para obter uma tarefa textual.

Campos da resposta
CampoTipo
Campochoices[].indexTipointeger
Campochoices[].message.contentTipostring|null
Campochoices[].message.tool_callsTipotool_call[]
Campochoices[].message.reasoning_contentTipostring
Campochoices[].message.reasoning_detailsTipoobject|array
Campochoices[].finish_reasonTipostring|null
CampousageTipoobject
Erros e passos seguintes
RespostaCondiçãoPasso seguinte
Resposta400 · invalid_request_errorCondiçãoCampos obrigatórios, representação do material ou valor do parâmetro inválidosPasso seguinteCorrija os campos indicados antes de um novo pedido de criação.

Aliases

Aliases do modelo

Ailoot Ultra qwen/qwen3-coder-30b-a3b-instruct

Aliases dos caminhos dos métodos

Use os caminhos dos métodos indicados acima.

IDs de chamada relacionados

qwen/qwen3-coder-30b-a3b-instruct

Ailoot Ultra · Anthropic Messages POST /v1/messages qwen/qwen3-coder-30b-a3b-instruct

qwen/qwen3-coder-30b-a3b-instruct

Alibaba /qwen/qwen3-coder-30b-a3b-instruct

Introdução

Qwen3-Coder-30B-A3B-Instruct é o modelo textual de programação non-thinking da Qwen, com 30,5 mil milhões de parâmetros no total e 3,3 mil milhões ativados. Destina-se a desenvolvimento à escala do repositório, programação e fluxos de agentes de navegador, com contexto nativo de 262 144 tokens e um formato específico de chamadas de funções.

Entradas aceites
Texto
Resultados
json · sse

Disponível no Ailoot · entradas e métodos

Ailoot Ultra · Anthropic Messages POST /v1/messages
Entrada
text
Saída
json, sse
Formato de saída
JSON ou SSE
CampoTipoRequisitoValores e limitesPredefinição
CampomodelTipostringRequisitoObrigatórioValores e limites
qwen/qwen3-coder-30b-a3b-instruct
Predefinição—
CampomessagesTipomessage[]RequisitoObrigatórioValores e limitesPredefinição—
Campomessages[].roleTipostringRequisitoObrigatórioValores e limites
user, assistant
Predefinição—
Campomessages[].contentTipostringRequisitoObrigatórioValores e limitesPredefinição—
Campomax_tokensTipointegerRequisitoObrigatórioValores e limitesPredefinição—
CampostreamTipobooleanRequisitoOpcionalValores e limitesPredefiniçãofalse
Combinações de materiais de entrada

Texto · Texto UTF-8

Cadeia de caracteres messages[].content

Parâmetros e ciclo de vida do método
ParâmetroContrato
Parâmetrocontent_typeContratoapplication/json
ParâmetrorequiredContratomodel, messages, max_tokens
Parâmetrooptional_controlsContratostream
Parâmetromaterial_typesContratotext
Parâmetrotext_file_materialContratoLeia o documento UTF-8 real e coloque o texto na entrada indicada ou na cadeia de conteúdo da mensagem.

Ciclo de vida: synchronous_or_streamed

Tarifários

As referências tarifárias não acrescentam opções ao pedido. Os parâmetros suportados constam do método selecionado.

Modo rápido
Tarifa normal Quando o modo rápido está selecionado
Modo flex
Tarifa normal Quando o modo flex está selecionado
Esforço máximo de raciocínio
Tarifa normal Quando o esforço máximo de raciocínio usa o ajuste predefinido (default)

Tarifas Ailoot

Preços por configuração

Associe cada custo às condições apresentadas. Use uma única tarifa para cada conjunto de configurações alternativas.

ConfiguraçãoTabela de tarifasTokens de contexto, mais deTokens de contexto, até ao limite inclusiveCusto
ConfiguraçãoTarifas base dos tokensTabela de tarifasTarifa baseTokens de contexto, mais de—Tokens de contexto, até ao limite inclusiveSem limite superiorCusto
Entrada · Tokens de entrada $0.0002 / 1K tokens
Saída · Tokens de saída $0.0008 / 1K tokens
Entrada · Leitura da cache $0 / 1K tokens
Entrada · Escrita na cache $0 / 1K tokens
Entrada · Escrita na cache, 1 hora — / 1K tokens
ConfiguraçãoEscalão 1 por comprimento do pedidoTabela de tarifas—Tokens de contexto, mais de0Tokens de contexto, até ao limite inclusiveSem limite superiorCusto
Entrada · Tokens de entrada $0.0002 / 1K tokens
Saída · Tokens de saída $0.0008 / 1K tokens
Entrada · Leitura da cache $0 / 1K tokens
Entrada · Escrita na cache $0 / 1K tokens
Entrada · Escrita na cache, 1 hora — / 1K tokens

O Ailoot reserva um montante estimado antes de um pedido. Após o resultado, liquida o custo final com base na utilização medida. No streaming, a liquidação usa o registo final de utilização. Como funcionam a reserva e a liquidação →

Exemplos de pedidos

Ailoot Ultra · Anthropic Messages

Corpo JSON mínimo completocurl · use o seu documento UTF-8Python · guarde o resultado completo
{
  "model": "qwen/qwen3-coder-30b-a3b-instruct",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'qwen/qwen3-coder-30b-a3b-instruct', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'qwen/qwen3-coder-30b-a3b-instruct', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))

Receber e guardar os resultados

Ailoot Ultra · Anthropic Messages

JSON ou SSE

Guardar todos os resultados concluídos

Guarde cada resposta, ficheiro e parte de conteúdo devolvidos na íntegra.

Conserve todos os blocos de conteúdo, as assinaturas de raciocínio e os ID reais de utilização de ferramentas. Junte todos os deltas de blocos SSE; o primeiro bloco de texto não é a saída completa.

Se for necessário verificar a resposta original

Conserve os ID e cabeçalhos de pedido/resposta. Não é fornecido um URL genérico para obter uma tarefa textual.

Campos da resposta
CampoTipo
CampoidTipostring
CampomodelTipostring
Campocontent[]Tipotext|thinking|tool_use|other content block
Campostop_reasonTipostring|null
CampousageTipoobject
Erros e passos seguintes
RespostaCondiçãoPasso seguinte
Resposta400 · invalid_request_errorCondiçãoCampos obrigatórios, representação do material ou valor do parâmetro inválidosPasso seguinteCorrija os campos indicados antes de um novo pedido de criação.

Aliases

Aliases do modelo

Ailoot Ultra qwen/qwen3-coder-30b-a3b-instruct

Aliases dos caminhos dos métodos

Use os caminhos dos métodos indicados acima.

IDs de chamada relacionados

qwen/qwen3-coder-30b-a3b-instruct

FAQ · Qwen: Qwen3 Coder 30B A3B Instruct
Que entradas e resultados estão disponíveis?

POST /v1/chat/completions · qwen/qwen3-coder-30b-a3b-instruct: text → text

POST /v1/messages · qwen/qwen3-coder-30b-a3b-instruct: text → json, sse

Que campos utiliza o pedido?

POST /v1/chat/completions · qwen/qwen3-coder-30b-a3b-instruct: model, messages, stream, modalities, provider

POST /v1/messages · qwen/qwen3-coder-30b-a3b-instruct: model, messages, max_tokens, stream

Que limites se aplicam?

POST /v1/chat/completions · qwen/qwen3-coder-30b-a3b-instruct: messages.min_items: 1

Mais detalhes

Ligue o Ailoot ao Claude Code, OpenCode, Hermes ou à sua aplicação.

A empresa e a sua carteira de projetos

A empresa e a sua carteira de projetos: milhões de clientes; vendas mensais na ordem dos milhares de milhões.

Compre tokens com desconto.

Desconto por subscrição para trabalho regular. Códigos promocionais — até 50% na compra de tokens.

Subscrição
Escolha um plano com desconto para os pedidos regulares.
Código promocional até 50%
Introduza o código na compra. O preço é recalculado conforme a campanha em vigor.
Custos no histórico
O modelo, os tokens e o montante são guardados para cada pedido.

Escolher subscrição · Ver preços dos modelos

Ligue a API ao produto que vende.

SaaS, aplicações e bots — ao abrigo da oferta e do contrato de licença Ailoot. Para revenda, peça uma licença de revendedor.

Aplicação comercial
Integre geração de texto, imagens, vídeo e som nas funcionalidades pagas do seu serviço.
Licença de revendedor
Envie uma descrição do projeto e do modelo de acesso. Peça condições escritas de utilização e revenda.
Documentos no site
A oferta, o contrato de licença e a política de tratamento de dados estão disponíveis antes da ligação.

Pedir licença de revendedor · Oferta e contrato de licença