modely

Qwen: Qwen3.6 Flash

Markdown · JSON

Qwen: Qwen3.6 Flash

Qwen3.6 Flash je model Qwen společnosti Alibaba pro porozumění textu, obrázkům a videu s textovými odpověďmi. Poskytuje kontext milionu tokenů a dokumentované ovládání uvažování, nástrojů a strukturovaného výstupu pro cílené úlohy multimodálních asistentů.

O modelu

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

Qwen3.6 Flash je rychlý jazykový model z řady Qwen3.6 společnosti Alibaba. Jeho zveřejněný profil přijímá text, obrázky a video a vytváří text. Uvádí kontextové okno 1,000,000 tokenů a až 65,536 tokenů doplnění s ovládáním uvažování, nástrojů a strukturovaného výstupu.

Otázka navázaná na viditelný zdroj

Určete důležitý obrázek nebo video a uveďte detail k prozkoumání. Úloha kontroly obrazovky může pojmenovat stav rozhraní a požadovat viditelný problém. Úloha s videem může určit scénu nebo interval a požadovat popis příslušné posloupnosti. U odpovědi uchovejte označení zdrojů, aby zjištění zůstala spojena s dodanými materiály.

U písemných důkazů dodejte pasáž nebo oddíl dokumentu a otázku, kterou má vyřešit. Zadání porovnání může určit alternativy a kritéria; zadání extrakce může definovat vracená pole a způsob zobrazení chybějících hodnot. Požadovaný výsledek vymezte úžeji než celé téma zdroje.

Uvažování a kroky aplikace

Metadata hostování zahrnují uvažování, nástroje volané jako funkce a strukturované výstupy. Definujte operace, které může aplikace provádět, a při pokračování úlohy uchovávejte jejich skutečné výsledky. Akce navržená modelem se stává důkazem až poté, co aplikace vrátí pozorování.

Ověřte strukturovaná pole podle zdrojových materiálů a požadované podoby výsledku. U vysvětlení pro člověka požadujte závěr následovaný důležitými pozorováními. To usnadňuje kontrolu stručné odpovědi bez ztráty spojení s důkazy.

Využijte dlouhý kontext pro relevantní materiály

Větší soubory zdrojů uspořádejte do pojmenovaných oddílů a ponechte prostor pro odpověď. Zachovejte rozhodnutí a pozorování potřebná pro aktuální úlohu a odstraňte nesouvisející opakování. Užitečným výsledkem Flash je textový výstup navázaný na písemné nebo vizuální zdroje, které jej dokládají, připravený pro další krok aplikace.

Praktická úloha

Praktická úloha

Technický příklad v angličtině

Extract a defined exception

Answer from this supplied written rule: 'Weekly reports are sent on Mondays. If Monday is a holiday, send on the next working day. The office is closed Monday and Tuesday this week; Wednesday is a working day.' Return the applicable dispatch day, the supporting clauses and any assumptions. Keep the conclusion limited to the supplied week.

Očekávaný výsledek

A concise answer, clause references and explicitly identified assumptions.

Ověření výsledku

Check the holiday exception is applied through both closed days rather than stopping at Tuesday.
Ailoot · Anthropic Messages POST /v1/messages qwen3.6-flash

qwen3.6-flash

Alibaba /qwen3.6-flash

Úvod

Qwen3.6 Flash je model Qwen společnosti Alibaba pro porozumění textu, obrázkům a videu s textovými odpověďmi. Poskytuje kontext milionu tokenů a dokumentované ovládání uvažování, nástrojů a strukturovaného výstupu pro cílené úlohy multimodálních asistentů.

Přijímané vstupy
Text · Obrázky
Výsledky
Text

Dostupné v Ailoot · vstupy a metody

Ailoot · Anthropic Messages POST /v1/messages
Vstup
text, image
Výstup
text
Kontext
991 808 tokens
Maximální výstup
65 536 tokens
Výstupní formát
json nebo SSE
PoleTypPožadavekHodnoty a limityVýchozí
PolemodelTypstringPožadavekPovinnéHodnoty a limity
qwen3.6-flash
Výchozí—
PolemessagesTypmessage[]PožadavekPovinnéHodnoty a limity
Minimální počet položek: 1
Výchozí—
Polemessages[].roleTypstringPožadavekPovinnéHodnoty a limity
user, assistant
Výchozí—
Polemessages[].contentTypstring|content_block[]PožadavekPovinnéHodnoty a limityVýchozí—
PolesystemTypstring|content_block[]PožadavekVolitelnéHodnoty a limityVýchozí—
Polemax_tokensTypintegerPožadavekPovinnéHodnoty a limity
Minimum: 1
Limit platí pro: přesný limit vybraného modelu/karty
Výchozí—
PolestreamTypbooleanPožadavekVolitelnéHodnoty a limityVýchozífalse
PoletemperatureTypnumberPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Poletop_pTypnumberPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Polestop_sequencesTypstring[]PožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
PoletoolsTyptool[]PožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Poletools[].nameTypstringPožadavekVolitelnéHodnoty a limity
Platí, když: nástroj je dodán
Výchozí—
Poletools[].descriptionTypstringPožadavekVolitelnéHodnoty a limityVýchozí—
Poletools[].input_schemaTypJSON_schemaPožadavekVolitelnéHodnoty a limityVýchozí—
Poletool_choiceTypobjectPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Polethinking.typeTypstringPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Polethinking.budget_tokensTypintegerPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Poleoutput_config.effortTypstringPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
PolemetadataTypobjectPožadavekVolitelnéHodnoty a limityVýchozí—
Polecache_controlTypobjectPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Kombinace vstupních materiálů

Text · text UTF8

messages[].content nebo blok type=text

Text + obrázek

{type:image,source:{type:base64,media_type,data}} nebo zdroj type=url

Parametry a životní cyklus metody
ParametrKontrakt
Parametrmaterial_typesKontrakttext, image
ParametrrequiredKontraktmodel, messages, max_tokens
Parametroptional_controlsKontraktnull
Parametrcontent_typeKontraktapplication/json
Parametrtext_file_materialKontraktskutečný obsah UTF-8 vložený jako text; ID/URLs souborů vyžadují samostatnou přesně vymezenou podporu

Životní cyklus: exact retained published method

Struktury metod a ID jsou přesné; schopnosti dodavatele jsou oddělené od připuštění požadavku.

Tarify

Sazby metod Ailoot

Ailoot Anthropic MessagesPOST /v1/messages
Vstup
0,00025 US$ / 1K
Výstup
0,0015 US$ / 1K
Čtení z mezipaměti
0,000025 US$ / 1K
Zápis do mezipaměti
≈0,000313 US$ / 1K
Zápis do mezipaměti, 5 min
≈0,000313 US$ / 1K tokens

Ceny podle délky požadavku · Anthropic Messages

