Qwen: Qwen3 VL 8B Instruct
Qwen3-VL-8B-Instruct é o modelo denso de visão e linguagem da Qwen orientado para instruções, para texto, imagens e vídeo, com saída textual ou código. Suporta leitura documental, programação visual, perguntas espaciais e análise de vídeo, com OCR em 32 idiomas e contexto nativo de 262,144 tokens.
- Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionsqwen/qwen3-vl-8b-instruct - Ailoot Ultra · Anthropic Messages
POST /v1/messagesqwen/qwen3-vl-8b-instruct
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.
A edição 8B Instruct de visão e linguagem
Qwen3-VL-8B-Instruct é a edição densa 8B do Qwen3-VL orientada para instruções. Combina texto com imagens ou vídeo e produz texto, incluindo código. Mantém-se separada da edição Thinking reforçada em raciocínio e dos modelos de especialistas esparsos da mesma família. Escolha-a para uma instrução visual focada, pergunta documental ou artefacto editável cujo resultado possa ser comparado com as provas fornecidas.
Agentes visuais e programação visual
O fabricante descreve reconhecimento de elementos de interfaces de computador ou telemóvel, compreensão das suas funções e utilização de ferramentas num fluxo de agente visual. Forneça uma captura de ecrã e um objetivo concreto e pergunte que controlos visíveis correspondem a esse objetivo e que provas sustentam a escolha. O software ligado executa ações; reconhecer uma interface não dá, de forma independente, controlo de um dispositivo ao modelo.
A programação visual inclui produzir conteúdo de diagramas e HTML, CSS ou JavaScript a partir de imagens ou vídeo. Forneça a referência de disposição com os requisitos funcionais e a saída editável exigida. Peça estrutura de código-fonte e estilos separadamente quando isso facilitar a revisão. O código gerado é um artefacto textual; continua a precisar de um fluxo de desenvolvimento para renderização e avaliação do comportamento.
Perceção espacial e material longo
A Qwen documenta raciocínio sobre posições de objetos, pontos de vista e oclusões, com localização bidimensional e suporte de localização tridimensional. Nomeie o objeto-alvo e indique a relação a examinar. Um resultado sobre posição relativa é uma inferência da imagem, não uma medida física calibrada.
O contexto nativo é de 262,144 tokens. A família descreve livros e vídeos de várias horas, com indexação de eventos ao segundo e expansão até cerca de um milhão de tokens por configuração. A representação, a amostragem de fotogramas e o limite de sequência configurado determinam o material processado. Um contexto grande não garante recordação completa de todas as páginas ou fotogramas. Preserve os tempos ao pedir um relato de eventos de vídeo.
Raciocínio multimodal, reconhecimento e OCR
A família suporta perguntas STEM e matemáticas, análise causal e explicações visuais baseadas em provas. Forneça o enunciado completo com um diagrama e peça os valores e relações utilizados antes da conclusão. O reconhecimento abrange uma ampla variedade de pessoas, produtos, pontos de referência, plantas, animais e personagens de conteúdos mediáticos; um rótulo plausível deve ser verificado quando a identificação importar.
O OCR abrange 32 idiomas e foi concebido para melhorar a leitura com pouca luz, desfocagem ou inclinação, incluindo vocabulário especializado e estrutura de documentos longos. Forneça uma página legível e peça campos identificados, citações ou uma tabela estruturada que possa ser verificada face à página. A compreensão textual e visual combinam-se, pelo que uma pergunta pode relacionar um parágrafo com uma figura e as instruções do utilizador.
Atualizações arquiteturais
A configuração textual densa publicada tem 36 camadas. Interleaved-MRoPE representa tempo, largura e altura para raciocínio sobre vídeo. DeepStack combina características de vários níveis do codificador visual, e o alinhamento texto–marcas temporais ancora eventos em referências temporais. Estas características arquiteturais descrevem a representação do modelo; não estabelecem um tempo de resposta fixo nem exatidão física absoluta.
Preparar a entrada
Os exemplos da família do fabricante abrangem pedidos só de texto, uma ou várias imagens e vídeo. Identifique as entradas visuais e indique a sua relação. Os orçamentos de píxeis de imagem e vídeo são separados: um orçamento de imagem diz respeito a uma imagem, enquanto um orçamento de vídeo diz respeito aos píxeis dos fotogramas amostrados. Dimensões explícitas de imagem são alinhadas com múltiplos de 32. A predefinição documentada de vídeo é de dois fotogramas por segundo, com controlos de frequência ou contagem de fotogramas nos fluxos suportados.
O fluxo auxiliar preserva metadados de vídeo e aconselha evitar redimensionamento duplicado quando a multimédia já tiver sido redimensionada. Numa tarefa documental, conserve identificadores de páginas; num excerto, peça o evento, o intervalo relevante e as provas visíveis. Estes exemplos de preparação aplicam capacidades documentadas, em vez de garantir extração exata ou precisão temporal.
Orientações de geração e limites
Esta ficha exata fornece predefinições separadas por tarefa. As tarefas de visão e linguagem utilizam temperature 0.7, top_p 0.8, top_k 20, penalização de repetição 1.0 e penalização de presença 1.5, com saída até 16,384 tokens. As tarefas textuais utilizam temperature 1.0, top_p 1.0, top_k 40, penalização de repetição 1.0 e penalização de presença 2.0, com limite de 32,768 tokens. São orçamentos da receita do produtor, não limites rígidos de saída estabelecidos independentemente nem identidades separadas de modelo.
O procedimento de contexto longo da família utiliza YaRN, sugerindo um fator de dois ou três ao estender as posições intercaladas de 256K para cerca de 1M. Não copie um fator de quatro de outra família Qwen. Reserve espaço para a resposta juntamente com a entrada visual e textual e confira OCR, conclusões calculadas e código-fonte gerado com o material original. Mantenha a edição Instruct exata, em vez de importar o contrato de geração ou controlos de um checkpoint Thinking.
Tarefa prática
Tarefa prática
Exemplo técnico em inglês
Read a text diagram relationship
Use this text rendering of diagram D4: source A feeds filter B; B feeds tanks C and D; only D connects to drain E. List the directed path from A to E and name the tank on that path. Do not add physical dimensions or connections absent from the rendering.Resultado esperado
A labeled directed path and the tank identifier supported by D4.Verificar o resultado
The path must follow the stated arrows and must not add a C-to-E connection.Ailoot Ultra · OpenAI Chat POST /v1/chat/completions qwen/qwen3-vl-8b-instruct
qwen/qwen3-vl-8b-instructIntrodução
Qwen3-VL-8B-Instruct é o modelo denso de visão e linguagem da Qwen orientado para instruções, para texto, imagens e vídeo, com saída textual ou código. Suporta leitura documental, programação visual, perguntas espaciais e análise de vídeo, com OCR em 32 idiomas e contexto nativo de 262,144 tokens.
- 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
| Campo | Tipo | Requisito | Valores e limites | Predefinição |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObrigatório | Valores e limites qwen/qwen3-vl-8b-instruct | Predefinição— |
Campomessages | Tipomessage[] | RequisitoObrigatório | Valores e limites Número mínimo de elementos: 1 | Predefinição— |
Campomessages[].role | Tipostring | RequisitoObrigatório | Valores 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[].content | Tipostring|content_part[]|null | RequisitoOpcional | Valores e limites | Predefinição— |
Campomessages[].tool_calls | Tipotool_call[] | RequisitoOpcional | Valores e limites | Predefinição— |
Campomessages[].tool_call_id | Tipostring | RequisitoOpcional | Valores e limites Aplica-se quando: role=tool; use o ID realmente devolvido | Predefinição— |
Campomessages[].name | Tipostring | RequisitoOpcional | Valores e limites | Predefinição— |
Campomessages[].reasoning_content | Tipostring | RequisitoOpcional | Valores e limites Aplica-se quando: Reintroduza o raciocínio realmente devolvido quando este modelo o utiliza | Predefinição— |
Campomessages[].reasoning_details | Tipoobject|array | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campomax_tokens | Tipointeger | RequisitoOpcional | Valores e limites Mínimo: 1 Depende do modelo | Predefinição— |
Campomax_completion_tokens | Tipointeger | RequisitoOpcional | Valores e limites Mínimo: 1 Depende do modelo | Predefinição— |
Campostream | Tipoboolean | RequisitoOpcional | Valores e limites | Predefiniçãofalse |
Campostream_options.include_usage | Tipoboolean | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campotemperature | Tiponumber | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campotop_p | Tiponumber | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campostop | Tipostring|string[] | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campotools | Tipofunction_tool[] | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campotools[].type | Tipostring | RequisitoOpcional | Valores e limites function Depende do modelo | Predefinição— |
Campotools[].function.name | Tipostring | RequisitoObrigatório | Valores e limites Aplica-se quando: Função fornecida como ferramenta | Predefinição— |
Campotools[].function.description | Tipostring | RequisitoOpcional | Valores e limites | Predefinição— |
Campotools[].function.parameters | TipoJSON_schema | RequisitoOpcional | Valores e limites | Predefinição— |
Campotool_choice | Tipostring|object | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campoparallel_tool_calls | Tipoboolean | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Camporesponse_format | Tipoobject | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Camporeasoning_effort | Tipostring | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Camporeasoning | Tipoobject | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Camposervice_tier | Tipostring | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campoinstructions | Tipostring | RequisitoOpcional | Valores e limites Campo de compatibilidade | Predefinição— |
Campofunctions | Tipofunction[] | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campofunction_call | Tipostring|object | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campoprompt_cache_options | Tipoobject | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campomodalities | Tipostring[] | RequisitoOpcional | Valores e limites text | Predefinição— |
Campoprovider | Tipoobject | RequisitoOpcional | Valores e limites Condições: provider.options é rejeitado nesta rota textual Ultra | Predefinição— |
Campocache_control.ttl | Tipostring | RequisitoOpcional | Valores 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âmetro | Contrato |
|---|---|
Parâmetrocontent_type | Contratoapplication/json |
Parâmetrorequired | Contratomodel, messages |
Parâmetromaterial_types | Contratotext |
Parâmetromessages | ContratoLista de mensagens com estrutura role/content |
Parâmetrofile_material | ContratoDocumento UTF-8 real inserido como texto literal; nenhum ID de ficheiro inferido |
Parâmetrooptional_controls | Contratostream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice |
Parâmetrocontrol_scope | ContratoEspecífico do modelo; as ferramentas de funções do utilizador diferem das ferramentas alojadas |
Parâmetrooutput_modalities | Contratotext |
Parâmetrohosted_operations | Contratofalse |
Parâmetromultimodal_input_binding | Contratonull |
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ção | Tabela de tarifas | Tokens de contexto, mais de | Tokens de contexto, até ao limite inclusive | Custo |
|---|---|---|---|---|
| ConfiguraçãoTarifas base dos tokens | Tabela de tarifasTarifa base | Tokens de contexto, mais de— | Tokens de contexto, até ao limite inclusiveSem limite superior | Custo Entrada · Tokens de entrada $0.0005 / 1K tokens Saída · Tokens de saída $0.0015 / 1K tokens Entrada · Leitura da cache $0.00024 / 1K tokens Entrada · Escrita na cache — / 1K tokens Entrada · Escrita na cache, 1 hora — / 1K tokens |
| ConfiguraçãoEscalão 1 por comprimento do pedido | Tabela de tarifas— | Tokens de contexto, mais de0 | Tokens de contexto, até ao limite inclusiveSem limite superior | Custo Entrada · Tokens de entrada $0.0005 / 1K tokens Saída · Tokens de saída $0.0015 / 1K tokens Entrada · Leitura da cache $0.00024 / 1K tokens Entrada · Escrita na cache — / 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
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-vl-8b-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-vl-8b-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-vl-8b-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
| Campo | Tipo |
|---|---|
Campochoices[].index | Tipointeger |
Campochoices[].message.content | Tipostring|null |
Campochoices[].message.tool_calls | Tipotool_call[] |
Campochoices[].message.reasoning_content | Tipostring |
Campochoices[].message.reasoning_details | Tipoobject|array |
Campochoices[].finish_reason | Tipostring|null |
Campousage | Tipoobject |
Erros e passos seguintes
| Resposta | Condição | Passo seguinte |
|---|---|---|
Resposta400 · invalid_request_error | CondiçãoCampos obrigatórios, representação do material ou valor do parâmetro inválidos | Passo seguinteCorrija os campos indicados antes de um novo pedido de criação. |
Aliases
Aliases do modelo
Ailoot Ultra qwen/qwen3-vl-8b-instruct
Aliases dos caminhos dos métodos
Use os caminhos dos métodos indicados acima.
IDs de chamada relacionados
Ailoot Ultra · Anthropic Messages POST /v1/messages qwen/qwen3-vl-8b-instruct
qwen/qwen3-vl-8b-instructIntrodução
Qwen3-VL-8B-Instruct é o modelo denso de visão e linguagem da Qwen orientado para instruções, para texto, imagens e vídeo, com saída textual ou código. Suporta leitura documental, programação visual, perguntas espaciais e análise de vídeo, com OCR em 32 idiomas e contexto nativo de 262,144 tokens.
- 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
| Campo | Tipo | Requisito | Valores e limites | Predefinição |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObrigatório | Valores e limites qwen/qwen3-vl-8b-instruct | Predefinição— |
Campomessages | Tipomessage[] | RequisitoObrigatório | Valores e limites | Predefinição— |
Campomessages[].role | Tipostring | RequisitoObrigatório | Valores e limites user, assistant | Predefinição— |
Campomessages[].content | Tipostring | RequisitoObrigatório | Valores e limites | Predefinição— |
Campomax_tokens | Tipointeger | RequisitoObrigatório | Valores e limites | Predefinição— |
Campostream | Tipoboolean | RequisitoOpcional | Valores e limites | Predefiniçã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âmetro | Contrato |
|---|---|
Parâmetrocontent_type | Contratoapplication/json |
Parâmetrorequired | Contratomodel, messages, max_tokens |
Parâmetrooptional_controls | Contratostream |
Parâmetromaterial_types | Contratotext |
Parâmetrotext_file_material | ContratoLeia 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ção | Tabela de tarifas | Tokens de contexto, mais de | Tokens de contexto, até ao limite inclusive | Custo |
|---|---|---|---|---|
| ConfiguraçãoTarifas base dos tokens | Tabela de tarifasTarifa base | Tokens de contexto, mais de— | Tokens de contexto, até ao limite inclusiveSem limite superior | Custo Entrada · Tokens de entrada $0.0005 / 1K tokens Saída · Tokens de saída $0.0015 / 1K tokens Entrada · Leitura da cache $0.00024 / 1K tokens Entrada · Escrita na cache — / 1K tokens Entrada · Escrita na cache, 1 hora — / 1K tokens |
| ConfiguraçãoEscalão 1 por comprimento do pedido | Tabela de tarifas— | Tokens de contexto, mais de0 | Tokens de contexto, até ao limite inclusiveSem limite superior | Custo Entrada · Tokens de entrada $0.0005 / 1K tokens Saída · Tokens de saída $0.0015 / 1K tokens Entrada · Leitura da cache $0.00024 / 1K tokens Entrada · Escrita na cache — / 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
{
"model": "qwen/qwen3-vl-8b-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-vl-8b-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-vl-8b-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
| Campo | Tipo |
|---|---|
Campoid | Tipostring |
Campomodel | Tipostring |
Campocontent[] | Tipotext|thinking|tool_use|other content block |
Campostop_reason | Tipostring|null |
Campousage | Tipoobject |
Erros e passos seguintes
| Resposta | Condição | Passo seguinte |
|---|---|---|
Resposta400 · invalid_request_error | CondiçãoCampos obrigatórios, representação do material ou valor do parâmetro inválidos | Passo seguinteCorrija os campos indicados antes de um novo pedido de criação. |
Aliases
Aliases do modelo
Ailoot Ultra qwen/qwen3-vl-8b-instruct
Aliases dos caminhos dos métodos
Use os caminhos dos métodos indicados acima.
IDs de chamada relacionados
FAQ · Qwen: Qwen3 VL 8B Instruct
- Que entradas e resultados estão disponíveis?
POST /v1/chat/completions·qwen/qwen3-vl-8b-instruct:text→textPOST /v1/messages·qwen/qwen3-vl-8b-instruct:text→json,sse- Que campos utiliza o pedido?
POST /v1/chat/completions·qwen/qwen3-vl-8b-instruct:model,messages,stream,modalities,providerPOST /v1/messages·qwen/qwen3-vl-8b-instruct:model,messages,max_tokens,stream- Que limites se aplicam?
POST /v1/chat/completions·qwen/qwen3-vl-8b-instruct:messages.min_items:1