Qwen3 VL 8B Thinking
Qwen3-VL-8B-Thinking je vizuálno-jazykové vydanie Qwen veľkosti 8B zamerané na uvažovanie. Kombinuje text, obrázky a video pre vizuálne riešenie problémov, interpretáciu dokumentov, priestorovú analýzu a generovanie kódu z vizuálnych predlôh.
- Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionsQwen/Qwen3-VL-8B-Thinking - Ailoot Ultra · Anthropic Messages
POST /v1/messagesQwen/Qwen3-VL-8B-Thinking
O modeli
Tento opis pokrýva možnosti modelu. Dostupné vstupy, výstupy a voľby v Ailoot sú uvedené nižšie pre vybranú metódu.
Qwen3-VL-8B-Thinking je husté vydanie rodiny Qwen3-VL spoločnosti Alibaba veľkosti 8B zamerané na uvažovanie. Kombinuje text, obrázky a video v spoločnej úlohe a generuje text. Qwen vydáva verzie Thinking a Instruct samostatne; táto karta sa týka pomenovaného modelu Thinking, ktorého účel zahŕňa analýzu vizuálnych dôkazov pred vytvorením odpovede. Súčasťou jazykových schopností modelu je aj čisto textová práca.
Výrobca predstavuje na prvom mieste vizuálnych agentov: model dokáže rozpoznávať prvky počítačového alebo mobilného rozhrania, interpretovať ich funkcie a uvažovať o ďalšej interakcii. V aplikácii snímky obrazovky poskytujú aktuálny stav a nástroje vykonávajú vybrané akcie. Užitočné zadanie uvádza cieľ používateľa, viditeľnú obrazovku a povolené akcie a potom žiada ďalší krok a prvok, ktorý ho odôvodňuje. Generovaná interpretácia sa odlišuje od akcie vykonanej okolitou aplikáciou.
Vizuálne programovanie prepája referenčné obrázky alebo video s textovým kódom. Qwen dokumentuje diagramy Draw.io a HTML, CSS a JavaScript ako príklady výstupov. Poskytnite snímku obrazovky alebo náčrt spolu s požadovaným správaním, obsahom a cieľovým rozložením; žiadajte upraviteľný artefakt kódu alebo diagramu. Pri priestorovej práci rodina opisuje polohu objektu, uhol pohľadu a zakrytie s 2D a 3D ukotvením. Ak potrebujete polohy, uveďte konvenciu súradníc, aby opísaná poloha a požadovaný rámček používali rovnaký referenčný systém.
Natívny kontext má 256K tokenov pre text a prekladaný vizuálny materiál. Karta modelu tiež opisuje rozšírenie na jeden milión tokenov, ktoré je samostatným nakonfigurovaným rozšírením, nie špecifikáciou natívneho kontextu. Aplikácie dlhého kontextu zahŕňajú vzájomné odkazovanie na strany dokumentov a lokalizáciu udalostí vo videu. Pri príprave vstupu zachovajte poradie strán a časové značky videa a žiadajte, aby odpoveď pri každom závere identifikovala použitú stranu alebo okamih.
Multimodálne uvažovanie pokrýva matematické a vedecké úlohy vyžadujúce viditeľný materiál aj jeho písomnú otázku. Rodina podporuje aj široké vizuálne rozpoznávanie objektov, produktov, orientačných bodov, rastlín a zvierat. Jej pokrytie OCR zahŕňa 32 jazykov aj náročné obrázky pri slabom svetle, rozmazaní alebo naklonení spolu s interpretáciou štruktúry dokumentu. Pri naskenovanom probléme žiadajte najskôr prepis a potom riešenie; nesprávne prečítané znamienko alebo označenie tak bude viditeľné skôr, než zmení uvažovanie.
Túto vizuálnu a časovú prácu podporujú tri aktualizácie architektúry. Interleaved-MRoPE rozdeľuje pozičné informácie naprieč časom, šírkou a výškou; DeepStack zavádza do jazykového modelu vizuálne príznaky z viacerých úrovní; explicitné textové časové značky reprezentujú časovú polohu skupín videosnímok. Ich praktický význam spočíva v zachovaní priestorových detailov a prepojení opisu udalosti s okamihom v zdroji. Malý alebo nečitateľný zdrojový detail nemenia na zaručené rozpoznanie.
Konkrétna karta modelu Thinking poskytuje odporúčania generovania samostatne pre vizuálne a textové úlohy. Obe používajú vzorkovanie s temperature 1.0, top-p 0.95 a top-k 20; vizuálny príklad používa penalizáciu prítomnosti 0.0, zatiaľ čo textový príklad používa 1.5. Jej ukážkové nastavenia dĺžky výstupu sú 40,960 pre vizuálnu prácu a 32,768 pre text s odporúčaním 81,920 pre vybrané náročné textové hodnotenia. Ide o odporúčania ladenia, nie univerzálnu záruku maximálneho výstupu ani parametre, ktoré okolitá služba nevyhnutne sprístupňuje.
Pri praktickej úlohe s dokumentom poskytnite usporiadané obrázky strán a požiadajte: „Extrahujte nadpisy oddielov, vysvetlite vzťah medzi diagramom a priľahlým textom a ku každému zisteniu pripojte odkaz na stranu.“ Pri videu definujte udalosť, ktorú chcete lokalizovať, a žiadajte jej časovú značku spolu s krátkym vizuálnym vysvetlením. Pri otázke na vizuálne uvažovanie uveďte požadovaný konečný artefakt a predpoklady, ktoré sa môžu použiť. Výstup zostáva textovým vysvetlením, extrahovaným obsahom, kódom alebo navrhovaným krokom nástroja; vizuálny vstup tohto vydania nie je postupom generovania videa ani reči.
Praktická úloha
Praktická úloha
Technický príklad v angličtine
Reason about a written interface layout
Use this textual layout description: a dialog contains a title at the top, a long message in the middle and Cancel/Confirm buttons at the bottom. On a short screen, only the message area should scroll; both buttons must stay visible. Propose HTML and CSS structure and explain the height constraints. Do not assume an image was supplied.Očakávaný výsledok
An editable HTML/CSS proposal and a short explanation of which region scrolls.Overenie výsledku
Check the proposed structure limits message overflow while keeping both actions outside that scroll area.Ailoot Ultra · OpenAI Chat POST /v1/chat/completions Qwen/Qwen3-VL-8B-Thinking
Qwen/Qwen3-VL-8B-ThinkingÚvod
Qwen3-VL-8B-Thinking je vizuálno-jazykové vydanie Qwen veľkosti 8B zamerané na uvažovanie. Kombinuje text, obrázky a video pre vizuálne riešenie problémov, interpretáciu dokumentov, priestorovú analýzu a generovanie kódu z vizuálnych predlôh.
- Povolené vstupy
- Text
- Výsledky
- Text
Dostupné v Ailoot · vstupy a metódy
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
- Vstup
text- Výstup
text- Výstupný formát
- json alebo SSE
| Pole | Typ | Požiadavka | Hodnoty a limity | Predvolené |
|---|---|---|---|---|
Polemodel | Typstring | PožiadavkaPovinné | Hodnoty a limity Qwen/Qwen3-VL-8B-Thinking | Predvolené— |
Polemessages | Typmessage[] | PožiadavkaPovinné | Hodnoty a limity Minimálny počet položiek: 1 | Predvolené— |
Polemessages[].role | Typstring | PožiadavkaPovinné | Hodnoty a limity Príklady: system, user, assistant, tool, function Podmienky: Tieto roly sú výslovne zastúpené typmi kompatibility v zdrojovom kóde; presný súbor rolí zostáva závislý od modelu. Závisí od modelu | Predvolené— |
Polemessages[].content | Typstring|content_part[]|null | PožiadavkaVoliteľné | Hodnoty a limity | Predvolené— |
Polemessages[].tool_calls | Typtool_call[] | PožiadavkaVoliteľné | Hodnoty a limity | Predvolené— |
Polemessages[].tool_call_id | Typstring | PožiadavkaVoliteľné | Hodnoty a limity Platí, keď: role=tool; použite skutočne vrátené ID | Predvolené— |
Polemessages[].name | Typstring | PožiadavkaVoliteľné | Hodnoty a limity | Predvolené— |
Polemessages[].reasoning_content | Typstring | PožiadavkaVoliteľné | Hodnoty a limity Platí, keď: Posielajte späť skutočne vrátené uvažovanie, ak ho tento model používa | Predvolené— |
Polemessages[].reasoning_details | Typobject|array | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
Polemax_tokens | Typinteger | PožiadavkaVoliteľné | Hodnoty a limity Minimum: 1 Závisí od modelu | Predvolené— |
Polemax_completion_tokens | Typinteger | PožiadavkaVoliteľné | Hodnoty a limity Minimum: 1 Závisí od modelu | Predvolené— |
Polestream | Typboolean | PožiadavkaVoliteľné | Hodnoty a limity | Predvolenéfalse |
Polestream_options.include_usage | Typboolean | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
Poletemperature | Typnumber | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
Poletop_p | Typnumber | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
Polestop | Typstring|string[] | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
Poletools | Typfunction_tool[] | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
Poletools[].type | Typstring | PožiadavkaVoliteľné | Hodnoty a limity function Závisí od modelu | Predvolené— |
Poletools[].function.name | Typstring | PožiadavkaPovinné | Hodnoty a limity Platí, keď: poskytnutý nástroj typu funkcia | Predvolené— |
Poletools[].function.description | Typstring | PožiadavkaVoliteľné | Hodnoty a limity | Predvolené— |
Poletools[].function.parameters | TypJSON_schema | PožiadavkaVoliteľné | Hodnoty a limity | Predvolené— |
Poletool_choice | Typstring|object | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
Poleparallel_tool_calls | Typboolean | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
Poleresponse_format | Typobject | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
Polereasoning_effort | Typstring | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
Polereasoning | Typobject | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
Poleservice_tier | Typstring | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
Poleinstructions | Typstring | PožiadavkaVoliteľné | Hodnoty a limity Pole kompatibility | Predvolené— |
Polefunctions | Typfunction[] | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
Polefunction_call | Typstring|object | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
Poleprompt_cache_options | Typobject | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
Polemodalities | Typstring[] | PožiadavkaVoliteľné | Hodnoty a limity text | Predvolené— |
Poleprovider | Typobject | PožiadavkaVoliteľné | Hodnoty a limity Podmienky: provider.options sa na tejto textovej trase Ultra odmieta | Predvolené— |
Polecache_control.ttl | Typstring | PožiadavkaVoliteľné | Hodnoty a limity Podmienky: Hodnota 1h sa v skutočne používaných poliach cache promptov odmieta | Predvolené— |
Kombinácie vstupných podkladov
Text · Text UTF8
messages[].content
Parametre a životný cyklus metódy
| Parameter | Špecifikácia |
|---|---|
Parametercontent_type | Špecifikáciaapplication/json |
Parameterrequired | Špecifikáciamodel, messages |
Parametermaterial_types | Špecifikáciatext |
Parametermessages | Špecifikáciapole správ so štruktúrou role/content |
Parameterfile_material | Špecifikáciaskutočný dokument UTF-8 vložený ako doslovný text; ID súboru sa neodvodzuje |
Parameteroptional_controls | Špecifikáciastream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice |
Parametercontrol_scope | Špecifikáciazávisí od modelu; používateľské nástroje typu funkcia sa líšia od nástrojov prevádzkovaných službou |
Parameteroutput_modalities | Špecifikáciatext |
Parameterhosted_operations | Špecifikáciafalse |
Parametermultimodal_input_binding | Špecifikácianull |
Životný cyklus: synchronous_or_streamed
Pošlite presné ID modelu spolu s messages.
Dĺžka kontextu nie je horná hranica výstupu.
Textový súbor môže poskytnúť doslovný text; obrazové a zvukové vstupy a vstupy so súborovými objektmi potrebujú presné naviazanie.
Cenník
Tarifné údaje nepridávajú možnosti požiadavky. Podporované parametre sú uvedené pri vybranej metóde.
- Rýchly režim
- Neuvedené Keď je zvolený rýchly režim
- Režim Flex
- Neuvedené Keď je zvolený režim flex
- Maximálna úroveň uvažovania
- Neuvedené Keď sa pri maximálnej úrovni uvažovania používa predvolená úprava (default)
Sadzby Ailoot
Ceny podľa konfigurácie
| Konfigurácia | Sadzobník | Poplatok |
|---|---|---|
| KonfiguráciaZákladné sadzby za tokeny | SadzobníkZákladná sadzba | Poplatok Vstup · Vstupné tokeny $0.000144 / 1K tokenov Výstup · Výstupné tokeny $0.00143 / 1K tokenov Vstup · Čítanie cache $0 / 1K tokenov Vstup · Zápis do cache $0 / 1K tokenov Vstup · Zápis do cache, 1 hod — / 1K tokenov |
Ailoot pred požiadavkou rezervuje odhadovanú sumu. Po získaní výsledku vyúčtuje konečný poplatok podľa nameraného využitia. Pri streamovaní sa vyúčtovanie riadi konečným záznamom využitia. Ako funguje rezervácia a vyúčtovanie →
Príklady požiadaviek
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-Thinking", "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-Thinking',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-Thinking',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")
Prijať a uložiť výsledky
Ailoot Ultra · OpenAI Chat
json alebo SSE
Uchovať všetky dokončené výsledky
Uložte každú úplnú vrátenú odpoveď, súbor a časť obsahu.
Zachovajte každý variant odpovede a jeho obsah, volania nástrojov a uvažovanie. V SSE zostavujte čiastkové zmeny podľa indexu variantu/nástroja a zachovajte konečný dôvod ukončenia aj údaje o spotrebe.
Ak treba overiť pôvodnú odpoveď
Zachovajte ID požiadaviek/odpovedí aj hlavičky. Všeobecná URL na načítanie textovej úlohy nie je poskytnutá.
Polia odpovede
| Pole | Typ |
|---|---|
Polechoices[].index | Typinteger |
Polechoices[].message.content | Typstring|null |
Polechoices[].message.tool_calls | Typtool_call[] |
Polechoices[].message.reasoning_content | Typstring |
Polechoices[].message.reasoning_details | Typobject|array |
Polechoices[].finish_reason | Typstring|null |
Poleusage | Typobject |
Chyby a ďalšie kroky
| Odpoveď | Podmienka | Ďalší krok |
|---|---|---|
Odpoveď400 · invalid_request_error | PodmienkaNeplatné povinné polia, reprezentácia materiálu alebo hodnota parametra | Ďalší krokPred novou požiadavkou na vytvorenie opravte uvedené polia. |
Aliasy
Aliasy modelov
Ailoot Ultra Qwen/Qwen3-VL-8B-Thinking
Aliasy ciest metód
Použite cesty metód uvedené vyššie.
Súvisiace ID na volanie
Ailoot Ultra · Anthropic Messages POST /v1/messages Qwen/Qwen3-VL-8B-Thinking
Qwen/Qwen3-VL-8B-ThinkingÚvod
Qwen3-VL-8B-Thinking je vizuálno-jazykové vydanie Qwen veľkosti 8B zamerané na uvažovanie. Kombinuje text, obrázky a video pre vizuálne riešenie problémov, interpretáciu dokumentov, priestorovú analýzu a generovanie kódu z vizuálnych predlôh.
- Povolené vstupy
- Text
- Výsledky
- json · sse
Dostupné v Ailoot · vstupy a metódy
Ailoot Ultra · Anthropic Messages POST /v1/messages
- Vstup
text- Výstup
json,sse- Výstupný formát
- JSON alebo SSE
| Pole | Typ | Požiadavka | Hodnoty a limity | Predvolené |
|---|---|---|---|---|
Polemodel | Typstring | PožiadavkaPovinné | Hodnoty a limity Qwen/Qwen3-VL-8B-Thinking | Predvolené— |
Polemessages | Typmessage[] | PožiadavkaPovinné | Hodnoty a limity | Predvolené— |
Polemessages[].role | Typstring | PožiadavkaPovinné | Hodnoty a limity user, assistant | Predvolené— |
Polemessages[].content | Typstring | PožiadavkaPovinné | Hodnoty a limity | Predvolené— |
Polemax_tokens | Typinteger | PožiadavkaPovinné | Hodnoty a limity | Predvolené— |
Polestream | Typboolean | PožiadavkaVoliteľné | Hodnoty a limity | Predvolenéfalse |
Kombinácie vstupných podkladov
Text · Text UTF-8
reťazec messages[].content
Parametre a životný cyklus metódy
| Parameter | Špecifikácia |
|---|---|
Parametercontent_type | Špecifikáciaapplication/json |
Parameterrequired | Špecifikáciamodel, messages, max_tokens |
Parameteroptional_controls | Špecifikáciastream |
Parametermaterial_types | Špecifikáciatext |
Parametertext_file_material | ŠpecifikáciaPrečítajte skutočný dokument UTF-8 a vložte jeho text do uvedeného vstupného reťazca alebo reťazca obsahu správy. |
Životný cyklus: synchronous_or_streamed
Cenník
Tarifné údaje nepridávajú možnosti požiadavky. Podporované parametre sú uvedené pri vybranej metóde.
- Rýchly režim
- Neuvedené Keď je zvolený rýchly režim
- Režim Flex
- Neuvedené Keď je zvolený režim flex
- Maximálna úroveň uvažovania
- Neuvedené Keď sa pri maximálnej úrovni uvažovania používa predvolená úprava (default)
Sadzby Ailoot
Ceny podľa konfigurácie
| Konfigurácia | Sadzobník | Poplatok |
|---|---|---|
| KonfiguráciaZákladné sadzby za tokeny | SadzobníkZákladná sadzba | Poplatok Vstup · Vstupné tokeny $0.000144 / 1K tokenov Výstup · Výstupné tokeny $0.00143 / 1K tokenov Vstup · Čítanie cache $0 / 1K tokenov Vstup · Zápis do cache $0 / 1K tokenov Vstup · Zápis do cache, 1 hod — / 1K tokenov |
Ailoot pred požiadavkou rezervuje odhadovanú sumu. Po získaní výsledku vyúčtuje konečný poplatok podľa nameraného využitia. Pri streamovaní sa vyúčtovanie riadi konečným záznamom využitia. Ako funguje rezervácia a vyúčtovanie →
Príklady požiadaviek
Ailoot Ultra · Anthropic Messages
{
"model": "Qwen/Qwen3-VL-8B-Thinking",
"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-Thinking', '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-Thinking', '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))
Prijať a uložiť výsledky
Ailoot Ultra · Anthropic Messages
JSON alebo SSE
Uchovať všetky dokončené výsledky
Uložte každú úplnú vrátenú odpoveď, súbor a časť obsahu.
Zachovajte všetky bloky obsahu, podpisy uvažovania a skutočné ID volaní nástrojov. Zostavte všetky čiastkové zmeny blokov SSE; prvý textový blok nie je celý výstup.
Ak treba overiť pôvodnú odpoveď
Zachovajte ID požiadaviek/odpovedí aj hlavičky. Všeobecná URL na načítanie textovej úlohy nie je poskytnutá.
Polia odpovede
| Pole | Typ |
|---|---|
Poleid | Typstring |
Polemodel | Typstring |
Polecontent[] | Typtext|thinking|tool_use|other content block |
Polestop_reason | Typstring|null |
Poleusage | Typobject |
Chyby a ďalšie kroky
| Odpoveď | Podmienka | Ďalší krok |
|---|---|---|
Odpoveď400 · invalid_request_error | PodmienkaNeplatné povinné polia, reprezentácia materiálu alebo hodnota parametra | Ďalší krokPred novou požiadavkou na vytvorenie opravte uvedené polia. |
Aliasy
Aliasy modelov
Ailoot Ultra Qwen/Qwen3-VL-8B-Thinking
Aliasy ciest metód
Použite cesty metód uvedené vyššie.
Súvisiace ID na volanie
FAQ · Qwen/Qwen3-VL-8B-Thinking
- Aké vstupy a výsledky sú dostupné?
POST /v1/chat/completions·Qwen/Qwen3-VL-8B-Thinking:text→textPOST /v1/messages·Qwen/Qwen3-VL-8B-Thinking:text→json,sse- Aké polia používa požiadavka?
POST /v1/chat/completions·Qwen/Qwen3-VL-8B-Thinking:model,messages,stream,modalities,providerPOST /v1/messages·Qwen/Qwen3-VL-8B-Thinking:model,messages,max_tokens,stream- Aké limity platia?
POST /v1/chat/completions·Qwen/Qwen3-VL-8B-Thinking:messages.min_items:1