Velikost požadavku v tokenechVstupVýstupČtení z mezipamětiZápis do mezipamětiMezipaměť 5 minMezipaměť 1 hodina
Velikost požadavku v tokenech(0; 256 000]Vstup0,00025 US$Výstup0,0015 US$Čtení z mezipaměti0,000025 US$Zápis do mezipaměti≈0,000313 US$Mezipaměť 5 min≈0,000313 US$Mezipaměť 1 hodinaZákladní: —
Velikost požadavku v tokenech(256 000; ∞)Vstup0,001 US$Výstup0,004 US$Čtení z mezipaměti0,0001 US$Zápis do mezipaměti0,00125 US$Mezipaměť 5 min0,00125 US$Mezipaměť 1 hodinaZákladní: —

Sazby v USD za 1K tokenů. Není-li sazba nastavena, použije se zděděná základní sazba této metody; «—» znamená, že základní sazba není nastavena.

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í →

Podrobnosti referenčního tarifu

Referenční tabulky modelu nemění výběr metody, cenové nabídky ani poplatky. Skutečné poplatky používají sazby vybrané metody Ailoot.

Referenční tabulky modelu

Ceny podle konfigurace

Přiřaďte každý poplatek k uvedeným podmínkám. Pro každou sadu alternativních konfigurací použijte jednu sazbu.

KonfiguraceTabulka sazebTokeny kontextu, více nežTokeny kontextu, do uvedené hodnoty včetněPoplatek
KonfiguraceOpenAI Chat · Základní sazby za tokenyTabulka sazebZákladní sazbaTokeny kontextu, více než—Tokeny kontextu, do uvedené hodnoty včetněBez horní mezePoplatek
Vstup · Vstupní tokeny $0.000375 / 1K tokenů
Výstup · Výstupní tokeny $0.00225 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.00046875 / 1K tokenů
Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů
KonfiguraceOpenAI Chat · Úroveň 1 podle délky požadavkuTabulka sazeb—Tokeny kontextu, více než0Tokeny kontextu, do uvedené hodnoty včetně256 000Poplatek
Vstup · Vstupní tokeny $0.000375 / 1K tokenů
Výstup · Výstupní tokeny $0.00225 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.00046875 / 1K tokenů
Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů
KonfiguraceOpenAI Chat · Úroveň 2 podle délky požadavkuTabulka sazeb—Tokeny kontextu, více než256 000Tokeny kontextu, do uvedené hodnoty včetněBez horní mezePoplatek
Vstup · Vstupní tokeny $0.0015 / 1K tokenů
Výstup · Výstupní tokeny $0.006 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.001875 / 1K tokenů
Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů
KonfiguraceAnthropic Messages · Základní sazby za tokenyTabulka sazebZákladní sazbaTokeny kontextu, více než—Tokeny kontextu, do uvedené hodnoty včetněBez horní mezePoplatek
Vstup · Vstupní tokeny $0.000375 / 1K tokenů
Výstup · Výstupní tokeny $0.00225 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.00046875 / 1K tokenů
Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů
KonfiguraceAnthropic Messages · Úroveň 1 podle délky požadavkuTabulka sazeb—Tokeny kontextu, více než0Tokeny kontextu, do uvedené hodnoty včetně256 000Poplatek
Vstup · Vstupní tokeny $0.000375 / 1K tokenů
Výstup · Výstupní tokeny $0.00225 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.00046875 / 1K tokenů
Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů
KonfiguraceAnthropic Messages · Úroveň 2 podle délky požadavkuTabulka sazeb—Tokeny kontextu, více než256 000Tokeny kontextu, do uvedené hodnoty včetněBez horní mezePoplatek
Vstup · Vstupní tokeny $0.0015 / 1K tokenů
Výstup · Výstupní tokeny $0.006 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.001875 / 1K tokenů
Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů

Příklady požadavků

Ailoot · Anthropic Messages

