Source: https://ailoot.ai/models/pt-pt/qwen2-vl-7b-instruct-ultra/
Canonical: https://ailoot.ai/models/pt-pt/qwen2-vl-7b-instruct-ultra/
Language: pt-pt

# Qwen2-VL-7B-Instruct-ultra

[Markdown](https://ailoot.ai/models/pt-pt/qwen2-vl-7b-instruct-ultra/index.md) · [JSON](https://ailoot.ai/models/pt-pt/qwen2-vl-7b-instruct-ultra/facts.json)

## [Qwen2-VL-7B-Instruct-ultra](https://ailoot.ai/models/pt-pt/qwen2-vl-7b-instruct-ultra/)

Qwen2-VL-7B-Instruct é o modelo de visão e linguagem da Qwen ajustado a instruções para texto, imagens e vídeo, que devolve texto. Use-o para fazer perguntas sobre páginas de documentos, comparar imagens ou descrever acontecimentos visuais, com resolução de imagem dinâmica e limitações documentadas na contagem, no raciocínio espacial e na compreensão de áudio em vídeo.

- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `Qwen2-VL-7B-Instruct-ultra`](https://ailoot.ai/models/pt-pt/qwen2-vl-7b-instruct-ultra/#method-0)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `Qwen2-VL-7B-Instruct-ultra`](https://ailoot.ai/models/pt-pt/qwen2-vl-7b-instruct-ultra/#method-1)

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.

Introdução: a edição de visão e linguagem de 7B

Qwen2-VL-7B-Instruct é o membro de 7B de Qwen2-VL ajustado a instruções. Combina instruções de texto com imagens ou vídeo e produz respostas textuais. Os resultados úteis incluem a explicação de uma página, uma comparação de imagens, uma descrição de acontecimentos visíveis ou uma resposta a uma pergunta sobre um gráfico. Mantém-se este lançamento exato de Qwen2-VL; os checkpoints Qwen2.5-VL e Qwen3-VL mais recentes têm as suas próprias capacidades e identidades.

O que Qwen2-VL acrescenta

A Qwen descreve compreensão visual em diferentes resoluções e proporções de imagem, além de respostas a perguntas sobre vídeo, diálogo e criação de conteúdo. A capacidade de vídeo documentada da família inclui material com mais de 20 minutos. A duração, por si só, não estabelece quantos fotogramas uma aplicação processa nem garante a recordação de todos os acontecimentos. A compreensão multilingue de texto em imagens inclui inglês e chinês, muitas línguas europeias, japonês, coreano, árabe e vietnamita.

O fabricante descreve também a integração com telemóveis, robôs e outros dispositivos através de observações visuais e instruções de texto. Trata-se de um fluxo de trabalho da aplicação: o modelo interpreta o ambiente visual e ajuda a escolher ações, enquanto o software ou hardware ligado as executa. Reconhecer um ecrã não lhe dá, por si só, controlo sobre esse ecrã.

Alterações de arquitetura

A resolução dinâmica converte uma imagem num número variável de tokens visuais, em vez de obrigar todas as entradas a usar a mesma representação. M-ROPE separa a informação posicional do texto, das imagens bidimensionais e da informação de vídeo tridimensional, combinando estrutura espacial e temporal. A configuração de 7B publicada indica 32 768 posições. O texto, os tokens visuais e a saída gerada partilham o orçamento finito da sequência, pelo que a resolução das imagens e a amostragem de vídeo afetam a quantidade de material que um pedido pode incluir.

Preparar imagens e conversas

Os exemplos oficiais suportam uma imagem, várias imagens e conversas apenas de texto. Anexe a imagem com uma pergunta específica, em vez de depender de uma instrução ampla como «analise tudo». Para uma página de documento, peça campos identificados pelo nome e preserve a pontuação nas citações. Para duas capturas de ecrã de design, identifique-as como primeira e segunda e peça depois uma tabela das alterações visíveis. Para um gráfico, peça as etiquetas, as unidades e os valores que sustentam uma tendência indicada. São aplicações práticas de resposta a perguntas visuais, não promessas de extração sem erros.

Os utilitários do fabricante aceitam imagens provenientes de ficheiros locais, dados de imagem codificados ou localizações de imagens; o exemplo de vídeo documentado usa ficheiros de vídeo locais ou uma lista ordenada de fotogramas. Os formatos de carregamento da aplicação continuam a ser uma decisão separada da interface. Preserve a ordem original dos fotogramas e indique o intervalo de tempo representado por uma lista de fotogramas. Os exemplos geram texto; este checkpoint não é descrito como um gerador de imagens ou vídeo.

Resolução e preparação de vídeo

O processador da Qwen usa um intervalo predefinido de quatro a 16 384 tokens visuais por imagem. Disponibiliza min\_pixels e max\_pixels para equilibrar o pormenor com a memória e a computação, com um exemplo documentado que visa 256–1 280 tokens visuais. As imagens são redimensionadas dentro dos limites escolhidos, mantendo a sua proporção. As dimensões explícitas após redimensionamento são arredondadas para um múltiplo de 28. Uma tabela densa ou texto pequeno podem precisar de resolução suficiente para continuarem legíveis; aumentá-la também consome mais do orçamento visual e de contexto disponível.

O exemplo de vídeo apresenta uma taxa de amostragem de um fotograma por segundo e um limite de píxeis configurável. São definições de exemplo, não uma taxa universal obrigatória nem um limite rígido de conteúdos multimédia. Para rever um acontecimento, forneça o clip relevante e peça um relato ordenado das alterações visíveis. Acontecimentos muito próximos entre si podem exigir uma amostragem mais fina do que um resumo geral da cena. Qwen2-VL não compreende a informação de áudio contida nos vídeos, pelo que o diálogo falado ou os efeitos sonoros exigem um fluxo de trabalho de áudio separado.

Limitações conhecidas

A Qwen regista junho de 2023 como data-limite dos dados de treino de imagem, sem garantir conhecimento de pessoas, produtos ou acontecimentos posteriores. O reconhecimento de indivíduos específicos e de propriedades intelectuais é incompleto. Instruções complexas com vários passos, contagens de objetos em cenas cheias e relações espaciais, sobretudo em três dimensões, são fragilidades documentadas. Divida uma tarefa visual complicada em perguntas claras, peça os elementos visíveis que sustentam o resultado e confira os números extraídos e o texto citado com a imagem. Uma legenda plausível não deve ser tratada como uma contagem precisa nem como uma localização tridimensional medida.

Os exemplos breves de geração da ficha não estabelecem um limite rígido de saída separado. Planeie a dimensão da resposta a par das entradas textuais e visuais e preserve na fonte pormenor suficiente para a pergunta específica. Isto torna a seleção do modelo e a preparação da entrada mais úteis do que pressupor que qualquer imagem ou qualquer vídeo longo produz uma resposta igualmente fiável.

Tarefa prática

### Tarefa prática

Exemplo técnico em inglês

```
Compare transcribed dashboard changes

Compare these dashboard descriptions supplied as text. First: heading 'Orders', filter 'All dates', total 240. Second: heading 'Orders', filter 'This week', total 38. Return a table of changed and unchanged fields, then explain why the totals alone do not establish a fall in orders. Use only the descriptions and keep the filter labels exact.
```

#### Resultado esperado

```
A field-comparison table and a short explanation of the different date scopes.
```

#### Verificar o resultado

```
The result does not treat totals from All dates and This week as comparable periods.
```

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `Qwen2-VL-7B-Instruct-ultra`

[`Qwen2-VL-7B-Instruct-ultra`](https://ailoot.ai/models/pt-pt/#m=Qwen2-VL-7B-Instruct-ultra&route=Ultra&caller=Qwen2-VL-7B-Instruct-ultra&fmt=chat)

Outro /`Qwen2-VL-7B-Instruct-ultra`

### Introdução

Qwen2-VL-7B-Instruct é o modelo de visão e linguagem da Qwen ajustado a instruções para texto, imagens e vídeo, que devolve texto. Use-o para fazer perguntas sobre páginas de documentos, comparar imagens ou descrever acontecimentos visuais, com resolução de imagem dinâmica e limitações documentadas na contagem, no raciocínio espacial e na compreensão de áudio em vídeo.

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 |
| --- | --- | --- | --- | --- |
| Campo`model` | Tipo`string` | RequisitoObrigatório | Valores e limites Qwen2-VL-7B-Instruct-ultra | Predefinição— |
| Campo`messages` | Tipo`message[]` | RequisitoObrigatório | Valores e limites Número mínimo de elementos: 1 | Predefinição— |
| Campo`messages[].role` | Tipo`string` | 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— |
| Campo`messages[].content` | Tipo`string\|content_part[]\|null` | RequisitoOpcional | Valores e limites | Predefinição— |
| Campo`messages[].tool_calls` | Tipo`tool_call[]` | RequisitoOpcional | Valores e limites | Predefinição— |
| Campo`messages[].tool_call_id` | Tipo`string` | RequisitoOpcional | Valores e limites Aplica-se quando: role=tool; use o ID realmente devolvido | Predefinição— |
| Campo`messages[].name` | Tipo`string` | RequisitoOpcional | Valores e limites | Predefinição— |
| Campo`messages[].reasoning_content` | Tipo`string` | RequisitoOpcional | Valores e limites Aplica-se quando: Reintroduza o raciocínio realmente devolvido quando este modelo o utiliza | Predefinição— |
| Campo`messages[].reasoning_details` | Tipo`object\|array` | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
| Campo`max_tokens` | Tipo`integer` | RequisitoOpcional | Valores e limites Mínimo: 1 Depende do modelo | Predefinição— |
| Campo`max_completion_tokens` | Tipo`integer` | RequisitoOpcional | Valores e limites Mínimo: 1 Depende do modelo | Predefinição— |
| Campo`stream` | Tipo`boolean` | RequisitoOpcional | Valores e limites | Predefiniçãofalse |
| Campo`stream_options.include_usage` | Tipo`boolean` | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
| Campo`temperature` | Tipo`number` | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
| Campo`top_p` | Tipo`number` | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
| Campo`stop` | Tipo`string\|string[]` | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
| Campo`tools` | Tipo`function_tool[]` | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
| Campo`tools[].type` | Tipo`string` | RequisitoOpcional | Valores e limites function Depende do modelo | Predefinição— |
| Campo`tools[].function.name` | Tipo`string` | RequisitoObrigatório | Valores e limites Aplica-se quando: Função fornecida como ferramenta | Predefinição— |
| Campo`tools[].function.description` | Tipo`string` | RequisitoOpcional | Valores e limites | Predefinição— |
| Campo`tools[].function.parameters` | Tipo`JSON_schema` | RequisitoOpcional | Valores e limites | Predefinição— |
| Campo`tool_choice` | Tipo`string\|object` | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
| Campo`parallel_tool_calls` | Tipo`boolean` | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
| Campo`response_format` | Tipo`object` | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
| Campo`reasoning_effort` | Tipo`string` | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
| Campo`reasoning` | Tipo`object` | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
| Campo`service_tier` | Tipo`string` | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
| Campo`instructions` | Tipo`string` | RequisitoOpcional | Valores e limites Campo de compatibilidade | Predefinição— |
| Campo`functions` | Tipo`function[]` | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
| Campo`function_call` | Tipo`string\|object` | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
| Campo`prompt_cache_options` | Tipo`object` | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
| Campo`modalities` | Tipo`string[]` | RequisitoOpcional | Valores e limites text | Predefinição— |
| Campo`provider` | Tipo`object` | RequisitoOpcional | Valores e limites Condições: provider.options é rejeitado nesta rota textual Ultra | Predefinição— |
| Campo`cache_control.ttl` | Tipo`string` | 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âmetro`content_type` | Contratoapplication/json |
| Parâmetro`required` | Contratomodel, messages |
| Parâmetro`material_types` | Contratotext |
| Parâmetro`messages` | ContratoLista de mensagens com estrutura role/content |
| Parâmetro`file_material` | ContratoDocumento UTF-8 real inserido como texto literal; nenhum ID de ficheiro inferido |
| Parâmetro`optional_controls` | Contratostream, temperature, top\_p, stop, max\_tokens, max\_completion\_tokens, reasoning, response\_format, tools, tool\_choice |
| Parâmetro`control_scope` | ContratoEspecífico do modelo; as ferramentas de funções do utilizador diferem das ferramentas alojadas |
| Parâmetro`output_modalities` | Contratotext |
| Parâmetro`hosted_operations` | Contratofalse |
| Parâmetro`multimodal_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

Não especificado Quando o modo rápido está selecionado

Modo flex

Não especificado Quando o modo flex está selecionado

Esforço máximo de raciocínio

Não especificado Quando o esforço máximo de raciocínio usa o ajuste predefinido (default)

#### Tarifas Ailoot

#### Preços por configuração

| Configuração | Tabela de tarifas | Custo |
| --- | --- | --- |
| ConfiguraçãoTarifas base dos tokens | Tabela de tarifasTarifa base | Custo Entrada · Tokens de entrada **$0.00058** / 1K tokens Saída · Tokens de saída **$0.00142** / 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 →](https://ailoot.ai/docs/pt-pt/billing/reserve/)

### Exemplos de pedidos

#### Ailoot Ultra · OpenAI Chat

curlPython SDKStreaming em Python

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "Qwen2-VL-7B-Instruct-ultra", "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
```

```python
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='Qwen2-VL-7B-Instruct-ultra',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"))
```

```python
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='Qwen2-VL-7B-Instruct-ultra',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 |
| --- | --- |
| Campo`choices[].index` | Tipointeger |
| Campo`choices[].message.content` | Tipostring\|null |
| Campo`choices[].message.tool_calls` | Tipotool\_call\[\] |
| Campo`choices[].message.reasoning_content` | Tipostring |
| Campo`choices[].message.reasoning_details` | Tipoobject\|array |
| Campo`choices[].finish_reason` | Tipostring\|null |
| Campo`usage` | 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** [`Qwen2-VL-7B-Instruct-ultra`](https://ailoot.ai/models/pt-pt/#m=Qwen2-VL-7B-Instruct-ultra&route=Ultra&caller=Qwen2-VL-7B-Instruct-ultra&fmt=chat)

#### Aliases dos caminhos dos métodos

Use os caminhos dos métodos indicados acima.

#### IDs de chamada relacionados

[`Qwen2-VL-7B-Instruct-ultra`](https://ailoot.ai/models/pt-pt/#m=Qwen2-VL-7B-Instruct-ultra&route=Ultra&caller=Qwen2-VL-7B-Instruct-ultra&fmt=chat)

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `Qwen2-VL-7B-Instruct-ultra`

[`Qwen2-VL-7B-Instruct-ultra`](https://ailoot.ai/models/pt-pt/#m=Qwen2-VL-7B-Instruct-ultra&route=Ultra&caller=Qwen2-VL-7B-Instruct-ultra&fmt=messages)

Outro /`Qwen2-VL-7B-Instruct-ultra`

### Introdução

Qwen2-VL-7B-Instruct é o modelo de visão e linguagem da Qwen ajustado a instruções para texto, imagens e vídeo, que devolve texto. Use-o para fazer perguntas sobre páginas de documentos, comparar imagens ou descrever acontecimentos visuais, com resolução de imagem dinâmica e limitações documentadas na contagem, no raciocínio espacial e na compreensão de áudio em vídeo.

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 |
| --- | --- | --- | --- | --- |
| Campo`model` | Tipo`string` | RequisitoObrigatório | Valores e limites Qwen2-VL-7B-Instruct-ultra | Predefinição— |
| Campo`messages` | Tipo`message[]` | RequisitoObrigatório | Valores e limites | Predefinição— |
| Campo`messages[].role` | Tipo`string` | RequisitoObrigatório | Valores e limites user, assistant | Predefinição— |
| Campo`messages[].content` | Tipo`string` | RequisitoObrigatório | Valores e limites | Predefinição— |
| Campo`max_tokens` | Tipo`integer` | RequisitoObrigatório | Valores e limites | Predefinição— |
| Campo`stream` | Tipo`boolean` | 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âmetro`content_type` | Contratoapplication/json |
| Parâmetro`required` | Contratomodel, messages, max\_tokens |
| Parâmetro`optional_controls` | Contratostream |
| Parâmetro`material_types` | Contratotext |
| Parâmetro`text_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

Não especificado Quando o modo rápido está selecionado

Modo flex

Não especificado Quando o modo flex está selecionado

Esforço máximo de raciocínio

Não especificado Quando o esforço máximo de raciocínio usa o ajuste predefinido (default)

#### Tarifas Ailoot

#### Preços por configuração

| Configuração | Tabela de tarifas | Custo |
| --- | --- | --- |
| ConfiguraçãoTarifas base dos tokens | Tabela de tarifasTarifa base | Custo Entrada · Tokens de entrada **$0.00058** / 1K tokens Saída · Tokens de saída **$0.00142** / 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 →](https://ailoot.ai/docs/pt-pt/billing/reserve/)

### Exemplos de pedidos

#### Ailoot Ultra · Anthropic Messages

Corpo JSON mínimo completocurl · use o seu documento UTF-8Python · guarde o resultado completo

```json
{
  "model": "Qwen2-VL-7B-Instruct-ultra",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
```

```bash
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': 'Qwen2-VL-7B-Instruct-ultra', '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
```

```python
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': 'Qwen2-VL-7B-Instruct-ultra', '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 |
| --- | --- |
| Campo`id` | Tipostring |
| Campo`model` | Tipostring |
| Campo`content[]` | Tipotext\|thinking\|tool\_use\|other content block |
| Campo`stop_reason` | Tipostring\|null |
| Campo`usage` | 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** [`Qwen2-VL-7B-Instruct-ultra`](https://ailoot.ai/models/pt-pt/#m=Qwen2-VL-7B-Instruct-ultra&route=Ultra&caller=Qwen2-VL-7B-Instruct-ultra&fmt=messages)

#### Aliases dos caminhos dos métodos

Use os caminhos dos métodos indicados acima.

#### IDs de chamada relacionados

[`Qwen2-VL-7B-Instruct-ultra`](https://ailoot.ai/models/pt-pt/#m=Qwen2-VL-7B-Instruct-ultra&route=Ultra&caller=Qwen2-VL-7B-Instruct-ultra&fmt=messages)

FAQ · Qwen2-VL-7B-Instruct-ultra

Que entradas e resultados estão disponíveis?

`POST /v1/chat/completions` · `Qwen2-VL-7B-Instruct-ultra`: `text` → `text` `POST /v1/messages` · `Qwen2-VL-7B-Instruct-ultra`: `text` → `json`, `sse`

Que campos utiliza o pedido?

`POST /v1/chat/completions` · `Qwen2-VL-7B-Instruct-ultra`: `model`, `messages`, `stream`, `modalities`, `provider` `POST /v1/messages` · `Qwen2-VL-7B-Instruct-ultra`: `model`, `messages`, `max_tokens`, `stream`

Que limites se aplicam?

`POST /v1/chat/completions` · `Qwen2-VL-7B-Instruct-ultra`: `messages.min_items`: `1`

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](https://ailoot.ai/docs/pt-pt/billing/subscriptions/) · [Ver preços dos modelos](https://ailoot.ai/models/pt-pt/)

## 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](mailto:support@ailoot.ai) · [Oferta e contrato de licença](https://ailoot.ai/legal/offer?lang=pt-pt)

## Ailoot · A empresa e a sua carteira de projetos





A Ailoot assenta numa experiência operacional consolidada, numa ampla base de clientes, num serviço estável e no acompanhamento contínuo dos KPI.





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





A Ailoot aplica essa experiência operacional ao acesso por API a funcionalidades de IA nos produtos dos clientes, agentes, aplicações e automatizações.
