Source: https://ailoot.ai/models/cs/qwen-qwen2-vl-72b-instruct/
Canonical: https://ailoot.ai/models/cs/qwen-qwen2-vl-72b-instruct/
Language: cs

# Qwen2 VL 72B Instruct

[Markdown](https://ailoot.ai/models/cs/qwen-qwen2-vl-72b-instruct/index.md) · [JSON](https://ailoot.ai/models/cs/qwen-qwen2-vl-72b-instruct/facts.json)

## [Qwen2 VL 72B Instruct](https://ailoot.ai/models/cs/qwen-qwen2-vl-72b-instruct/)

Qwen2-VL-72B-Instruct kombinuje text, obrazy a video pro vizuální otázky, čtení dokumentů a vícejazyčný text v obrazech. Výrobce popisuje porozumění videu delšímu než 20 minut, dynamické rozlišení obrazů a integrace vizuálních agentů; odpověď je text.

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

O modelu

Tento popis zahrnuje schopnosti modelu. Vstupy, výstupy a možnosti dostupné v Ailoot jsou uvedeny níže pro vybranou metodu.

Qwen2-VL-72B-Instruct je vizuálně-jazykové vydání 72B doladěné pro instrukce, postavené kolem Qwen2. Přijímá text spolu s obrazy nebo videem a generuje textovou odpověď. Výrobce zdůrazňuje porozumění obrazům s různými rozlišeními a poměry stran, interpretaci textu uvnitř obrazů, uvažování o viditelných vztazích a odpovídání na otázky o videích delších než 20 minut.

Obrazové a video schopnosti

U stránky dokumentu požadujte konkrétní potřebný obsah: odstavec, řádek tabulky, vzorec nebo podmínky připojené k tvrzení. Stránku ponechte čitelnou a uveďte, zda má výsledek přepsat znění, shrnout je nebo vysvětlit jeho význam. Užitečný dokumentový výstup může zachovat původní označení oddílu vedle extrahovaného obsahu. U diagramu se ptejte, jak jsou označené prvky propojeny, a určete vztah, který potřebuje vysvětlení.

Dokumentované použití videa zahrnuje otázky, dialog a psaný obsah založený na viditelné sekvenci. Definujte událost nebo změnu k prozkoumání: kdy se objekt objeví, co se děje před konkrétním krokem nebo jak předvedená akce souvisí s písemným postupem. Požádejte o uspořádaný popis událostí nebo porovnání viditelných kroků s dodaným postupem. Tvrzení výrobce o více než 20 minutách popisuje porozumění dlouhému videu; není pevnou maximální délkou videa ani zárukou, že každý nezpracovaný klip vyhoví nezměněné vstupní konfiguraci.

Použití vizuálních agentů

Vydání také zaměřuje Qwen2-VL na vizuální agenty propojené s mobilními zařízeními, roboty a dalšími nástroji. Oznámení popisuje scénáře volání funkcí a interpretu kódu, například tvorbu kódu z diagramu nebo použití vizuální otázky k vyžádání externího vyhledání. Aplikace používající model poskytuje tyto nástroje, provádí navrženou akci a vrací výsledek. Samotná textová odpověď modelu nekliká na ovládací prvek, nepohybuje zařízením ani nespouští vygenerovaný program.

Praktický úkol rozhraní může dodat snímek obrazovky a cíl uživatele a poté požádat o viditelný ovládací prvek relevantní pro další krok a důkazy podporující tuto volbu. Pozorování, navrhovanou akci a skutečné provedení ponechte jako samostatné části postupu. Využívá to zaměření na vizuální agenty a současně konkretizuje požadovaný výsledek dostatečně pro následnou akci aplikace.

Vícejazyčný text uvnitř obrazů

Výrobce popisuje rozpoznávání textu v obrazech v angličtině a čínštině, ve většině evropských jazyků a v jazycích včetně japonštiny, korejštiny, arabštiny a vietnamštiny. K vícejazyčné stránce tak lze přistoupit jako k vizuálnímu čtení. Pokud záleží na přesném znění, nejprve požadujte původní přepis a potom překlad nebo vysvětlení ve zvoleném jazyce. Zachovejte popisky a čísla místo míchání rozpoznávání s neurčeným přepisováním.

Dynamické rozlišení a poziční informace

Qwen2-VL kombinuje vizuální enkodér s jazykovým modelem Qwen2. Naive Dynamic Resolution mapuje různé velikosti obrazů na různé počty vizuálních tokenů. Multimodal Rotary Position Embedding odděluje poziční informace, aby model mohl reprezentovat pořadí textu, dvourozměrné obrazy a časovou a prostorovou strukturu videa. Tyto vlastnosti vysvětlují, jak stejná rodina zpracovává stránku, několik obrazů nebo sekvenci videa.

Obrazový procesor karty modelu dokumentuje výchozí rozsah 4 až 16 384 vizuálních tokenů na obraz. Aplikace může upravovat minimální a maximální počet pixelů při zachování poměru stran nebo požadovat rozměry zaokrouhlované na násobek 28. Příklad rozsahu 256 až 1 280 tokenů je konfigurovatelná ilustrace, nikoli samostatný univerzální obrazový limit. Více detailů obrazu spotřebuje více výpočtů a vizuálních tokenů, proto při přípravě zachovejte popisky, záhlaví a malé objekty potřebné pro otázku.

Příprava vstupu a kontext

Výrobce ukazuje jediný obraz, více obrazů, video dodané jako sekvence snímků nebo místní soubor a dávkové konverzace. Příprava obrazů zahrnuje místní soubory, zakódovaná obrazová data a obrazové reference. Příklad videa v kartě používá zvolenou snímkovou frekvenci; tento příklad nestanovuje jednu povinnou vzorkovací frekvenci pro každé video. Určete pořadí a roli více obrazů a dodejte informace potřebné k interpretaci sekvence místo zacházení s nesouvisejícími snímky jako s jedinou scénou.

Vydaná konfigurace nastavuje maximální počet pozic na 32 768. Vizuální materiál a textové instrukce je třeba plánovat v rámci skutečně nakonfigurovaného kontextu. Příklad generování 128 tokenů v kartě je pouze nastavení příkladu; nepublikuje samostatnou maximální výstupní kapacitu. Vydání 72B si má zachovat vlastní konfiguraci místo přebírání nastavení dlouhého kontextu z Qwen2.5-VL nebo jiného modelu Qwen.

Podstatná omezení

Výrobce výslovně uvádí, že Qwen2-VL nerozumí zvuku obsaženému ve videích. Pokud na něm otázka závisí, je proto třeba mluvené informace poskytnout samostatně. Obrazová trénovací data jsou popsána jako aktualizovaná do června 2023; jde o tvrzení o tomto souboru dat, nikoli slib aktuálních vizuálních znalostí.

Dokumentovaná omezení zahrnují také neúplné rozpoznávání konkrétních lidí nebo pojmenovaných objektů duševního vlastnictví, obtíže se složitými vícekrokovými instrukcemi, slabé počítání ve složitých scénách a omezení trojrozměrného prostorového uvažování. Pokud úkol závisí na jedné z těchto schopností, zaměřte otázku na požadované objekty nebo vztah a zachovejte vizuální důkazy vedle odpovědi. Jasný zdrojový materiál a definovaný výstup usnadňují kontrolu výsledku bez nahrazování uvedených omezení zárukou přesnosti.

Praktická úloha

### Praktická úloha

Technický příklad v angličtině

```
Read a supplied document transcription

Use this text transcription of page P2, section Limits: 'Store below 25 C. Once opened, use within seven days. Do not freeze.' Return the original wording first, then a plain-English explanation separating the temperature, time and freezing conditions. Preserve P2 as the source label. No image or video is attached.
```

#### Očekávaný výsledek

```
A labelled transcription followed by three source-grounded explanations of the conditions.
```

#### Ověření výsledku

```
Below 25 C is not rewritten as at or below 25 C, and the seven-day period starts at opening.
```

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

[`Qwen/Qwen2-VL-72B-Instruct`](https://ailoot.ai/models/cs/#m=Qwen%2FQwen2-VL-72B-Instruct&route=Ultra&caller=Qwen%2FQwen2-VL-72B-Instruct&fmt=chat)

Alibaba /`Qwen/Qwen2-VL-72B-Instruct`

### Úvod

Qwen2-VL-72B-Instruct kombinuje text, obrazy a video pro vizuální otázky, čtení dokumentů a vícejazyčný text v obrazech. Výrobce popisuje porozumění videu delšímu než 20 minut, dynamické rozlišení obrazů a integrace vizuálních agentů; odpověď je text.

Přijímané vstupy

Text

Výsledky

Text

### Dostupné v Ailoot · vstupy a metody

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions`

Vstup

`text`

Výstup

`text`

Výstupní formát

json nebo SSE

| Pole | Typ | Požadavek | Hodnoty a limity | Výchozí |
| --- | --- | --- | --- | --- |
| Pole`model` | Typ`string` | PožadavekPovinné | Hodnoty a limity Qwen/Qwen2-VL-72B-Instruct | Výchozí— |
| Pole`messages` | Typ`message[]` | PožadavekPovinné | Hodnoty a limity Minimální počet položek: 1 | Výchozí— |
| Pole`messages[].role` | Typ`string` | PožadavekPovinné | Hodnoty a limity Příklady: system, user, assistant, tool, function Podmínky: Tyto role jsou výslovně zastoupeny typy kompatibility zdrojového kódu; přesná sada rolí zůstává specifická pro daný model. Závisí na modelu | Výchozí— |
| Pole`messages[].content` | Typ`string\|content_part[]\|null` | PožadavekVolitelné | Hodnoty a limity | Výchozí— |
| Pole`messages[].tool_calls` | Typ`tool_call[]` | PožadavekVolitelné | Hodnoty a limity | Výchozí— |
| Pole`messages[].tool_call_id` | Typ`string` | PožadavekVolitelné | Hodnoty a limity Platí, když: role=tool; použijte skutečně vrácené ID | Výchozí— |
| Pole`messages[].name` | Typ`string` | PožadavekVolitelné | Hodnoty a limity | Výchozí— |
| Pole`messages[].reasoning_content` | Typ`string` | PožadavekVolitelné | Hodnoty a limity Platí, když: Předávejte zpět skutečně vrácené uvažování tam, kde je tento model používá | Výchozí— |
| Pole`messages[].reasoning_details` | Typ`object\|array` | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
| Pole`max_tokens` | Typ`integer` | PožadavekVolitelné | Hodnoty a limity Minimum: 1 Závisí na modelu | Výchozí— |
| Pole`max_completion_tokens` | Typ`integer` | PožadavekVolitelné | Hodnoty a limity Minimum: 1 Závisí na modelu | Výchozí— |
| Pole`stream` | Typ`boolean` | PožadavekVolitelné | Hodnoty a limity | Výchozífalse |
| Pole`stream_options.include_usage` | Typ`boolean` | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
| Pole`temperature` | Typ`number` | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
| Pole`top_p` | Typ`number` | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
| Pole`stop` | Typ`string\|string[]` | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
| Pole`tools` | Typ`function_tool[]` | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
| Pole`tools[].type` | Typ`string` | PožadavekVolitelné | Hodnoty a limity function Závisí na modelu | Výchozí— |
| Pole`tools[].function.name` | Typ`string` | PožadavekPovinné | Hodnoty a limity Platí, když: nástroj typu funkce je dodán | Výchozí— |
| Pole`tools[].function.description` | Typ`string` | PožadavekVolitelné | Hodnoty a limity | Výchozí— |
| Pole`tools[].function.parameters` | Typ`JSON_schema` | PožadavekVolitelné | Hodnoty a limity | Výchozí— |
| Pole`tool_choice` | Typ`string\|object` | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
| Pole`parallel_tool_calls` | Typ`boolean` | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
| Pole`response_format` | Typ`object` | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
| Pole`reasoning_effort` | Typ`string` | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
| Pole`reasoning` | Typ`object` | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
| Pole`service_tier` | Typ`string` | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
| Pole`instructions` | Typ`string` | PožadavekVolitelné | Hodnoty a limity Pole kompatibility | Výchozí— |
| Pole`functions` | Typ`function[]` | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
| Pole`function_call` | Typ`string\|object` | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
| Pole`prompt_cache_options` | Typ`object` | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
| Pole`modalities` | Typ`string[]` | PožadavekVolitelné | Hodnoty a limity text | Výchozí— |
| Pole`provider` | Typ`object` | PožadavekVolitelné | Hodnoty a limity Podmínky: provider.options je na této textové trase Ultra odmítáno | Výchozí— |
| Pole`cache_control.ttl` | Typ`string` | PožadavekVolitelné | Hodnoty a limity Podmínky: Hodnota 1h je ve skutečných umístěních mezipaměti promptů odmítána | Výchozí— |

Kombinace vstupních materiálů

**Text** · text UTF8

`messages[].content`

Parametry a životní cyklus metody

| Parametr | Kontrakt |
| --- | --- |
| Parametr`content_type` | Kontraktapplication/json |
| Parametr`required` | Kontraktmodel, messages |
| Parametr`material_types` | Kontrakttext |
| Parametr`messages` | Kontraktpole zpráv se strukturou role/content |
| Parametr`file_material` | Kontraktskutečný dokument UTF-8 vložený jako doslovný text; ID souboru se neodvozuje |
| Parametr`optional_controls` | Kontraktstream, temperature, top\_p, stop, max\_tokens, max\_completion\_tokens, reasoning, response\_format, tools, tool\_choice |
| Parametr`control_scope` | Kontraktspecifické pro model; nástroje uživatelských funkcí se liší od hostovaných nástrojů |
| Parametr`output_modalities` | Kontrakttext |
| Parametr`hosted_operations` | Kontraktfalse |
| Parametr`multimodal_input_binding` | Kontraktnull |

Životní cyklus: `synchronous_or_streamed`

Odešlete přesné ID modelu spolu s messages.

Délka kontextu není limitem výstupu.

Textový soubor může dodat doslovný text; obrazové/zvukové vstupy a vstupy v podobě souborových objektů vyžadují přesnou vazbu.

### Tarify

Údaje o tarifech nepřidávají možnosti požadavku. Podporované parametry jsou uvedeny u vybrané metody.

Rychlý režim

Neuvedeno Při výběru rychlého režimu

Režim flex

Neuvedeno Při výběru režimu flex

Maximální intenzita uvažování

Neuvedeno Když se při maximální intenzitě uvažování použije výchozí úprava (default)

#### Sazby Ailoot

#### Ceny podle konfigurace

| Konfigurace | Tabulka sazeb | Poplatek |
| --- | --- | --- |
| KonfiguraceZákladní sazby za tokeny | Tabulka sazebZákladní sazba | Poplatek Vstup · Vstupní tokeny **$0.00118** / 1K tokenů Výstup · Výstupní tokeny **$0.00118** / 1K tokenů Vstup · Čtení z mezipaměti **$0** / 1K tokenů Vstup · Zápis do mezipaměti **$0** / 1K tokenů Vstup · Zápis do mezipaměti, 1 hodina **—** / 1K tokenů |

Ailoot před požadavkem rezervuje odhadovanou částku. Po výsledku vyúčtuje konečný poplatek podle naměřeného využití. Při streamování se účtování řídí konečným záznamem využití. [Jak funguje rezervace a vyúčtování →](https://ailoot.ai/docs/cs/billing/reserve/)

### Příklady požadavků

#### Ailoot Ultra · OpenAI Chat

curlPython SDKStreamování v Pythonu

```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": "Qwen/Qwen2-VL-72B-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
```

```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='Qwen/Qwen2-VL-72B-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"))
```

```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='Qwen/Qwen2-VL-72B-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")
```

### Přijímání a ukládání výsledků

#### Ailoot Ultra · OpenAI Chat

json nebo SSE

##### Uchovejte všechny dokončené výsledky

Uchovejte každou úplnou vrácenou odpověď, soubor i část obsahu.

Zachovejte každou volbu a její obsah/volání nástrojů/uvažování. V SSE sestavujte přírůstky podle indexu volby/nástroje a zachovejte konečný důvod ukončení i údaje o využití.

##### Pokud je nutné ověřit původní odpověď

Zachovejte ID požadavků/odpovědí a hlavičky. Není dodána obecná URL pro načtení textové úlohy.

Pole odpovědi

| Pole | Typ |
| --- | --- |
| Pole`choices[].index` | Typinteger |
| Pole`choices[].message.content` | Typstring\|null |
| Pole`choices[].message.tool_calls` | Typtool\_call\[\] |
| Pole`choices[].message.reasoning_content` | Typstring |
| Pole`choices[].message.reasoning_details` | Typobject\|array |
| Pole`choices[].finish_reason` | Typstring\|null |
| Pole`usage` | Typobject |

Chyby a další kroky

| Odpověď | Podmínka | Další krok |
| --- | --- | --- |
| Odpověď400 · `invalid_request_error` | PodmínkaNeplatná povinná pole, reprezentace podkladů nebo hodnota parametru | Další krokPřed novým požadavkem na vytvoření opravte uvedená pole. |

### Aliasy

#### Aliasy modelu

**Ailoot Ultra** [`Qwen/Qwen2-VL-72B-Instruct`](https://ailoot.ai/models/cs/#m=Qwen%2FQwen2-VL-72B-Instruct&route=Ultra&caller=Qwen%2FQwen2-VL-72B-Instruct&fmt=chat)

#### Aliasy cest metod

Použijte cesty metod uvedené výše.

#### Související ID modelů

[`Qwen/Qwen2-VL-72B-Instruct`](https://ailoot.ai/models/cs/#m=Qwen%2FQwen2-VL-72B-Instruct&route=Ultra&caller=Qwen%2FQwen2-VL-72B-Instruct&fmt=chat)

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

[`Qwen/Qwen2-VL-72B-Instruct`](https://ailoot.ai/models/cs/#m=Qwen%2FQwen2-VL-72B-Instruct&route=Ultra&caller=Qwen%2FQwen2-VL-72B-Instruct&fmt=messages)

Alibaba /`Qwen/Qwen2-VL-72B-Instruct`

### Úvod

Qwen2-VL-72B-Instruct kombinuje text, obrazy a video pro vizuální otázky, čtení dokumentů a vícejazyčný text v obrazech. Výrobce popisuje porozumění videu delšímu než 20 minut, dynamické rozlišení obrazů a integrace vizuálních agentů; odpověď je text.

Přijímané vstupy

Text

Výsledky

json · sse

### Dostupné v Ailoot · vstupy a metody

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages`

Vstup

`text`

Výstup

`json`, `sse`

Výstupní formát

JSON nebo SSE

| Pole | Typ | Požadavek | Hodnoty a limity | Výchozí |
| --- | --- | --- | --- | --- |
| Pole`model` | Typ`string` | PožadavekPovinné | Hodnoty a limity Qwen/Qwen2-VL-72B-Instruct | Výchozí— |
| Pole`messages` | Typ`message[]` | PožadavekPovinné | Hodnoty a limity | Výchozí— |
| Pole`messages[].role` | Typ`string` | PožadavekPovinné | Hodnoty a limity user, assistant | Výchozí— |
| Pole`messages[].content` | Typ`string` | PožadavekPovinné | Hodnoty a limity | Výchozí— |
| Pole`max_tokens` | Typ`integer` | PožadavekPovinné | Hodnoty a limity | Výchozí— |
| Pole`stream` | Typ`boolean` | PožadavekVolitelné | Hodnoty a limity | Výchozífalse |

Kombinace vstupních materiálů

**Text** · text UTF-8

`řetězec messages[].content`

Parametry a životní cyklus metody

| Parametr | Kontrakt |
| --- | --- |
| Parametr`content_type` | Kontraktapplication/json |
| Parametr`required` | Kontraktmodel, messages, max\_tokens |
| Parametr`optional_controls` | Kontraktstream |
| Parametr`material_types` | Kontrakttext |
| Parametr`text_file_material` | KontraktPřečtěte skutečný dokument UTF-8 a vložte jeho text do uvedeného pole input nebo do řetězce obsahu zprávy. |

Životní cyklus: `synchronous_or_streamed`

### Tarify

Údaje o tarifech nepřidávají možnosti požadavku. Podporované parametry jsou uvedeny u vybrané metody.

Rychlý režim

Neuvedeno Při výběru rychlého režimu

Režim flex

Neuvedeno Při výběru režimu flex

Maximální intenzita uvažování

Neuvedeno Když se při maximální intenzitě uvažování použije výchozí úprava (default)

#### Sazby Ailoot

#### Ceny podle konfigurace

| Konfigurace | Tabulka sazeb | Poplatek |
| --- | --- | --- |
| KonfiguraceZákladní sazby za tokeny | Tabulka sazebZákladní sazba | Poplatek Vstup · Vstupní tokeny **$0.00118** / 1K tokenů Výstup · Výstupní tokeny **$0.00118** / 1K tokenů Vstup · Čtení z mezipaměti **$0** / 1K tokenů Vstup · Zápis do mezipaměti **$0** / 1K tokenů Vstup · Zápis do mezipaměti, 1 hodina **—** / 1K tokenů |

Ailoot před požadavkem rezervuje odhadovanou částku. Po výsledku vyúčtuje konečný poplatek podle naměřeného využití. Při streamování se účtování řídí konečným záznamem využití. [Jak funguje rezervace a vyúčtování →](https://ailoot.ai/docs/cs/billing/reserve/)

### Příklady požadavků

#### Ailoot Ultra · Anthropic Messages

Úplné minimální tělo požadavku JSONcurl · použijte svůj dokument UTF-8Python · uložte úplný výsledek

```json
{
  "model": "Qwen/Qwen2-VL-72B-Instruct",
  "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': 'Qwen/Qwen2-VL-72B-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
```

```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': 'Qwen/Qwen2-VL-72B-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))
```

### Přijímání a ukládání výsledků

#### Ailoot Ultra · Anthropic Messages

JSON nebo SSE

##### Uchovejte všechny dokončené výsledky

Uchovejte každou úplnou vrácenou odpověď, soubor i část obsahu.

Zachovejte všechny bloky obsahu, podpisy uvažování a skutečná ID použití nástrojů. Sestavte všechny přírůstky bloků SSE; první textový blok není úplný výstup.

##### Pokud je nutné ověřit původní odpověď

Zachovejte ID požadavků/odpovědí a hlavičky. Není dodána obecná URL pro načtení textové úlohy.

Pole odpovědi

| Pole | Typ |
| --- | --- |
| Pole`id` | Typstring |
| Pole`model` | Typstring |
| Pole`content[]` | Typtext\|thinking\|tool\_use\|other content block |
| Pole`stop_reason` | Typstring\|null |
| Pole`usage` | Typobject |

Chyby a další kroky

| Odpověď | Podmínka | Další krok |
| --- | --- | --- |
| Odpověď400 · `invalid_request_error` | PodmínkaNeplatná povinná pole, reprezentace podkladů nebo hodnota parametru | Další krokPřed novým požadavkem na vytvoření opravte uvedená pole. |

### Aliasy

#### Aliasy modelu

**Ailoot Ultra** [`Qwen/Qwen2-VL-72B-Instruct`](https://ailoot.ai/models/cs/#m=Qwen%2FQwen2-VL-72B-Instruct&route=Ultra&caller=Qwen%2FQwen2-VL-72B-Instruct&fmt=messages)

#### Aliasy cest metod

Použijte cesty metod uvedené výše.

#### Související ID modelů

[`Qwen/Qwen2-VL-72B-Instruct`](https://ailoot.ai/models/cs/#m=Qwen%2FQwen2-VL-72B-Instruct&route=Ultra&caller=Qwen%2FQwen2-VL-72B-Instruct&fmt=messages)

FAQ · Qwen/Qwen2-VL-72B-Instruct

Jaké vstupy a výsledky jsou dostupné?

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

Jaká pole požadavek používá?

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

Jaké limity platí?

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

Připojte Ailoot k Claude Code, OpenCode, Hermes nebo vlastní aplikaci.

## Společnost a její portfolio projektů

Společnost a její portfolio projektů: miliony zákazníků; měsíční tržby v miliardách.

## Nakupujte tokeny se slevou.

Sleva předplatného pro pravidelnou práci. Promo kódy až 50% na nákup tokenů.

Předplatné

Pro pravidelné požadavky vyberte tarif se slevou.

Promo kód až 50%

Při nákupu zadejte kód. Cena se přepočítá podle probíhající akce.

Výdaje v historii

U každého požadavku se uloží model, tokeny a částka.

[Vybrat předplatné](https://ailoot.ai/docs/cs/billing/subscriptions/) · [Zobrazit ceny modelů](https://ailoot.ai/models/cs/)

## Připojte API k produktu, který prodáváte.

SaaS, aplikace a boti podle nabídky a licenční smlouvy Ailoot. Pro přeprodej požádejte o licenci přeprodejce.

Komerční aplikace

Začleňte generování textu, obrázků, videa a zvuku do placených funkcí své služby.

Licence pro přeprodejce

Pošlete popis projektu a způsob poskytování přístupu. Vyžádejte písemné podmínky použití a přeprodeje.

Dokumenty na webu

Nabídka, licenční smlouva a zásady zpracování dat jsou dostupné před připojením.

[Požádat o licenci přeprodejce](mailto:support@ailoot.ai) · [Nabídka a licenční smlouva](https://ailoot.ai/legal/offer?lang=cs)

## Ailoot · Společnost a její portfolio projektů





Ailoot staví na dlouhodobých provozních zkušenostech, široké klientské základně, stabilních službách a průběžném sledování KPI.





Společnost a její portfolio projektů: miliony zákazníků; měsíční tržby v miliardách.





Ailoot využívá tyto provozní zkušenosti k poskytování přístupu přes API k funkcím AI v produktech zákazníků, agentech, aplikacích a automatizacích.