Textový příkladVstup, obrázekPython SDKNode.js SDKStreamování v Pythonu
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "qwen3.6-flash", "max_tokens": 1024, "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
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/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
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_FILE:?Set your actual PNG JPEG or WebP image}"
export AILOOT_IMAGE_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "qwen3.6-flash", "max_tokens": 1024, "messages": [{"role": "user", "content": [{"type": "text", "text": "Read labels and numbers in this image; flag unreadable text."}]}]}')
import base64
f=Path(os.environ["AILOOT_IMAGE_FILE"])
if not f.is_file():raise SystemExit("Choose an actual PNG JPEG or WebP image")
raw=f.read_bytes()
mime="image/png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "image/jpeg" if raw.startswith(b"\xff\xd8") else "image/webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else None
if not mime:raise SystemExit("Use PNG JPEG or WebP")
b64=base64.b64encode(raw).decode()
p["messages"][0]["content"].append({"type":"image","source":{"type":"base64","media_type":mime,"data":b64}})
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/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
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
import anthropic
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = anthropic.Anthropic(base_url="https://api.ailoot.ai", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
msg = client.messages.create(
    model="qwen3.6-flash",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis 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(msg.to_dict(mode="json"))
import Anthropic from "@anthropic-ai/sdk";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new Anthropic({ baseURL: "https://api.ailoot.ai", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const msg = await client.messages.create({
  model: "qwen3.6-flash",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(msg);
import anthropic,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=anthropic.Anthropic(base_url="https://api.ailoot.ai",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.messages.stream(model='qwen3.6-flash',max_tokens=1024,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_message()
    save_result(final.to_dict(mode="json"),"stream-result")

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

Ailoot · 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
PoleTyp
PoleidTypstring
PolemodelTypstring
Polecontent[]Typtext|thinking|tool_use|other content block
Polestop_reasonTypstring|null
PoleusageTypobject
Chyby a další kroky
OdpověďPodmínkaDalší krok
Odpověď400 · invalid_request_errorPodmínkaNeplatná povinná pole, reprezentace podkladů nebo hodnota parametruDalší krokPřed novým požadavkem na vytvoření opravte uvedená pole.

Aliasy

Aliasy modelu

Ailoot qwen3.6-flash
Ailoot Ultra qwen3.6-flash, qwen/qwen3.6-flash

Aliasy cest metod

/chat/completions

Související ID modelů

qwen/qwen3.6-flash, qwen3.6-flash, qwen3.6-flash

Ailoot · OpenAI Responses POST /v1/responses qwen3.6-flash

qwen3.6-flash

Alibaba /qwen3.6-flash

Úvod

Qwen3.6 Flash je model Qwen společnosti Alibaba pro porozumění textu, obrázkům a videu s textovými odpověďmi. Poskytuje kontext milionu tokenů a dokumentované ovládání uvažování, nástrojů a strukturovaného výstupu pro cílené úlohy multimodálních asistentů.

Přijímané vstupy
Text · Obrázky
Výsledky
Text

Dostupné v Ailoot · vstupy a metody

Ailoot · OpenAI Responses POST /v1/responses
Vstup
text, image
Výstup
text
Kontext
991 808 tokens
Maximální výstup
65 536 tokens
Výstupní formát
json nebo SSE
PoleTypPožadavekHodnoty a limityVýchozí
PolemodelTypstringPožadavekPovinnéHodnoty a limity
qwen3.6-flash
Výchozí—
PoleinputTypstring|input_item[]PožadavekPovinnéHodnoty a limityVýchozí—
PoleinstructionsTypstringPožadavekVolitelnéHodnoty a limityVýchozí—
Poleinput[].typeTypstringPožadavekVolitelnéHodnoty a limity
message, reasoning, function_call, function_call_output
Výchozí—
Poleinput[].contentTypstring|content_part[]PožadavekVolitelnéHodnoty a limityVýchozí—
Poleinput[].call_idTypstringPožadavekVolitelnéHodnoty a limity
Platí, když: function_call_output; zachovejte skutečně vrácené call_id
Výchozí—
Poleinput[].outputTypstring|content_part[]PožadavekVolitelnéHodnoty a limity
Platí, když: function_call_output
Výchozí—
Polemax_output_tokensTypintegerPožadavekVolitelnéHodnoty a limity
Minimum: 1
Závisí na modelu
Výchozí—
PolestreamTypbooleanPožadavekVolitelnéHodnoty a limityVýchozífalse
PoletemperatureTypnumberPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Poletop_pTypnumberPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
PoletoolsTyptool[]PožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Poletool_choiceTypstring|objectPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Poleparallel_tool_callsTypbooleanPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Polereasoning.effortTypstringPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Polereasoning.summaryTypstringPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Poletext.formatTypobjectPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Poletext.verbosityTypstringPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
PoleincludeTypstring[]PožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
PolestoreTypbooleanPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Poleprevious_response_idTypstringPožadavekVolitelnéHodnoty a limity
Požadavek na ID: Pouze skutečné ID odpovědi z podporovaného pokračování
Závisí na modelu
Výchozí—
Poleservice_tierTypstringPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Poleprompt_cache_keyTypstringPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Poleprompt_cache_optionsTypobjectPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Kombinace vstupních materiálů

Text · text UTF8

vstupní text nebo část input_text

Text + obrázek

{type:input_image,image_url}

Parametry a životní cyklus metody
ParametrKontrakt
Parametrmaterial_typesKontrakttext, image
ParametrrequiredKontraktmodel, input
Parametroptional_controlsKontraktnull
Parametrcontent_typeKontraktapplication/json
Parametrtext_file_materialKontraktskutečný obsah UTF-8 vložený jako text; ID/URLs souborů vyžadují samostatnou přesně vymezenou podporu

Životní cyklus: exact retained published method

Struktury metod a ID jsou přesné; schopnosti dodavatele jsou oddělené od připuštění požadavku.

Tarify

Sazby metod Ailoot

Ailoot OpenAI ResponsesPOST /v1/responses
Vstup
0,00025 US$ / 1K
Výstup
0,0015 US$ / 1K
Čtení z mezipaměti
0,00005 US$ / 1K
Zápis do mezipaměti
0,00025 US$ / 1K
Zápis do mezipaměti, 5 min
0,00025 US$ / 1K tokens

Ceny podle délky požadavku · OpenAI Responses

Velikost požadavku v tokenechVstupVýstupČtení z mezipamětiZápis do mezipamětiMezipaměť 5 minMezipaměť 1 hodina
Velikost požadavku v tokenech(0; 256 000]Vstup0,00025 US$Výstup0,0015 US$Čtení z mezipaměti0,00005 US$Zápis do mezipaměti0,00025 US$Mezipaměť 5 min0,00025 US$Mezipaměť 1 hodinaZákladní: —
Velikost požadavku v tokenech(256 000; ∞)Vstup0,001 US$Výstup0,004 US$Čtení z mezipaměti0,0002 US$Zápis do mezipaměti0,001 US$Mezipaměť 5 min0,001 US$Mezipaměť 1 hodinaZákladní: —

Sazby v USD za 1K tokenů. Není-li sazba nastavena, použije se zděděná základní sazba této metody; «—» znamená, že základní sazba není nastavena.

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í →

Podrobnosti referenčního tarifu

Referenční tabulky modelu nemění výběr metody, cenové nabídky ani poplatky. Skutečné poplatky používají sazby vybrané metody Ailoot.

Referenční tabulky modelu

Ceny podle konfigurace

Přiřaďte každý poplatek k uvedeným podmínkám. Pro každou sadu alternativních konfigurací použijte jednu sazbu.

KonfiguraceTabulka sazebTokeny kontextu, více nežTokeny kontextu, do uvedené hodnoty včetněPoplatek
KonfiguraceOpenAI Chat · Základní sazby za tokenyTabulka sazebZákladní sazbaTokeny kontextu, více než—Tokeny kontextu, do uvedené hodnoty včetněBez horní mezePoplatek
Vstup · Vstupní tokeny $0.000375 / 1K tokenů
Výstup · Výstupní tokeny $0.00225 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.00046875 / 1K tokenů
Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů
KonfiguraceOpenAI Chat · Úroveň 1 podle délky požadavkuTabulka sazeb—Tokeny kontextu, více než0Tokeny kontextu, do uvedené hodnoty včetně256 000Poplatek
Vstup · Vstupní tokeny $0.000375 / 1K tokenů
Výstup · Výstupní tokeny $0.00225 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.00046875 / 1K tokenů
Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů
KonfiguraceOpenAI Chat · Úroveň 2 podle délky požadavkuTabulka sazeb—Tokeny kontextu, více než256 000Tokeny kontextu, do uvedené hodnoty včetněBez horní mezePoplatek
Vstup · Vstupní tokeny $0.0015 / 1K tokenů
Výstup · Výstupní tokeny $0.006 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.001875 / 1K tokenů
Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů
KonfiguraceAnthropic Messages · Základní sazby za tokenyTabulka sazebZákladní sazbaTokeny kontextu, více než—Tokeny kontextu, do uvedené hodnoty včetněBez horní mezePoplatek
Vstup · Vstupní tokeny $0.000375 / 1K tokenů
Výstup · Výstupní tokeny $0.00225 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.00046875 / 1K tokenů
Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů
KonfiguraceAnthropic Messages · Úroveň 1 podle délky požadavkuTabulka sazeb—Tokeny kontextu, více než0Tokeny kontextu, do uvedené hodnoty včetně256 000Poplatek
Vstup · Vstupní tokeny $0.000375 / 1K tokenů
Výstup · Výstupní tokeny $0.00225 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.00046875 / 1K tokenů
Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů
KonfiguraceAnthropic Messages · Úroveň 2 podle délky požadavkuTabulka sazeb—Tokeny kontextu, více než256 000Tokeny kontextu, do uvedené hodnoty včetněBez horní mezePoplatek
Vstup · Vstupní tokeny $0.0015 / 1K tokenů
Výstup · Výstupní tokeny $0.006 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.001875 / 1K tokenů
Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů

Příklady požadavků

Ailoot · OpenAI Responses

Textový příkladVstup, obrázekPython SDKNode.js SDKStreamování v Pythonu
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "qwen3.6-flash", "input": ""}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["input"]="Summarize this material and quote supporting source passages.\n\n"+text
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/responses \
  -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 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(json.loads(Path("result.json").read_text(encoding="utf-8")))
PY_RESULT
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_FILE:?Set your actual PNG JPEG or WebP image}"
export AILOOT_IMAGE_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "qwen3.6-flash", "input": [{"role": "user", "content": [{"type": "input_text", "text": "Read labels and numbers in this image; flag unreadable text."}]}]}')
import base64
f=Path(os.environ["AILOOT_IMAGE_FILE"])
if not f.is_file():raise SystemExit("Choose an actual PNG JPEG or WebP image")
raw=f.read_bytes()
mime="image/png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "image/jpeg" if raw.startswith(b"\xff\xd8") else "image/webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else None
if not mime:raise SystemExit("Use PNG JPEG or WebP")
b64=base64.b64encode(raw).decode()
p["input"][0]["content"].append({"type":"input_image","image_url":"data:"+mime+";base64,"+b64})
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/responses \
  -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 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(json.loads(Path("result.json").read_text(encoding="utf-8")))
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)
resp = client.responses.create(model="qwen3.6-flash", input="Explain the difference between an observation and a hypothesis 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(resp.to_dict(mode="json"))
import OpenAI from "openai";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new OpenAI({ baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const resp = await client.responses.create({ model: "qwen3.6-flash", input: "Explain the difference between an observation and a hypothesis in three sentences." });
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(resp);
from openai import OpenAI
import os
from pathlib import Path
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))

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)
with client.responses.stream(model="qwen3.6-flash", input="Explain the difference between an observation and a hypothesis 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_response()
    save_result(final.to_dict(mode="json"),"stream-result")

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

Ailoot · OpenAI Responses

json nebo SSE

Uchovejte všechny dokončené výsledky

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

Zachovejte každou výstupní položku a část obsahu, skutečné call_id funkce, šifrované uvažování a údaje o využití. Při streamování uchovejte úplnou identitu události/položky.

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
PoleTyp
PoleidTypstring
PolestatusTypstring
Poleoutput[]Typmessage|reasoning|function_call|other item
Poleoutput[].content[]Typcontent part
PoleusageTypobject
Chyby a další kroky
OdpověďPodmínkaDalší krok
Odpověď400 · invalid_request_errorPodmínkaNeplatná povinná pole, reprezentace podkladů nebo hodnota parametruDalší krokPřed novým požadavkem na vytvoření opravte uvedená pole.

Aliasy

Aliasy modelu

Ailoot qwen3.6-flash
Ailoot Ultra qwen3.6-flash, qwen/qwen3.6-flash

Aliasy cest metod

/chat/completions

Související ID modelů

qwen/qwen3.6-flash, qwen3.6-flash, qwen3.6-flash

Ailoot · OpenAI Chat POST /v1/chat/completions qwen3.6-flash

qwen3.6-flash

Alibaba /qwen3.6-flash

Úvod

Qwen3.6 Flash je model Qwen společnosti Alibaba pro porozumění textu, obrázkům a videu s textovými odpověďmi. Poskytuje kontext milionu tokenů a dokumentované ovládání uvažování, nástrojů a strukturovaného výstupu pro cílené úlohy multimodálních asistentů.

Přijímané vstupy
Text · Obrázky
Výsledky
Text

Dostupné v Ailoot · vstupy a metody

Ailoot · OpenAI Chat POST /v1/chat/completions
Vstup
text, image
Výstup
text
Kontext
991 808 tokens
Maximální výstup
65 536 tokens
Výstupní formát
json nebo SSE
PoleTypPožadavekHodnoty a limityVýchozí
PolemodelTypstringPožadavekPovinnéHodnoty a limity
qwen3.6-flash
Výchozí—
PolemessagesTypmessage[]PožadavekPovinnéHodnoty a limity
Minimální počet položek: 1
Výchozí—
Polemessages[].roleTypstringPož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í—
Polemessages[].contentTypstring|content_part[]|nullPožadavekVolitelnéHodnoty a limityVýchozí—
Polemessages[].tool_callsTyptool_call[]PožadavekVolitelnéHodnoty a limityVýchozí—
Polemessages[].tool_call_idTypstringPožadavekVolitelnéHodnoty a limity
Platí, když: role=tool; použijte skutečně vrácené ID
Výchozí—
Polemessages[].nameTypstringPožadavekVolitelnéHodnoty a limityVýchozí—
Polemessages[].reasoning_contentTypstringPož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í—
Polemessages[].reasoning_detailsTypobject|arrayPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Polemax_tokensTypintegerPožadavekVolitelnéHodnoty a limity
Minimum: 1
Závisí na modelu
Výchozí—
Polemax_completion_tokensTypintegerPožadavekVolitelnéHodnoty a limity
Minimum: 1
Závisí na modelu
Výchozí—
PolestreamTypbooleanPožadavekVolitelnéHodnoty a limityVýchozífalse
Polestream_options.include_usageTypbooleanPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
PoletemperatureTypnumberPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Poletop_pTypnumberPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
PolestopTypstring|string[]PožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
PoletoolsTypfunction_tool[]PožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Poletools[].typeTypstringPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Poletools[].function.nameTypstringPožadavekPovinnéHodnoty a limity
Platí, když: nástroj typu funkce je dodán
Výchozí—
Poletools[].function.descriptionTypstringPožadavekVolitelnéHodnoty a limityVýchozí—
Poletools[].function.parametersTypJSON_schemaPožadavekVolitelnéHodnoty a limityVýchozí—
Poletool_choiceTypstring|objectPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Poleparallel_tool_callsTypbooleanPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Poleresponse_formatTypobjectPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Polereasoning_effortTypstringPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
PolereasoningTypobjectPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Poleservice_tierTypstringPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
PoleinstructionsTypstringPožadavekVolitelnéHodnoty a limity
Pole kompatibility
Výchozí—
PolefunctionsTypfunction[]PožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Polefunction_callTypstring|objectPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Poleprompt_cache_optionsTypobjectPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Kombinace vstupních materiálů

Text · text UTF8

messages[].content

Text + obrázek

{type:image_url,image_url:{url,detail}}

Parametry a životní cyklus metody
ParametrKontrakt
Parametrmaterial_typesKontrakttext, image
ParametrrequiredKontraktmodel, messages
Parametroptional_controlsKontraktnull
Parametrcontent_typeKontraktapplication/json
Parametrtext_file_materialKontraktskutečný obsah UTF-8 vložený jako text; ID/URLs souborů vyžadují samostatnou přesně vymezenou podporu

Životní cyklus: exact retained published method

Struktury metod a ID jsou přesné; schopnosti dodavatele jsou oddělené od připuštění požadavku.

Tarify

Sazby metod Ailoot

Ailoot OpenAI ChatPOST /v1/chat/completions
Vstup
0,00025 US$ / 1K
Výstup
0,0015 US$ / 1K
Čtení z mezipaměti
0,00005 US$ / 1K
Zápis do mezipaměti
0,00025 US$ / 1K
Zápis do mezipaměti, 5 min
0,00025 US$ / 1K tokens

Ceny podle délky požadavku · OpenAI Chat

Velikost požadavku v tokenechVstupVýstupČtení z mezipamětiZápis do mezipamětiMezipaměť 5 minMezipaměť 1 hodina
Velikost požadavku v tokenech(0; 256 000]Vstup0,00025 US$Výstup0,0015 US$Čtení z mezipaměti0,00005 US$Zápis do mezipaměti0,00025 US$Mezipaměť 5 min0,00025 US$Mezipaměť 1 hodinaZákladní: —
Velikost požadavku v tokenech(256 000; ∞)Vstup0,001 US$Výstup0,004 US$Čtení z mezipaměti0,0002 US$Zápis do mezipaměti0,001 US$Mezipaměť 5 min0,001 US$Mezipaměť 1 hodinaZákladní: —

Sazby v USD za 1K tokenů. Není-li sazba nastavena, použije se zděděná základní sazba této metody; «—» znamená, že základní sazba není nastavena.

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í →

Podrobnosti referenčního tarifu

Referenční tabulky modelu nemění výběr metody, cenové nabídky ani poplatky. Skutečné poplatky používají sazby vybrané metody Ailoot.

Referenční tabulky modelu

Ceny podle konfigurace

Přiřaďte každý poplatek k uvedeným podmínkám. Pro každou sadu alternativních konfigurací použijte jednu sazbu.

KonfiguraceTabulka sazebTokeny kontextu, více nežTokeny kontextu, do uvedené hodnoty včetněPoplatek
KonfiguraceOpenAI Chat · Základní sazby za tokenyTabulka sazebZákladní sazbaTokeny kontextu, více než—Tokeny kontextu, do uvedené hodnoty včetněBez horní mezePoplatek
Vstup · Vstupní tokeny $0.000375 / 1K tokenů
Výstup · Výstupní tokeny $0.00225 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.00046875 / 1K tokenů
Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů
KonfiguraceOpenAI Chat · Úroveň 1 podle délky požadavkuTabulka sazeb—Tokeny kontextu, více než0Tokeny kontextu, do uvedené hodnoty včetně256 000Poplatek
Vstup · Vstupní tokeny $0.000375 / 1K tokenů
Výstup · Výstupní tokeny $0.00225 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.00046875 / 1K tokenů
Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů
KonfiguraceOpenAI Chat · Úroveň 2 podle délky požadavkuTabulka sazeb—Tokeny kontextu, více než256 000Tokeny kontextu, do uvedené hodnoty včetněBez horní mezePoplatek
Vstup · Vstupní tokeny $0.0015 / 1K tokenů
Výstup · Výstupní tokeny $0.006 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.001875 / 1K tokenů
Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů
KonfiguraceAnthropic Messages · Základní sazby za tokenyTabulka sazebZákladní sazbaTokeny kontextu, více než—Tokeny kontextu, do uvedené hodnoty včetněBez horní mezePoplatek
Vstup · Vstupní tokeny $0.000375 / 1K tokenů
Výstup · Výstupní tokeny $0.00225 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.00046875 / 1K tokenů
Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů
KonfiguraceAnthropic Messages · Úroveň 1 podle délky požadavkuTabulka sazeb—Tokeny kontextu, více než0Tokeny kontextu, do uvedené hodnoty včetně256 000Poplatek
Vstup · Vstupní tokeny $0.000375 / 1K tokenů
Výstup · Výstupní tokeny $0.00225 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.00046875 / 1K tokenů
Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů
KonfiguraceAnthropic Messages · Úroveň 2 podle délky požadavkuTabulka sazeb—Tokeny kontextu, více než256 000Tokeny kontextu, do uvedené hodnoty včetněBez horní mezePoplatek
Vstup · Vstupní tokeny $0.0015 / 1K tokenů
Výstup · Výstupní tokeny $0.006 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.001875 / 1K tokenů
Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů

Příklady požadavků

Ailoot · OpenAI Chat

Textový příkladVstup, obrázekPython SDKNode.js SDKStreamování v Pythonu
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "qwen3.6-flash", "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
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
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_FILE:?Set your actual PNG JPEG or WebP image}"
export AILOOT_IMAGE_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "qwen3.6-flash", "messages": [{"role": "user", "content": [{"type": "text", "text": "Read labels and numbers in this image; flag unreadable text."}]}]}')
import base64
f=Path(os.environ["AILOOT_IMAGE_FILE"])
if not f.is_file():raise SystemExit("Choose an actual PNG JPEG or WebP image")
raw=f.read_bytes()
mime="image/png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "image/jpeg" if raw.startswith(b"\xff\xd8") else "image/webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else None
if not mime:raise SystemExit("Use PNG JPEG or WebP")
b64=base64.b64encode(raw).decode()
p["messages"][0]["content"].append({"type":"image_url","image_url":{"url":"data:"+mime+";base64,"+b64}})
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
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
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)
resp = client.chat.completions.create(
    model="qwen3.6-flash",
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis 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(resp.to_dict(mode="json"))
import OpenAI from "openai";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new OpenAI({ baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const resp = await client.chat.completions.create({
  model: "qwen3.6-flash",
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(resp);
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='qwen3.6-flash',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 · 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
PoleTyp
Polechoices[].indexTypinteger
Polechoices[].message.contentTypstring|null
Polechoices[].message.tool_callsTyptool_call[]
Polechoices[].message.reasoning_contentTypstring
Polechoices[].message.reasoning_detailsTypobject|array
Polechoices[].finish_reasonTypstring|null
PoleusageTypobject
Chyby a další kroky
OdpověďPodmínkaDalší krok
Odpověď400 · invalid_request_errorPodmínkaNeplatná povinná pole, reprezentace podkladů nebo hodnota parametruDalší krokPřed novým požadavkem na vytvoření opravte uvedená pole.

Aliasy

Aliasy modelu

Ailoot qwen3.6-flash
Ailoot Ultra qwen3.6-flash, qwen/qwen3.6-flash

Aliasy cest metod

/chat/completions

Související ID modelů

qwen/qwen3.6-flash, qwen3.6-flash, qwen3.6-flash

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions qwen3.6-flash

qwen3.6-flash

Alibaba /qwen3.6-flash
ID modelu
  • qwen3.6-flash
  • qwen/qwen3.6-flash

Úvod

Qwen3.6 Flash je model Qwen společnosti Alibaba pro porozumění textu, obrázkům a videu s textovými odpověďmi. Poskytuje kontext milionu tokenů a dokumentované ovládání uvažování, nástrojů a strukturovaného výstupu pro cílené úlohy multimodálních asistentů.

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
PoleTypPožadavekHodnoty a limityVýchozí
PolemodelTypstringPožadavekPovinnéHodnoty a limity
qwen3.6-flash
Výchozí—
PolemessagesTypmessage[]PožadavekPovinnéHodnoty a limity
Minimální počet položek: 1
Výchozí—
Polemessages[].roleTypstringPožadavekPovinnéHodnoty a limity
Závisí na modelu
Výchozí—
Polemessages[].contentTypstringPožadavekVolitelnéHodnoty a limity
Platí, když: Textová konverzace
Výchozí—
PolestreamTypbooleanPožadavekVolitelnéHodnoty a limityVýchozífalse
Kombinace vstupních materiálů

Text · text UTF8

messages[].content

Parametry a životní cyklus metody
ParametrKontrakt
Parametrcontent_typeKontraktapplication/json
ParametrrequiredKontraktmodel, messages
Parametrmaterial_typesKontrakttext
ParametrmessagesKontraktpole zpráv se strukturou role/content
Parametrfile_materialKontraktskutečný dokument UTF-8 vložený jako doslovný text; ID souboru se neodvozuje
Parametroptional_controlsKontraktstream
Parametrcontrol_scopeKontraktTextová konverzace; stream je booleovská hodnota a ve výchozím nastavení je false.
Parametroutput_modalitiesKontrakttext
Parametrhosted_operationsKontraktfalse
Parametrmultimodal_input_bindingKontraktnull

Aliasy metody: /chat/completions

Ž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
Standardní sazba Při výběru rychlého režimu
Režim flex
Standardní sazba Při výběru režimu flex
Maximální intenzita uvažování
Standardní sazba Když se při maximální intenzitě uvažování použije výchozí úprava (default)

Sazby Ailoot

Ceny podle konfigurace

Přiřaďte každý poplatek k uvedeným podmínkám. Pro každou sadu alternativních konfigurací použijte jednu sazbu.

KonfiguraceTabulka sazebTokeny kontextu, více nežTokeny kontextu, do uvedené hodnoty včetněPoplatek
KonfiguraceZákladní sazby za tokenyTabulka sazebZákladní sazbaTokeny kontextu, více než—Tokeny kontextu, do uvedené hodnoty včetněBez horní mezePoplatek
Vstup · Vstupní tokeny $0.000375 / 1K tokenů
Výstup · Výstupní tokeny $0.00225 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.00046875 / 1K tokenů
Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů
KonfiguracePásmo délky požadavku 1Tabulka sazeb—Tokeny kontextu, více než0Tokeny kontextu, do uvedené hodnoty včetně256 000Poplatek
Vstup · Vstupní tokeny $0.000375 / 1K tokenů
Výstup · Výstupní tokeny $0.00225 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.00046875 / 1K tokenů
Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů
KonfiguracePásmo délky požadavku 2Tabulka sazeb—Tokeny kontextu, více než256 000Tokeny kontextu, do uvedené hodnoty včetněBez horní mezePoplatek
Vstup · Vstupní tokeny $0.0015 / 1K tokenů
Výstup · Výstupní tokeny $0.006 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.001875 / 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í →

Příklady požadavků

Ailoot Ultra · OpenAI Chat

curlPython SDK
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"qwen3.6-flash","messages":[{"role":"user","content":"hello"}],"stream":false}')

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="qwen3.6-flash", messages=[{"role":"user","content":"hello"}], stream=False)
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"))

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
PoleTyp
Polechoices[].indexTypinteger
Polechoices[].message.contentTypstring|null
Polechoices[].message.tool_callsTyptool_call[]
Polechoices[].message.reasoning_contentTypstring
Polechoices[].message.reasoning_detailsTypobject|array
Polechoices[].finish_reasonTypstring|null
PoleusageTypobject
Chyby a další kroky
OdpověďPodmínkaDalší krok
Odpověď400 · invalid_request_errorPodmínkaNeplatná povinná pole, reprezentace podkladů nebo hodnota parametruDalší krokPřed novým požadavkem na vytvoření opravte uvedená pole.

Aliasy

Aliasy modelu

Ailoot qwen3.6-flash
Ailoot Ultra qwen3.6-flash, qwen/qwen3.6-flash

Aliasy cest metod

/chat/completions

Související ID modelů

qwen/qwen3.6-flash, qwen3.6-flash, qwen3.6-flash

Ailoot Ultra · Anthropic Messages POST /v1/messages qwen3.6-flash

qwen3.6-flash

Alibaba /qwen3.6-flash
ID modelu
  • qwen3.6-flash
  • qwen/qwen3.6-flash

Úvod

Qwen3.6 Flash je model Qwen společnosti Alibaba pro porozumění textu, obrázkům a videu s textovými odpověďmi. Poskytuje kontext milionu tokenů a dokumentované ovládání uvažování, nástrojů a strukturovaného výstupu pro cílené úlohy multimodálních asistentů.

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
PoleTypPožadavekHodnoty a limityVýchozí
PolemodelTypstringPožadavekPovinnéHodnoty a limity
qwen3.6-flash
Výchozí—
PolemessagesTypmessage[]PožadavekPovinnéHodnoty a limityVýchozí—
Polemessages[].roleTypstringPožadavekPovinnéHodnoty a limity
user, assistant
Výchozí—
Polemessages[].contentTypstringPožadavekPovinnéHodnoty a limityVýchozí—
Polemax_tokensTypintegerPožadavekPovinnéHodnoty a limityVýchozí—
PolestreamTypbooleanPožadavekVolitelnéHodnoty a limityVýchozífalse
Kombinace vstupních materiálů

Text · text UTF-8

řetězec messages[].content

Parametry a životní cyklus metody
ParametrKontrakt
Parametrcontent_typeKontraktapplication/json
ParametrrequiredKontraktmodel, messages, max_tokens
Parametroptional_controlsKontraktstream
Parametrmaterial_typesKontrakttext
Parametrtext_file_materialKontraktPř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
Standardní sazba Při výběru rychlého režimu
Režim flex
Standardní sazba Při výběru režimu flex
Maximální intenzita uvažování
Standardní sazba Když se při maximální intenzitě uvažování použije výchozí úprava (default)

Sazby Ailoot

Ceny podle konfigurace

Přiřaďte každý poplatek k uvedeným podmínkám. Pro každou sadu alternativních konfigurací použijte jednu sazbu.

KonfiguraceTabulka sazebTokeny kontextu, více nežTokeny kontextu, do uvedené hodnoty včetněPoplatek
KonfiguraceZákladní sazby za tokenyTabulka sazebZákladní sazbaTokeny kontextu, více než—Tokeny kontextu, do uvedené hodnoty včetněBez horní mezePoplatek
Vstup · Vstupní tokeny $0.000375 / 1K tokenů
Výstup · Výstupní tokeny $0.00225 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.00046875 / 1K tokenů
Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů
KonfiguracePásmo délky požadavku 1Tabulka sazeb—Tokeny kontextu, více než0Tokeny kontextu, do uvedené hodnoty včetně256 000Poplatek
Vstup · Vstupní tokeny $0.000375 / 1K tokenů
Výstup · Výstupní tokeny $0.00225 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.00046875 / 1K tokenů
Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů
KonfiguracePásmo délky požadavku 2Tabulka sazeb—Tokeny kontextu, více než256 000Tokeny kontextu, do uvedené hodnoty včetněBez horní mezePoplatek
Vstup · Vstupní tokeny $0.0015 / 1K tokenů
Výstup · Výstupní tokeny $0.006 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.001875 / 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í →

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
{
  "model": "qwen3.6-flash",
  "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': 'qwen3.6-flash', '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': 'qwen3.6-flash', '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
PoleTyp
PoleidTypstring
PolemodelTypstring
Polecontent[]Typtext|thinking|tool_use|other content block
Polestop_reasonTypstring|null
PoleusageTypobject
Chyby a další kroky
OdpověďPodmínkaDalší krok
Odpověď400 · invalid_request_errorPodmínkaNeplatná povinná pole, reprezentace podkladů nebo hodnota parametruDalší krokPřed novým požadavkem na vytvoření opravte uvedená pole.

Aliasy

Aliasy modelu

Ailoot qwen3.6-flash
Ailoot Ultra qwen3.6-flash, qwen/qwen3.6-flash

Aliasy cest metod

/chat/completions

Související ID modelů

qwen/qwen3.6-flash, qwen3.6-flash, qwen3.6-flash

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions qwen/qwen3.6-flash

qwen/qwen3.6-flash

Alibaba /qwen/qwen3.6-flash
ID modelu
  • qwen3.6-flash
  • qwen/qwen3.6-flash

Úvod

Qwen3.6 Flash je model Qwen společnosti Alibaba pro porozumění textu, obrázkům a videu s textovými odpověďmi. Poskytuje kontext milionu tokenů a dokumentované ovládání uvažování, nástrojů a strukturovaného výstupu pro cílené úlohy multimodálních asistentů.

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
PoleTypPožadavekHodnoty a limityVýchozí
PolemodelTypstringPožadavekPovinnéHodnoty a limity
qwen/qwen3.6-flash
Výchozí—
PolemessagesTypmessage[]PožadavekPovinnéHodnoty a limity
Minimální počet položek: 1
Výchozí—
Polemessages[].roleTypstringPož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í—
Polemessages[].contentTypstring|content_part[]|nullPožadavekVolitelnéHodnoty a limityVýchozí—
Polemessages[].tool_callsTyptool_call[]PožadavekVolitelnéHodnoty a limityVýchozí—
Polemessages[].tool_call_idTypstringPožadavekVolitelnéHodnoty a limity
Platí, když: role=tool; použijte skutečně vrácené ID
Výchozí—
Polemessages[].nameTypstringPožadavekVolitelnéHodnoty a limityVýchozí—
Polemessages[].reasoning_contentTypstringPož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í—
Polemessages[].reasoning_detailsTypobject|arrayPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Polemax_tokensTypintegerPožadavekVolitelnéHodnoty a limity
Minimum: 1
Závisí na modelu
Výchozí—
Polemax_completion_tokensTypintegerPožadavekVolitelnéHodnoty a limity
Minimum: 1
Závisí na modelu
Výchozí—
PolestreamTypbooleanPožadavekVolitelnéHodnoty a limityVýchozífalse
Polestream_options.include_usageTypbooleanPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
PoletemperatureTypnumberPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Poletop_pTypnumberPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
PolestopTypstring|string[]PožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
PoletoolsTypfunction_tool[]PožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Poletools[].typeTypstringPožadavekVolitelnéHodnoty a limity
function
Závisí na modelu
Výchozí—
Poletools[].function.nameTypstringPožadavekPovinnéHodnoty a limity
Platí, když: nástroj typu funkce je dodán
Výchozí—
Poletools[].function.descriptionTypstringPožadavekVolitelnéHodnoty a limityVýchozí—
Poletools[].function.parametersTypJSON_schemaPožadavekVolitelnéHodnoty a limityVýchozí—
Poletool_choiceTypstring|objectPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Poleparallel_tool_callsTypbooleanPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Poleresponse_formatTypobjectPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Polereasoning_effortTypstringPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
PolereasoningTypobjectPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Poleservice_tierTypstringPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
PoleinstructionsTypstringPožadavekVolitelnéHodnoty a limity
Pole kompatibility
Výchozí—
PolefunctionsTypfunction[]PožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Polefunction_callTypstring|objectPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
Poleprompt_cache_optionsTypobjectPožadavekVolitelnéHodnoty a limity
Závisí na modelu
Výchozí—
PolemodalitiesTypstring[]PožadavekVolitelnéHodnoty a limity
text
Výchozí—
PoleproviderTypobjectPožadavekVolitelnéHodnoty a limity
Podmínky: provider.options je na této textové trase Ultra odmítáno
Výchozí—
Polecache_control.ttlTypstringPož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
ParametrKontrakt
Parametrcontent_typeKontraktapplication/json
ParametrrequiredKontraktmodel, messages
Parametrmaterial_typesKontrakttext
ParametrmessagesKontraktpole zpráv se strukturou role/content
Parametrfile_materialKontraktskutečný dokument UTF-8 vložený jako doslovný text; ID souboru se neodvozuje
Parametroptional_controlsKontraktstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice
Parametrcontrol_scopeKontraktspecifické pro model; nástroje uživatelských funkcí se liší od hostovaných nástrojů
Parametroutput_modalitiesKontrakttext
Parametrhosted_operationsKontraktfalse
Parametrmultimodal_input_bindingKontraktnull

Ž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
Standardní sazba Při výběru rychlého režimu
Režim flex
Standardní sazba Při výběru režimu flex
Maximální intenzita uvažování
Standardní sazba Když se při maximální intenzitě uvažování použije výchozí úprava (default)

Sazby Ailoot

Ceny podle konfigurace

Přiřaďte každý poplatek k uvedeným podmínkám. Pro každou sadu alternativních konfigurací použijte jednu sazbu.

KonfiguraceTabulka sazebTokeny kontextu, více nežTokeny kontextu, do uvedené hodnoty včetněPoplatek
KonfiguraceZákladní sazby za tokenyTabulka sazebZákladní sazbaTokeny kontextu, více než—Tokeny kontextu, do uvedené hodnoty včetněBez horní mezePoplatek
Vstup · Vstupní tokeny $0.000375 / 1K tokenů
Výstup · Výstupní tokeny $0.00225 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.00046875 / 1K tokenů
Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů
KonfiguracePásmo délky požadavku 1Tabulka sazeb—Tokeny kontextu, více než0Tokeny kontextu, do uvedené hodnoty včetně256 000Poplatek
Vstup · Vstupní tokeny $0.000375 / 1K tokenů
Výstup · Výstupní tokeny $0.00225 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.00046875 / 1K tokenů
Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů
KonfiguracePásmo délky požadavku 2Tabulka sazeb—Tokeny kontextu, více než256 000Tokeny kontextu, do uvedené hodnoty včetněBez horní mezePoplatek
Vstup · Vstupní tokeny $0.0015 / 1K tokenů
Výstup · Výstupní tokeny $0.006 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.001875 / 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í →

Příklady požadavků

Ailoot Ultra · OpenAI Chat

curlPython SDKStreamování v Pythonu
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.6-flash", "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.6-flash',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.6-flash',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
PoleTyp
Polechoices[].indexTypinteger
Polechoices[].message.contentTypstring|null
Polechoices[].message.tool_callsTyptool_call[]
Polechoices[].message.reasoning_contentTypstring
Polechoices[].message.reasoning_detailsTypobject|array
Polechoices[].finish_reasonTypstring|null
PoleusageTypobject
Chyby a další kroky
OdpověďPodmínkaDalší krok
Odpověď400 · invalid_request_errorPodmínkaNeplatná povinná pole, reprezentace podkladů nebo hodnota parametruDalší krokPřed novým požadavkem na vytvoření opravte uvedená pole.

Aliasy

Aliasy modelu

Ailoot qwen3.6-flash
Ailoot Ultra qwen3.6-flash, qwen/qwen3.6-flash

Aliasy cest metod

/chat/completions

Související ID modelů

qwen/qwen3.6-flash, qwen3.6-flash, qwen3.6-flash

Ailoot Ultra · Anthropic Messages POST /v1/messages qwen/qwen3.6-flash

qwen/qwen3.6-flash

Alibaba /qwen/qwen3.6-flash
ID modelu
  • qwen3.6-flash
  • qwen/qwen3.6-flash

Úvod

Qwen3.6 Flash je model Qwen společnosti Alibaba pro porozumění textu, obrázkům a videu s textovými odpověďmi. Poskytuje kontext milionu tokenů a dokumentované ovládání uvažování, nástrojů a strukturovaného výstupu pro cílené úlohy multimodálních asistentů.

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
PoleTypPožadavekHodnoty a limityVýchozí
PolemodelTypstringPožadavekPovinnéHodnoty a limity
qwen/qwen3.6-flash
Výchozí—
PolemessagesTypmessage[]PožadavekPovinnéHodnoty a limityVýchozí—
Polemessages[].roleTypstringPožadavekPovinnéHodnoty a limity
user, assistant
Výchozí—
Polemessages[].contentTypstringPožadavekPovinnéHodnoty a limityVýchozí—
Polemax_tokensTypintegerPožadavekPovinnéHodnoty a limityVýchozí—
PolestreamTypbooleanPožadavekVolitelnéHodnoty a limityVýchozífalse
Kombinace vstupních materiálů

Text · text UTF-8

řetězec messages[].content

Parametry a životní cyklus metody
ParametrKontrakt
Parametrcontent_typeKontraktapplication/json
ParametrrequiredKontraktmodel, messages, max_tokens
Parametroptional_controlsKontraktstream
Parametrmaterial_typesKontrakttext
Parametrtext_file_materialKontraktPř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
Standardní sazba Při výběru rychlého režimu
Režim flex
Standardní sazba Při výběru režimu flex
Maximální intenzita uvažování
Standardní sazba Když se při maximální intenzitě uvažování použije výchozí úprava (default)

Sazby Ailoot

Ceny podle konfigurace

Přiřaďte každý poplatek k uvedeným podmínkám. Pro každou sadu alternativních konfigurací použijte jednu sazbu.

KonfiguraceTabulka sazebTokeny kontextu, více nežTokeny kontextu, do uvedené hodnoty včetněPoplatek
KonfiguraceZákladní sazby za tokenyTabulka sazebZákladní sazbaTokeny kontextu, více než—Tokeny kontextu, do uvedené hodnoty včetněBez horní mezePoplatek
Vstup · Vstupní tokeny $0.000375 / 1K tokenů
Výstup · Výstupní tokeny $0.00225 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.00046875 / 1K tokenů
Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů
KonfiguracePásmo délky požadavku 1Tabulka sazeb—Tokeny kontextu, více než0Tokeny kontextu, do uvedené hodnoty včetně256 000Poplatek
Vstup · Vstupní tokeny $0.000375 / 1K tokenů
Výstup · Výstupní tokeny $0.00225 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.00046875 / 1K tokenů
Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů
KonfiguracePásmo délky požadavku 2Tabulka sazeb—Tokeny kontextu, více než256 000Tokeny kontextu, do uvedené hodnoty včetněBez horní mezePoplatek
Vstup · Vstupní tokeny $0.0015 / 1K tokenů
Výstup · Výstupní tokeny $0.006 / 1K tokenů
Vstup · Čtení z mezipaměti — / 1K tokenů
Vstup · Zápis do mezipaměti $0.001875 / 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í →

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
{
  "model": "qwen/qwen3.6-flash",
  "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.6-flash', '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.6-flash', '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
PoleTyp
PoleidTypstring
PolemodelTypstring
Polecontent[]Typtext|thinking|tool_use|other content block
Polestop_reasonTypstring|null
PoleusageTypobject
Chyby a další kroky
OdpověďPodmínkaDalší krok
Odpověď400 · invalid_request_errorPodmínkaNeplatná povinná pole, reprezentace podkladů nebo hodnota parametruDalší krokPřed novým požadavkem na vytvoření opravte uvedená pole.

Aliasy

Aliasy modelu

Ailoot qwen3.6-flash
Ailoot Ultra qwen3.6-flash, qwen/qwen3.6-flash

Aliasy cest metod

/chat/completions

Související ID modelů

qwen/qwen3.6-flash, qwen3.6-flash, qwen3.6-flash

FAQ · Qwen: Qwen3.6 Flash
Jaké vstupy a výsledky jsou dostupné?

POST /v1/messages · qwen3.6-flash: text, image → text

POST /v1/responses · qwen3.6-flash: text, image → text

POST /v1/chat/completions · qwen3.6-flash: text, image → text

POST /v1/chat/completions · qwen3.6-flash: text → text

POST /v1/messages · qwen3.6-flash: text → json, sse

POST /v1/chat/completions · qwen/qwen3.6-flash: text → text

POST /v1/messages · qwen/qwen3.6-flash: text → json, sse

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

POST /v1/messages · qwen3.6-flash: model, messages, system, max_tokens, stream, metadata

POST /v1/responses · qwen3.6-flash: model, input, instructions, stream

POST /v1/chat/completions · qwen3.6-flash: model, messages, stream

POST /v1/chat/completions · qwen3.6-flash: model, messages, stream

POST /v1/messages · qwen3.6-flash: model, messages, max_tokens, stream

POST /v1/chat/completions · qwen/qwen3.6-flash: model, messages, stream, modalities, provider

POST /v1/messages · qwen/qwen3.6-flash: model, messages, max_tokens, stream

Jaké limity platí?

POST /v1/messages · qwen3.6-flash: ctx: 991808; max_out: 65536; messages.min_items: 1; max_tokens.minimum: 1

POST /v1/responses · qwen3.6-flash: ctx: 991808; max_out: 65536

POST /v1/chat/completions · qwen3.6-flash: ctx: 991808; max_out: 65536; messages.min_items: 1

POST /v1/chat/completions · qwen3.6-flash: messages.min_items: 1

POST /v1/chat/completions · qwen/qwen3.6-flash: messages.min_items: 1

Další podrobnosti

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é · Zobrazit ceny modelů

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 · Nabídka a licenční smlouva