Source: https://ailoot.ai/models/fi/qwen-qwen3-8-2-4t-a95b/
Canonical: https://ailoot.ai/models/fi/qwen-qwen3-8-2-4t-a95b/
Language: fi

# Qwen: Qwen3.8 2.4T A95B

[Markdown](https://ailoot.ai/models/fi/qwen-qwen3-8-2-4t-a95b/index.md) · [JSON](https://ailoot.ai/models/fi/qwen-qwen3-8-2-4t-a95b/facts.json)

## [Qwen: Qwen3.8 2.4T A95B](https://ailoot.ai/models/fi/qwen-qwen3-8-2-4t-a95b/)

Qwen3.8-2.4T-A95B on Qwenin harva asiantuntijasekoitusmalli tekstipäättelyyn. Siinä on yhteensä 2.4 biljoonaa parametria, joista 95 miljardia aktivoituu. Tämä avoin malliversio käyttää aina pohdintaa, tukee säädettävää päättelypanosta ja säilyttää päättelykontekstin pitkäjänteisiä ohjelmointi- ja ammattitehtäviä varten.

- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `qwen/qwen3.8-2.4t-a95b`](https://ailoot.ai/models/fi/qwen-qwen3-8-2-4t-a95b/#method-0)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `qwen/qwen3.8-2.4t-a95b`](https://ailoot.ai/models/fi/qwen-qwen3-8-2-4t-a95b/#method-1)

Tietoa mallista

Tämä kuvaus kattaa mallin ominaisuudet. Ailootissa saatavilla olevat syötteet, tulosteet ja asetukset luetellaan alla valitulle menetelmälle.

Qwen3.8:n keskeiset ominaisuudet: pitkäjänteinen tekstipäättely

Qwen3.8-2.4T-A95B on avoin Qwen3.8-malliversio tekstipäättelyyn. Qwen kuvaa parannuksia ohjelmoinnissa, ammatillisessa työssä, tutkimuksessa ja pitkäkestoisissa agenttitehtävissä, mukaan lukien suunnittelu ja ympäristöpalautteen käyttö. Se vastaanottaa ja tuottaa tekstiä. Valmistaja erottaa sen nimenomaisesti hallinnoidusta Qwen3.8-Max-palvelusta: kuvasisältöinen syöte ja tuki ilman pohdintaa vastaamiselle ovat kyseisen palvelun lisäominaisuuksia, eivät tämän täsmällisen avoimen malliversion kykyjä.

Anna ohjelmointitehtävässä olennaiset moduulit, vaatimus ja syöte, joka tuo esiin nykyisen toiminnan. Pyydä perusteltu muutos ja lopullinen tuotos, jonka voi tarkastaa. Anna tutkimus- tai ammattiraporttia varten näyttö, vaaditut osiot ja arviointikriteerit. Pyydä sitten mallia erottamaan perustellut havainnot oletuksista. Nämä ovat dokumentoidun tehtäväalueen käytännön sovelluksia, eivät lupauksia suoritetusta koodista tai asiantuntijan varmentamista johtopäätöksistä.

Mallin yleiskuva

Harvassa asiantuntijasekoitusmallissa on yhteensä 2.4 biljoonaa parametria, ja se aktivoi 95 miljardia. Siinä on 92 kerrosta ja 512 reititettyä asiantuntijaa, joista valitaan kymmenen yhden jaetun asiantuntijan lisäksi. Sen hybridilohkot yhdistävät Gated DeltaNetin ja portitetun huomion asiantuntijakerroksiin suhteessa kolme yhteen. Usean tokenin ennustaminen kuuluu koulutukseen. Aktivoitujen parametrien määrä ei ole koko malliversion koko, eikä suuri kokonaismäärä takaa vastausaikaa.

Natiivi konteksti on 262,144 tokenia, ja dokumentoitu laajennus ulottuu 1,010,000 tokeniin. Tämä eroaa hallinnoidun Max-version oletusarvoisesta miljoonan tokenin kontekstista. Käytä lähdetekstille, keskusteluhistorialle, päättelylle ja lopulliselle vastaukselle todellista asetettua sekvenssivarausta sen sijaan, että olettaisit kaikkien suurimpien lukujen pätevän yhtä aikaa.

Tämän pohdintaa käyttävän malliversion käyttö

Pohdinta vaaditaan jokaisessa vuorovaikutuksessa, eikä sitä voi poistaa käytöstä. Dokumentoitu tuloste alkaa päättelylohkolla ennen lopullista tekstiä. reasoning\_effort tukee arvoja xhigh, medium ja low; xhigh on oletus. Low pienentää tavoiteltua syvyyttä, mutta on edelleen pohdintatila. Tiiviin lopullisen vastauksen pyytäminen voi ohjata haluttua tuotosta muuttamatta tätä mallia ilman pohdintaa toimivaksi versioksi.

preserve\_thinking on oletuksena käytössä. Aiempien vuorojen päättelyn säilyttäminen auttaa iteratiivista tehtävää kuljettamaan päätösten taustaa eteenpäin. Pidä korjaukset, työkalutulokset ja lopullinen vastaus yhteydessä niitä tuottaneisiin vuoroihin. Mallin tulee noudattaa omaa historiakäytäntöään sen sijaan, että siihen sovellettaisiin vanhempaa neuvoa poistaa aiemmista viesteistä jokainen päättelylohko. Päättelypanoksen ja säilytyksen asetusten saatavuus riippuu malliversion ohjeen toteuttavasta käyttöliittymästä.

Kehitysympäristöt ja ympäristöpalaute

Qwen kuvaa yhteensopivuutta kehitysympäristöjen ja työkalujen kanssa. Pitkäkestoinen tehtävä voidaan ilmaista tavoitteena, sallittuina toimina ja valmistumisen osoittavana näyttönä. Sovellus voi sitten antaa tarkastuksesta tai suorituksesta saatuja havaintoja. Pyydä mallia selittämään, miten kukin uusi tulos muuttaa suunnitelmaa, ja raportoimaan, mikä jää avoimeksi. Toimen suunnittelu ja todellisen tuloksen saaminen ovat tämän työnkulun eri vaiheita.

Mallikortin hallinnoidun Max-version esimerkeissä on sisäänrakennettuja lisätyökaluja. Niitä ei pidä muuttaa tämän avoimen mallin automaattiseksi verkkohauksi, koodin suoritukseksi tai visuaaliseksi syötteeksi. Mallin hyödyllinen rooli on tekstipäättelykomponentti yhdistetyssä työnkulussa; työkalut ja ulkoiset vaikutukset kuuluvat ne tarjoavalle sovellukselle.

Generointisuositukset

Valmistaja suosittelee arvoja temperature 1.0, top\_p 0.95, top\_k 20, min\_p 0, presence penalty 0 ja repetition penalty 1.0. Tuetuissa toteutuksissa presence penalty nollan ja kahden välillä voi vähentää toistuvaa tekstiä, mutta suuremmat arvot voivat sekoittaa kieliä tai hieman heikentää laatua. Parametrituki vaihtelee toteutuksen mukaan.

Asetetussa miljoonan tokenin työnkulussa, jossa päättelyllä ja lopullisella vastauksella on erilliset rajat, Qwen suosittelee 262,144 tokenia päättelyyn ja 131,072 tokenia lopulliseen vastaukseen. Ne ovat ehdollisia varauksia, eivät erikseen vahvistettuja kovia rajoja tai budjetteja, jotka mahtuisivat yhdessä natiiviin 262,144 tokenin kontekstiin. Varaa riittävästi tilaa kokonaiselle tuotokselle ja pyydä lopullinen tulos, joka on helppo löytää päättelyn jälkeen.

Käytännön rajat

Tämä malliversio ei vastaanota kuvia, ääntä tai videota. Muunna tarvittava näyttö tarvittaessa sopivaksi tekstiesitykseksi erillisessä työnkulussa ja säilytä tunnisteet, joiden avulla vastaus voidaan tarkistaa. Mallikortti ilmoittaa laajennetun kontekstin, mutta ei anna tälle vain tekstiä käsittelevälle mallille täydellistä tehtäväkohtaista laajennusohjetta tai yleispätevää mediarajaa. Säilytä täsmällinen malliversion tunniste ja kokoonpano, tarkista laskelmat ja koodiehdotukset lähteestä ja käsittele lopullista tuotosta arvioitavana tuloksena, älä todisteena kokonaisen ulkoisen tehtävän valmistumisesta.

Käytännön tehtävä

### Käytännön tehtävä

Tekninen esimerkki englanniksi

```
Review a resumable migration plan

Review this migration design against the requirement that every row is copied exactly once. Step 1 copies 100 rows after last_id. Step 2 saves last_id. A crash can occur between steps. Explain the duplicate risk after restart and propose a minimal idempotent write or atomic checkpoint design. Include a test that interrupts precisely between the two steps.
```

#### Odotettu tulos

```
A cause analysis, one concrete correction strategy and a crash-point regression scenario.
```

#### Tarkista tulos

```
Rerunning after the interruption cannot produce duplicate destination rows or skip uncopied source rows.
```

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `qwen/qwen3.8-2.4t-a95b`

[`qwen/qwen3.8-2.4t-a95b`](https://ailoot.ai/models/fi/#m=qwen%2Fqwen3.8-2.4t-a95b&route=Ultra&caller=qwen%2Fqwen3.8-2.4t-a95b&fmt=chat)

Alibaba /`qwen/qwen3.8-2.4t-a95b`

### Aloitus

Qwen3.8-2.4T-A95B on Qwenin harva asiantuntijasekoitusmalli tekstipäättelyyn. Siinä on yhteensä 2.4 biljoonaa parametria, joista 95 miljardia aktivoituu. Tämä avoin malliversio käyttää aina pohdintaa, tukee säädettävää päättelypanosta ja säilyttää päättelykontekstin pitkäjänteisiä ohjelmointi- ja ammattitehtäviä varten.

Hyväksytyt syötteet

Teksti

Tulokset

Teksti

### Saatavilla Ailootissa · syötteet & menetelmät

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

Syötetyypit

`text`

Tulostyypit

`text`

Tulosteen muoto

json tai SSE

| Kenttä | Tyyppi | Vaatimus | Arvot & rajat | Oletus |
| --- | --- | --- | --- | --- |
| Kenttä`model` | Tyyppi`string` | VaatimusPakollinen | Arvot & rajat qwen/qwen3.8-2.4t-a95b | Oletus— |
| Kenttä`messages` | Tyyppi`message[]` | VaatimusPakollinen | Arvot & rajat Kohteiden vähimmäismäärä: 1 | Oletus— |
| Kenttä`messages[].role` | Tyyppi`string` | VaatimusPakollinen | Arvot & rajat Esimerkit: system, user, assistant, tool, function Ehdot: Nämä roolit esitetään nimenomaisesti lähdekoodin yhteensopivuustyypeissä; mallin täsmällinen roolijoukko pysyy mallikohtaisena. Riippuu mallista | Oletus— |
| Kenttä`messages[].content` | Tyyppi`string\|content_part[]\|null` | VaatimusValinnainen | Arvot & rajat | Oletus— |
| Kenttä`messages[].tool_calls` | Tyyppi`tool_call[]` | VaatimusValinnainen | Arvot & rajat | Oletus— |
| Kenttä`messages[].tool_call_id` | Tyyppi`string` | VaatimusValinnainen | Arvot & rajat Sovelletaan, kun: role=tool; käytä todella palautettua ID:tä | Oletus— |
| Kenttä`messages[].name` | Tyyppi`string` | VaatimusValinnainen | Arvot & rajat | Oletus— |
| Kenttä`messages[].reasoning_content` | Tyyppi`string` | VaatimusValinnainen | Arvot & rajat Sovelletaan, kun: Palauta todella saatu päättely takaisin mallille, kun kyseinen malli käyttää sitä | Oletus— |
| Kenttä`messages[].reasoning_details` | Tyyppi`object\|array` | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
| Kenttä`max_tokens` | Tyyppi`integer` | VaatimusValinnainen | Arvot & rajat Vähimmäismäärä: 1 Riippuu mallista | Oletus— |
| Kenttä`max_completion_tokens` | Tyyppi`integer` | VaatimusValinnainen | Arvot & rajat Vähimmäismäärä: 1 Riippuu mallista | Oletus— |
| Kenttä`stream` | Tyyppi`boolean` | VaatimusValinnainen | Arvot & rajat | Oletusfalse |
| Kenttä`stream_options.include_usage` | Tyyppi`boolean` | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
| Kenttä`temperature` | Tyyppi`number` | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
| Kenttä`top_p` | Tyyppi`number` | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
| Kenttä`stop` | Tyyppi`string\|string[]` | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
| Kenttä`tools` | Tyyppi`function_tool[]` | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
| Kenttä`tools[].type` | Tyyppi`string` | VaatimusValinnainen | Arvot & rajat function Riippuu mallista | Oletus— |
| Kenttä`tools[].function.name` | Tyyppi`string` | VaatimusPakollinen | Arvot & rajat Sovelletaan, kun: funktiotyökalu annettu | Oletus— |
| Kenttä`tools[].function.description` | Tyyppi`string` | VaatimusValinnainen | Arvot & rajat | Oletus— |
| Kenttä`tools[].function.parameters` | Tyyppi`JSON_schema` | VaatimusValinnainen | Arvot & rajat | Oletus— |
| Kenttä`tool_choice` | Tyyppi`string\|object` | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
| Kenttä`parallel_tool_calls` | Tyyppi`boolean` | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
| Kenttä`response_format` | Tyyppi`object` | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
| Kenttä`reasoning_effort` | Tyyppi`string` | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
| Kenttä`reasoning` | Tyyppi`object` | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
| Kenttä`service_tier` | Tyyppi`string` | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
| Kenttä`instructions` | Tyyppi`string` | VaatimusValinnainen | Arvot & rajat Yhteensopivuuskenttä | Oletus— |
| Kenttä`functions` | Tyyppi`function[]` | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
| Kenttä`function_call` | Tyyppi`string\|object` | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
| Kenttä`prompt_cache_options` | Tyyppi`object` | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
| Kenttä`modalities` | Tyyppi`string[]` | VaatimusValinnainen | Arvot & rajat text | Oletus— |
| Kenttä`provider` | Tyyppi`object` | VaatimusValinnainen | Arvot & rajat Ehdot: provider.options hylätään tällä Ultran tekstireitillä | Oletus— |
| Kenttä`cache_control.ttl` | Tyyppi`string` | VaatimusValinnainen | Arvot & rajat Ehdot: 1h hylätään varsinaisissa kehotevälimuistin kohdissa | Oletus— |

Syöteaineistojen yhdistelmät

**Teksti** · UTF8-teksti

`messages[].content`

Menetelmän parametrit ja elinkaari

| Parametri | Sopimus |
| --- | --- |
| Parametri`content_type` | Sopimusapplication/json |
| Parametri`required` | Sopimusmodel, messages |
| Parametri`material_types` | Sopimustext |
| Parametri`messages` | Sopimusviestitaulukko role/content-rakenteella |
| Parametri`file_material` | Sopimusvarsinainen UTF-8-asiakirja lisätään sellaisenaan tekstinä; tiedoston ID:tä ei päätellä |
| Parametri`optional_controls` | Sopimusstream, temperature, top\_p, stop, max\_tokens, max\_completion\_tokens, reasoning, response\_format, tools, tool\_choice |
| Parametri`control_scope` | Sopimusmallikohtainen; käyttäjän funktiotyökalut eroavat palvelun isännöimistä työkaluista |
| Parametri`output_modalities` | Sopimustext |
| Parametri`hosted_operations` | Sopimusfalse |
| Parametri`multimodal_input_binding` | Sopimusnull |

Elinkaari: `synchronous_or_streamed`

Lähetä mallin täsmällinen ID yhdessä messages-kentän kanssa.

Kontekstin pituus ei ole tuloksen yläraja.

Tekstitiedosto voi antaa tekstiä sellaisenaan; kuva-, ääni- ja tiedosto-objektisyötteet tarvitsevat täsmällisen sidonnan.

### Hinnoittelu

Hintatiedot eivät lisää pyyntövalintoja. Tuetut parametrit on lueteltu valitulle menetelmälle.

Nopea tila

Vakiohinta Kun nopea tila on valittu

Flex-tila

Vakiohinta Kun flex-tila on valittu

Päättelyn enimmäisteho

Vakiohinta Kun päättelyn enimmäistehoon sovelletaan default-oletussäätöä

Päättelyn teho · pieni

Vakiohinta Kun päättelyn teho on pieni

Päättelyn teho · keskitaso

Vakiohinta Kun päättelyn teho on keskitasoa

Päättelyn teho · xhigh

Vakiohinta Kun päättelyn teho on xhigh

#### Ailoot-hinnat

#### Hinnat asetusten mukaan

Kohdista kukin veloitus näytettyihin ehtoihin. Käytä yhtä hintaa kutakin vaihtoehtoisten asetusten ryhmää kohden.

| Asetukset | Hinnasto | Kontekstin tokenit, enemmän kuin | Kontekstin tokenit, enintään raja-arvo mukaan lukien | Veloitus |
| --- | --- | --- | --- | --- |
| AsetuksetTokenien perushinnat | HinnastoPerushinta | Kontekstin tokenit, enemmän kuin— | Kontekstin tokenit, enintään raja-arvo mukaan lukienEi ylärajaa | Veloitus Syöte · Syötetokenit **$0.004** / 1K tokenia Tuloste · Tulostokenit **$0.012** / 1K tokenia Syöte · Välimuistin luku **$0.0005** / 1K tokenia Syöte · Välimuistiin kirjoitus **$0.005** / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti **—** / 1K tokenia |
| AsetuksetPyynnön pituusluokka 1 | Hinnasto— | Kontekstin tokenit, enemmän kuin0 | Kontekstin tokenit, enintään raja-arvo mukaan lukienEi ylärajaa | Veloitus Syöte · Syötetokenit **$0.004** / 1K tokenia Tuloste · Tulostokenit **$0.012** / 1K tokenia Syöte · Välimuistin luku **$0.0005** / 1K tokenia Syöte · Välimuistiin kirjoitus **$0.005** / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti **—** / 1K tokenia |

Ailoot varaa arvioidun summan ennen pyyntöä. Tuloksen jälkeen lopullinen veloitus toteutetaan mitatun käytön perusteella. Suoratoiston veloituksessa käytetään lopullista käyttötietuetta. [Varauksen ja lopullisen veloituksen toiminta →](https://ailoot.ai/docs/fi/billing/reserve/)

### Esimerkkipyynnöt

#### Ailoot Ultra · OpenAI Chat

curlPython SDKPython-suoratoisto

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "qwen/qwen3.8-2.4t-a95b", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
```

```python
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model='qwen/qwen3.8-2.4t-a95b',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))
```

```python
from openai import OpenAI
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.chat.completions.stream(model='qwen/qwen3.8-2.4t-a95b',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")
```

### Vastaanota ja tallenna tulokset

#### Ailoot Ultra · OpenAI Chat

json tai SSE

##### Säilytä kaikki valmistuneet tulokset

Säilytä jokainen kokonainen palautettu vastaus, tiedosto ja sisällön osa.

Säilytä jokainen vastausvaihtoehto sisältöineen, työkalukutsuineen ja päättelyineen. Kokoa SSE:ssä muutokset vastausvaihtoehdon ja työkalun indeksin mukaan ja säilytä lopullinen päättymissyy sekä käyttötiedot.

##### Jos alkuperäinen vastaus on tarkistettava

Säilytä pyyntöjen/vastausten ID:t ja otsakkeet. Yleistä tekstityön haku-URL:ää ei anneta.

Vastauksen kentät

| Kenttä | Tyyppi |
| --- | --- |
| Kenttä`choices[].index` | Tyyppiinteger |
| Kenttä`choices[].message.content` | Tyyppistring\|null |
| Kenttä`choices[].message.tool_calls` | Tyyppitool\_call\[\] |
| Kenttä`choices[].message.reasoning_content` | Tyyppistring |
| Kenttä`choices[].message.reasoning_details` | Tyyppiobject\|array |
| Kenttä`choices[].finish_reason` | Tyyppistring\|null |
| Kenttä`usage` | Tyyppiobject |

Virheet ja seuraavat vaiheet

| Vastaus | Ehto | Seuraava vaihe |
| --- | --- | --- |
| Vastaus400 · `invalid_request_error` | EhtoVirheelliset pakolliset kentät, aineiston esitysmuoto tai parametrin arvo | Seuraava vaiheKorjaa ilmoitetut kentät ennen uutta luontipyyntöä. |

### Aliakset

#### Mallin aliakset

**Ailoot Ultra** [`qwen/qwen3.8-2.4t-a95b`](https://ailoot.ai/models/fi/#m=qwen%2Fqwen3.8-2.4t-a95b&route=Ultra&caller=qwen%2Fqwen3.8-2.4t-a95b&fmt=chat)

#### Menetelmäpolkujen aliakset

Käytä yllä näytettyjä menetelmäpolkuja.

#### Liittyvät kutsujan ID:t

[`qwen/qwen3.8-2.4t-a95b`](https://ailoot.ai/models/fi/#m=qwen%2Fqwen3.8-2.4t-a95b&route=Ultra&caller=qwen%2Fqwen3.8-2.4t-a95b&fmt=chat)

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `qwen/qwen3.8-2.4t-a95b`

[`qwen/qwen3.8-2.4t-a95b`](https://ailoot.ai/models/fi/#m=qwen%2Fqwen3.8-2.4t-a95b&route=Ultra&caller=qwen%2Fqwen3.8-2.4t-a95b&fmt=messages)

Alibaba /`qwen/qwen3.8-2.4t-a95b`

### Aloitus

Qwen3.8-2.4T-A95B on Qwenin harva asiantuntijasekoitusmalli tekstipäättelyyn. Siinä on yhteensä 2.4 biljoonaa parametria, joista 95 miljardia aktivoituu. Tämä avoin malliversio käyttää aina pohdintaa, tukee säädettävää päättelypanosta ja säilyttää päättelykontekstin pitkäjänteisiä ohjelmointi- ja ammattitehtäviä varten.

Hyväksytyt syötteet

Teksti

Tulokset

json · sse

### Saatavilla Ailootissa · syötteet & menetelmät

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

Syötetyypit

`text`

Tulostyypit

`json`, `sse`

Tulosteen muoto

JSON tai SSE

| Kenttä | Tyyppi | Vaatimus | Arvot & rajat | Oletus |
| --- | --- | --- | --- | --- |
| Kenttä`model` | Tyyppi`string` | VaatimusPakollinen | Arvot & rajat qwen/qwen3.8-2.4t-a95b | Oletus— |
| Kenttä`messages` | Tyyppi`message[]` | VaatimusPakollinen | Arvot & rajat | Oletus— |
| Kenttä`messages[].role` | Tyyppi`string` | VaatimusPakollinen | Arvot & rajat user, assistant | Oletus— |
| Kenttä`messages[].content` | Tyyppi`string` | VaatimusPakollinen | Arvot & rajat | Oletus— |
| Kenttä`max_tokens` | Tyyppi`integer` | VaatimusPakollinen | Arvot & rajat | Oletus— |
| Kenttä`stream` | Tyyppi`boolean` | VaatimusValinnainen | Arvot & rajat | Oletusfalse |

Syöteaineistojen yhdistelmät

**Teksti** · UTF-8-teksti

`messages[].content-merkkijono`

Menetelmän parametrit ja elinkaari

| Parametri | Sopimus |
| --- | --- |
| Parametri`content_type` | Sopimusapplication/json |
| Parametri`required` | Sopimusmodel, messages, max\_tokens |
| Parametri`optional_controls` | Sopimusstream |
| Parametri`material_types` | Sopimustext |
| Parametri`text_file_material` | SopimusLue varsinainen UTF-8-asiakirja ja sijoita sen teksti ilmoitettuun syöte- tai viestisisällön merkkijonoon. |

Elinkaari: `synchronous_or_streamed`

### Hinnoittelu

Hintatiedot eivät lisää pyyntövalintoja. Tuetut parametrit on lueteltu valitulle menetelmälle.

Nopea tila

Vakiohinta Kun nopea tila on valittu

Flex-tila

Vakiohinta Kun flex-tila on valittu

Päättelyn enimmäisteho

Vakiohinta Kun päättelyn enimmäistehoon sovelletaan default-oletussäätöä

Päättelyn teho · pieni

Vakiohinta Kun päättelyn teho on pieni

Päättelyn teho · keskitaso

Vakiohinta Kun päättelyn teho on keskitasoa

Päättelyn teho · xhigh

Vakiohinta Kun päättelyn teho on xhigh

#### Ailoot-hinnat

#### Hinnat asetusten mukaan

Kohdista kukin veloitus näytettyihin ehtoihin. Käytä yhtä hintaa kutakin vaihtoehtoisten asetusten ryhmää kohden.

| Asetukset | Hinnasto | Kontekstin tokenit, enemmän kuin | Kontekstin tokenit, enintään raja-arvo mukaan lukien | Veloitus |
| --- | --- | --- | --- | --- |
| AsetuksetTokenien perushinnat | HinnastoPerushinta | Kontekstin tokenit, enemmän kuin— | Kontekstin tokenit, enintään raja-arvo mukaan lukienEi ylärajaa | Veloitus Syöte · Syötetokenit **$0.004** / 1K tokenia Tuloste · Tulostokenit **$0.012** / 1K tokenia Syöte · Välimuistin luku **$0.0005** / 1K tokenia Syöte · Välimuistiin kirjoitus **$0.005** / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti **—** / 1K tokenia |
| AsetuksetPyynnön pituusluokka 1 | Hinnasto— | Kontekstin tokenit, enemmän kuin0 | Kontekstin tokenit, enintään raja-arvo mukaan lukienEi ylärajaa | Veloitus Syöte · Syötetokenit **$0.004** / 1K tokenia Tuloste · Tulostokenit **$0.012** / 1K tokenia Syöte · Välimuistin luku **$0.0005** / 1K tokenia Syöte · Välimuistiin kirjoitus **$0.005** / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti **—** / 1K tokenia |

Ailoot varaa arvioidun summan ennen pyyntöä. Tuloksen jälkeen lopullinen veloitus toteutetaan mitatun käytön perusteella. Suoratoiston veloituksessa käytetään lopullista käyttötietuetta. [Varauksen ja lopullisen veloituksen toiminta →](https://ailoot.ai/docs/fi/billing/reserve/)

### Esimerkkipyynnöt

#### Ailoot Ultra · Anthropic Messages

Täydellinen minimaalinen JSON-runkocurl · käytä omaa UTF-8-dokumenttiasiPython · tallenna koko tulos

```json
{
  "model": "qwen/qwen3.8-2.4t-a95b",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'qwen/qwen3.8-2.4t-a95b', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
```

```python
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'qwen/qwen3.8-2.4t-a95b', '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))
```

### Vastaanota ja tallenna tulokset

#### Ailoot Ultra · Anthropic Messages

JSON tai SSE

##### Säilytä kaikki valmistuneet tulokset

Säilytä jokainen kokonainen palautettu vastaus, tiedosto ja sisällön osa.

Säilytä kaikki sisältölohkot, päättelyallekirjoitukset ja todelliset työkalukäytön ID:t. Kokoa kaikki SSE-lohkomuutokset; ensimmäinen tekstilohko ei ole koko tulos.

##### Jos alkuperäinen vastaus on tarkistettava

Säilytä pyyntöjen/vastausten ID:t ja otsakkeet. Yleistä tekstityön haku-URL:ää ei anneta.

Vastauksen kentät

| Kenttä | Tyyppi |
| --- | --- |
| Kenttä`id` | Tyyppistring |
| Kenttä`model` | Tyyppistring |
| Kenttä`content[]` | Tyyppitext\|thinking\|tool\_use\|other content block |
| Kenttä`stop_reason` | Tyyppistring\|null |
| Kenttä`usage` | Tyyppiobject |

Virheet ja seuraavat vaiheet

| Vastaus | Ehto | Seuraava vaihe |
| --- | --- | --- |
| Vastaus400 · `invalid_request_error` | EhtoVirheelliset pakolliset kentät, aineiston esitysmuoto tai parametrin arvo | Seuraava vaiheKorjaa ilmoitetut kentät ennen uutta luontipyyntöä. |

### Aliakset

#### Mallin aliakset

**Ailoot Ultra** [`qwen/qwen3.8-2.4t-a95b`](https://ailoot.ai/models/fi/#m=qwen%2Fqwen3.8-2.4t-a95b&route=Ultra&caller=qwen%2Fqwen3.8-2.4t-a95b&fmt=messages)

#### Menetelmäpolkujen aliakset

Käytä yllä näytettyjä menetelmäpolkuja.

#### Liittyvät kutsujan ID:t

[`qwen/qwen3.8-2.4t-a95b`](https://ailoot.ai/models/fi/#m=qwen%2Fqwen3.8-2.4t-a95b&route=Ultra&caller=qwen%2Fqwen3.8-2.4t-a95b&fmt=messages)

FAQ · Qwen: Qwen3.8 2.4T A95B

Mitä syötteitä ja tuloksia on saatavilla?

`POST /v1/chat/completions` · `qwen/qwen3.8-2.4t-a95b`: `text` → `text` `POST /v1/messages` · `qwen/qwen3.8-2.4t-a95b`: `text` → `json`, `sse`

Mitä kenttiä pyyntö käyttää?

`POST /v1/chat/completions` · `qwen/qwen3.8-2.4t-a95b`: `model`, `messages`, `stream`, `modalities`, `provider` `POST /v1/messages` · `qwen/qwen3.8-2.4t-a95b`: `model`, `messages`, `max_tokens`, `stream`

Mitä rajoja sovelletaan?

`POST /v1/chat/completions` · `qwen/qwen3.8-2.4t-a95b`: `messages.min_items`: `1`

Yhdistä Ailoot Claude Codeen, OpenCodeen, Hermesiin tai omaan sovellukseesi.

## Yritys ja sen projektisalkku

Yritys ja sen projektisalkku: miljoonia asiakkaita; kuukausittainen myynti miljardiluokassa.

## Osta tokenit alennuksella.

Tilausalennus säännölliseen käyttöön. Kampanjakoodit — jopa 50% tokeniostoista.

Tilaus

Valitse alennushintainen paketti säännöllisiä pyyntöjäsi varten.

Kampanjakoodi jopa 50%

Syötä koodi oston yhteydessä. Hinta lasketaan uudelleen voimassa olevan kampanjan mukaan.

Kulut historiassa

Malli, tokenit ja summa tallennetaan jokaiselle pyynnölle.

[Valitse tilaus](https://ailoot.ai/docs/fi/billing/subscriptions/) · [Katso mallihinnat](https://ailoot.ai/models/fi/)

## Yhdistä API tuotteeseen, jonka myyt.

SaaS, sovellukset ja botit Ailootin palveluehtojen ja lisenssisopimuksen mukaisesti. Pyydä edelleenmyyntiin jälleenmyyjälisenssi.

Kaupallinen sovellus

Lisää tekstin, kuvien, videoiden ja äänen luonti palvelusi maksullisiin ominaisuuksiin.

Jälleenmyyjälisenssi

Lähetä projektikuvaus ja pääsyn toteutustapa. Pyydä kirjalliset käyttö- ja jälleenmyyntiehdot.

Asiakirjat verkkosivustolla

Palveluehdot, lisenssisopimus ja tietojenkäsittelykäytäntö ovat saatavilla ennen yhdistämistä.

[Pyydä jälleenmyyjälisenssi](mailto:support@ailoot.ai) · [Palveluehdot ja lisenssisopimus](https://ailoot.ai/legal/offer?lang=fi)

## Ailoot · Yritys ja sen projektisalkku





Ailoot perustuu kertyneeseen toimintakokemukseen, laajaan asiakaskuntaan, vakaaseen palveluun ja jatkuvaan KPI-seurantaan.





Yritys ja sen projektisalkku: miljoonia asiakkaita; kuukausittainen myynti miljardiluokassa.





Ailoot hyödyntää tätä toimintakokemusta tarjotessaan API-yhteyden tekoälytoimintoihin asiakkaiden tuotteissa, agenteissa, sovelluksissa ja automaatioissa.
