Source: https://ailoot.ai/models/de/qwen-qwen3-8-omni-flash/
Canonical: https://ailoot.ai/models/de/qwen-qwen3-8-omni-flash/
Language: de

# Qwen: Qwen3.8 Omni Flash

[Markdown](https://ailoot.ai/models/de/qwen-qwen3-8-omni-flash/index.md) · [JSON](https://ailoot.ai/models/de/qwen-qwen3-8-omni-flash/facts.json)

## [Qwen: Qwen3.8 Omni Flash](https://ailoot.ai/models/de/qwen-qwen3-8-omni-flash/)

Qwen3.8 Omni Flash analysiert Text, Bilder, Audio und Video und gibt Text zurück. Es unterstützt Besprechungszusammenfassungen, Multimedia-Fragen, 113 Sprachen und Dialekte für Audioeingaben, wählbaren Reasoning-Aufwand und räumliches Audio, mit einem vom Hersteller dokumentierten Kontext von einer Million Tokens.

- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `qwen/qwen3.8-omni-flash`](https://ailoot.ai/models/de/qwen-qwen3-8-omni-flash/#method-0)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `qwen/qwen3.8-omni-flash`](https://ailoot.ai/models/de/qwen-qwen3-8-omni-flash/#method-1)

Über das Modell

Diese Beschreibung erläutert die Fähigkeiten des Modells. Die über Ailoot verfügbaren Eingaben, Ausgaben und Optionen sind unten für die ausgewählte Methode aufgeführt.

Modellauswahl: Multimedia-Analyse mit Textausgabe

Qwen3.8 Omni Flash ist Qwens Modell für Audio- und Videoverständnis, Besprechungszusammenfassungen und Inhaltsanalyse. Seine Eingaben sind Text, Bilder, Audio und Video; seine Ausgabe ist Text. Eine Antwort kann eine Aufnahme beschreiben, eine Frage zu visuellen und hörbaren Belegen beantworten oder eine schriftliche Zusammenfassung erstellen. Der Hersteller unterscheidet diese Ausgabe ausdrücklich von Omni-Modellen, die Sprache erzeugen. Nehmen Sie nicht an, dass der Name Omni diesem Checkpoint einen Modus für gesprochene Ausgabe verleiht.

Der Kontext beträgt eine Million Tokens, und Audioeingaben decken 113 Sprachen und Dialekte ab. Diese Sprachanzahl beschreibt Audioverständnis und garantiert keine identische Erkennungsqualität für jeden Akzent, jede Aufnahmebedingung oder jeden Fachwortschatz. Stellen Sie für eine Besprechung die Tagesordnung oder wichtige Begriffe bereit und fordern Sie Entscheidungen, offene Fragen und nächste Aktionen an. Bitten Sie das Modell bei einem audiovisuellen Clip, Sichtbares und Gesprochenes zu trennen, bevor es die Belege in einem Fazit kombiniert.

Multimodales Material vorbereiten

Die dokumentierten Beispiele kombinieren Medien mit einer Textfrage. Nennen Sie das beabsichtigte Ergebnis, statt eine Aufnahme ohne Erklärung einzureichen: eine thematische Zusammenfassung, einen Ereignisbericht oder eine Antwort auf eine konkrete Frage. Kennzeichnen Sie separate Assets und bewahren Sie ihre Quellzeitbereiche außerhalb der Anfrage auf, damit das Ergebnis zum Original zurückverfolgt werden kann. Wenn mehrere Teilnehmer oder Szenen wichtig sind, benennen Sie die Unterscheidungen, die der Bericht bewahren soll.

Mediengrenzen im Datei-Workflow des Herstellers

Für Videodateien dokumentiert der Hersteller bis zu 64 Dateien, eine Dauergrenze von zwei Stunden und Dateien bis zu 2 GB, wenn sie über eine zugängliche Dateiadresse bereitgestellt werden. Die dokumentierten Videoformate sind MP4, AVI, MKV, MOV, FLV und WMV. Für geordnete Bilder, die als Video verwendet werden, reicht der dokumentierte Bereich von zwei bis 2.048 Bildern. Bewahren Sie Reihenfolge und zeitliche Zuordnung, statt eine beliebige Bildersammlung als bekannte zeitliche Sequenz zu behandeln.

Für Audio dokumentiert der Leitfaden bis zu drei Stunden, Eingaben über Dateiadressen bis zu 2 GB sowie AMR, WAV, 3GP, 3GPP, AAC oder MP3. Die Anzahl der Audiodateien beträgt bis zu 2.048 bei Bereitstellung über Dateiadressen und bis zu 250 bei Base64-Kodierung. Kodierte Base64-Nutzdaten müssen kleiner als 10 MB sein. Dies sind Grenzen des Hersteller-Workflows, keine Versprechen über die Upload-Schnittstelle einer Anwendung und kein Beleg, dass alle Eingaben maximaler Größe gemeinsam in das Tokenbudget passen.

Für Bilder nennt der Leitfaden bis zu 2.048 Bildadressen oder 250 kodierte Bilder. Eine über eine zugängliche Bildadresse bereitgestellte Datei darf bis zu 20 MB groß sein; beide Abmessungen müssen mehr als zehn Pixel betragen und das Seitenverhältnis muss innerhalb von 200:1 oder 1:200 bleiben. Bewahren Sie genügend Auflösung für die jeweilige Frage. Ein Textfeld, das bei der Vorbereitung unleserlich wird, lässt sich nicht allein dadurch wiederherstellen, dass eine selbstsichere Antwort verlangt wird.

Räumliches Audio

Dieses Modell unterstützt zweikanaliges Stereo und vierkanaliges Ambisonics-Audio erster Ordnung in WYZX-Kanalreihenfolge. Die Steuerung use\_multichannel des Herstellers ist standardmäßig false und interpretiert Audio als mono. Wenn die Steuerung aktiviert ist und das unterstützte Kanallayout vorliegt, können räumliche Informationen in das Verständnis einfließen. Bewahren Sie das Kanallayout, wenn die Aufgabe nach der hörbaren räumlichen Szene fragt; leiten Sie aus einer allgemeinen Beschreibung keine kalibrierten Koordinaten einer Schallquelle ab.

Werkzeuge und aktuelle Informationen

Der Hersteller unterstützt Function Calling und Websuche. In seinem dokumentierten Responses-Workflow ist web\_search das einzige unterstützte integrierte Werkzeug dieser Ausgabe. Eine werkzeugbezogene Aufgabe kann das Modell auffordern, abgerufene aktuelle Informationen mit der bereitgestellten Aufnahme zu verbinden und dabei die Herkunft jeder Aussage deutlich zu halten. Externe Aktionen und Werkzeugergebnisse hängen weiterhin von der konfigurierten Schnittstelle der Anwendung ab. Werkzeugunterstützung darf nicht zu einer uneingeschränkten Behauptung über Code-Interpreter- oder Dateisystemzugriff ausgeweitet werden. Der Hersteller führt außerdem Context Caching für wiederkehrende Eingaben auf; die Wiederverwendung betrifft gemeinsame Anfragepräfixe und belegt keinen Cache-Treffer für eine bestimmte Anfrage.

Thinking-Modi

Thinking ist standardmäßig aktiviert, wobei reasoning\_effort auf xhigh gesetzt ist. Die primären Thinking-Aufwandsstufen sind low, medium und xhigh; die Einstellung none deaktiviert Thinking. Aus Kompatibilitätsgründen wird minimal auf low abgebildet, während high und max auf xhigh abgebildet werden. Der Hersteller weist Anfragen zurück, die reasoning\_effort und thinking\_budget gemeinsam setzen. Diese Steuerungen beschreiben die Herstellerschnittstelle und belegen nicht, dass jede Anwendung sie bereitstellt.

Wählen Sie eine direkte Antwort für eine einfache Zusammenfassung und tieferes Reasoning für eine Frage, die mehrere Belege verbinden muss. Halten Sie den abschließenden Bericht vom Reasoning getrennt und prüfen Sie Zitate gesprochener Inhalte, Ereignisreihenfolge und die Belege hinter den Schlussfolgerungen. Der Leitfaden legt Medien- und Kontextgrenzen fest, veröffentlicht in den hier verwendeten Abschnitten jedoch keine separate harte maximale Textausgabelänge. Eine klare Frage und ein nachvollziehbares schriftliches Ergebnis sind nützlicher, als den größtmöglichen Upload als Garantie für vollständige Erinnerung zu behandeln.

Praktische Aufgabe

### Praktische Aufgabe

Technisches Beispiel auf Englisch

```
Extract decisions from meeting text

Use this meeting transcript. Lena: We agree to pilot the new checklist with Team A. Omar: I will prepare the draft by Thursday. Lena: We still need someone to review the results; no reviewer is assigned. Return decisions, named actions and unresolved questions. Preserve who said what and do not turn the pilot into a full rollout.
```

#### Erwartetes Ergebnis

```
A meeting summary with decision, action-owner-deadline rows and an open reviewer-assignment question.
```

#### Ergebnis prüfen

```
Check that Omar owns the draft, Thursday is its deadline and the reviewer remains unassigned.
```

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `qwen/qwen3.8-omni-flash`

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

Alibaba /`qwen/qwen3.8-omni-flash`

### Start

Qwen3.8 Omni Flash analysiert Text, Bilder, Audio und Video und gibt Text zurück. Es unterstützt Besprechungszusammenfassungen, Multimedia-Fragen, 113 Sprachen und Dialekte für Audioeingaben, wählbaren Reasoning-Aufwand und räumliches Audio, mit einem vom Hersteller dokumentierten Kontext von einer Million Tokens.

Zulässige Eingaben

Text

Ergebnisse

Text

### In Ailoot verfügbar · Eingaben und Methoden

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

Eingabetypen

`text`

Ausgabetypen

`text`

Ausgabeformat

json oder SSE

| Feld | Typ | Anforderung | Werte und Limits | Standard |
| --- | --- | --- | --- | --- |
| Feld`model` | Typ`string` | AnforderungErforderlich | Werte und Limits qwen/qwen3.8-omni-flash | Standard— |
| Feld`messages` | Typ`message[]` | AnforderungErforderlich | Werte und Limits Mindestanzahl Elemente: 1 | Standard— |
| Feld`messages[].role` | Typ`string` | AnforderungErforderlich | Werte und Limits Beispiele: system, user, assistant, tool, function Bedingungen: Diese Rollen sind in den Kompatibilitätstypen des Quellcodes ausdrücklich dargestellt; der genaue Rollenumfang bleibt modellspezifisch. Modellabhängig | Standard— |
| Feld`messages[].content` | Typ`string\|content_part[]\|null` | AnforderungOptional | Werte und Limits | Standard— |
| Feld`messages[].tool_calls` | Typ`tool_call[]` | AnforderungOptional | Werte und Limits | Standard— |
| Feld`messages[].tool_call_id` | Typ`string` | AnforderungOptional | Werte und Limits Gilt, wenn: role=tool; die tatsächlich zurückgegebene ID verwenden | Standard— |
| Feld`messages[].name` | Typ`string` | AnforderungOptional | Werte und Limits | Standard— |
| Feld`messages[].reasoning_content` | Typ`string` | AnforderungOptional | Werte und Limits Gilt, wenn: Tatsächlich zurückgegebene Reasoning-Daten erneut übermitteln, sofern dieses Modell sie verwendet | Standard— |
| Feld`messages[].reasoning_details` | Typ`object\|array` | AnforderungOptional | Werte und Limits Modellabhängig | Standard— |
| Feld`max_tokens` | Typ`integer` | AnforderungOptional | Werte und Limits Minimum: 1 Modellabhängig | Standard— |
| Feld`max_completion_tokens` | Typ`integer` | AnforderungOptional | Werte und Limits Minimum: 1 Modellabhängig | Standard— |
| Feld`stream` | Typ`boolean` | AnforderungOptional | Werte und Limits | Standardfalse |
| Feld`stream_options.include_usage` | Typ`boolean` | AnforderungOptional | Werte und Limits Modellabhängig | Standard— |
| Feld`temperature` | Typ`number` | AnforderungOptional | Werte und Limits Modellabhängig | Standard— |
| Feld`top_p` | Typ`number` | AnforderungOptional | Werte und Limits Modellabhängig | Standard— |
| Feld`stop` | Typ`string\|string[]` | AnforderungOptional | Werte und Limits Modellabhängig | Standard— |
| Feld`tools` | Typ`function_tool[]` | AnforderungOptional | Werte und Limits Modellabhängig | Standard— |
| Feld`tools[].type` | Typ`string` | AnforderungOptional | Werte und Limits function Modellabhängig | Standard— |
| Feld`tools[].function.name` | Typ`string` | AnforderungErforderlich | Werte und Limits Gilt, wenn: Funktionswerkzeug bereitgestellt | Standard— |
| Feld`tools[].function.description` | Typ`string` | AnforderungOptional | Werte und Limits | Standard— |
| Feld`tools[].function.parameters` | Typ`JSON_schema` | AnforderungOptional | Werte und Limits | Standard— |
| Feld`tool_choice` | Typ`string\|object` | AnforderungOptional | Werte und Limits Modellabhängig | Standard— |
| Feld`parallel_tool_calls` | Typ`boolean` | AnforderungOptional | Werte und Limits Modellabhängig | Standard— |
| Feld`response_format` | Typ`object` | AnforderungOptional | Werte und Limits Modellabhängig | Standard— |
| Feld`reasoning_effort` | Typ`string` | AnforderungOptional | Werte und Limits Modellabhängig | Standard— |
| Feld`reasoning` | Typ`object` | AnforderungOptional | Werte und Limits Modellabhängig | Standard— |
| Feld`service_tier` | Typ`string` | AnforderungOptional | Werte und Limits Modellabhängig | Standard— |
| Feld`instructions` | Typ`string` | AnforderungOptional | Werte und Limits Kompatibilitätsfeld | Standard— |
| Feld`functions` | Typ`function[]` | AnforderungOptional | Werte und Limits Modellabhängig | Standard— |
| Feld`function_call` | Typ`string\|object` | AnforderungOptional | Werte und Limits Modellabhängig | Standard— |
| Feld`prompt_cache_options` | Typ`object` | AnforderungOptional | Werte und Limits Modellabhängig | Standard— |
| Feld`modalities` | Typ`string[]` | AnforderungOptional | Werte und Limits text | Standard— |
| Feld`provider` | Typ`object` | AnforderungOptional | Werte und Limits Bedingungen: provider.options wird auf dieser Ultra-Textroute abgelehnt | Standard— |
| Feld`cache_control.ttl` | Typ`string` | AnforderungOptional | Werte und Limits Bedingungen: 1h wird in den tatsächlichen Prompt-Cache-Feldern abgelehnt | Standard— |

Kombinationen von Eingabematerialien

**Text** · UTF8-Text

`messages[].content`

Methodenparameter und Lebenszyklus

| Parameter | Vertrag |
| --- | --- |
| Parameter`content_type` | Vertragapplication/json |
| Parameter`required` | Vertragmodel, messages |
| Parameter`material_types` | Vertragtext |
| Parameter`messages` | VertragNachrichtenarray mit role/content-Struktur |
| Parameter`file_material` | VertragTatsächliches UTF-8-Dokument als wörtlicher Text eingefügt; keine Datei-ID abgeleitet |
| Parameter`optional_controls` | Vertragstream, temperature, top\_p, stop, max\_tokens, max\_completion\_tokens, reasoning, response\_format, tools, tool\_choice |
| Parameter`control_scope` | VertragModellspezifisch; benutzerseitige Funktionswerkzeuge unterscheiden sich von gehosteten Werkzeugen |
| Parameter`output_modalities` | Vertragtext |
| Parameter`hosted_operations` | Vertragfalse |
| Parameter`multimodal_input_binding` | Vertragnull |

Lebenszyklus: `synchronous_or_streamed`

Die genaue Modell-ID zusammen mit messages senden.

Die Kontextlänge ist keine Ausgabeobergrenze.

Eine Textdatei kann wörtlichen Text liefern; Bild-, Audio- und Dateiobjekteingaben benötigen eine exakte Zuordnung.

### Tarife

Tarifangaben erweitern die Anfrageoptionen nicht. Unterstützte Parameter stehen bei der ausgewählten Methode.

Schnellmodus

Standardtarif Wenn der Schnellmodus ausgewählt ist

Flex-Modus

Standardtarif Wenn der Modus flex ausgewählt ist

Maximaler Denkaufwand

Standardtarif Wenn beim maximalen Denkaufwand die Standardanpassung (default) verwendet wird

#### Ailoot-Tarife

#### Preise nach Konfiguration

Ordnen Sie jede Gebühr den angezeigten Bedingungen zu. Verwenden Sie für jede Gruppe alternativer Konfigurationen einen Tarif.

| Konfiguration | Tarifstaffel | Kontexttoken, mehr als | Kontexttoken, bis einschließlich | Gebühr |
| --- | --- | --- | --- | --- |
| KonfigurationBasistarife für Token | TarifstaffelGrundtarif | Kontexttoken, mehr als— | Kontexttoken, bis einschließlichKeine Obergrenze | Gebühr Eingabe · Eingabetoken **$0.0003** / 1K Token Ausgabe · Ausgabetoken **$0.00094** / 1K Token Eingabe · Cache-Lesen **$0.000032** / 1K Token Eingabe · Cache-Schreiben **—** / 1K Token Eingabe · Cache-Schreiben, 1 Stunde **—** / 1K Token |
| KonfigurationAnfragelängenstufe 1 | Tarifstaffel— | Kontexttoken, mehr als0 | Kontexttoken, bis einschließlichKeine Obergrenze | Gebühr Eingabe · Eingabetoken **$0.0003** / 1K Token Ausgabe · Ausgabetoken **$0.00094** / 1K Token Eingabe · Cache-Lesen **$0.000032** / 1K Token Eingabe · Cache-Schreiben **—** / 1K Token Eingabe · Cache-Schreiben, 1 Stunde **—** / 1K Token |

Ailoot reserviert vor einer Anfrage einen geschätzten Betrag. Nach dem Ergebnis rechnet Ailoot die endgültige Gebühr anhand des gemessenen Verbrauchs ab. Bei Streaming erfolgt die Abrechnung anhand des abschließenden Verbrauchsdatensatzes. [So funktionieren Reservierung und Abrechnung →](https://ailoot.ai/docs/de/billing/reserve/)

### Beispielanfragen

#### Ailoot Ultra · OpenAI Chat

curlPython SDKPython-Stream

```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-omni-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
```

```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-omni-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"))
```

```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-omni-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")
```

### Ergebnisse abrufen und speichern

#### Ailoot Ultra · OpenAI Chat

json oder SSE

##### Alle fertiggestellten Ergebnisse aufbewahren

Bewahren Sie jede vollständig zurückgegebene Antwort, Datei und jeden Inhaltsteil auf.

Alle Antwortvarianten mit ihren Inhalten, Werkzeugaufrufen und Reasoning-Daten beibehalten. In SSE die Deltas nach Varianten- und Werkzeugindex zusammensetzen; endgültigen Beendigungsgrund und Verbrauchsdaten beibehalten.

##### Wenn die ursprüngliche Antwort geprüft werden muss

Anfrage- und Antwort-IDs sowie Header beibehalten. Eine allgemeine URL zum Abrufen von Textaufträgen wird nicht angegeben.

Antwortfelder

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

Fehler und nächste Schritte

| Antwort | Bedingung | Nächster Schritt |
| --- | --- | --- |
| Antwort400 · `invalid_request_error` | BedingungPflichtfelder, Darstellung des Eingabematerials oder Parameterwert ungültig | Nächster SchrittDie angegebenen Felder vor einer neuen Erstellungsanfrage korrigieren. |

### Aliasnamen

#### Modellaliasnamen

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

#### Aliasnamen für Methodenpfade

Verwenden Sie die oben angezeigten Methodenpfade.

#### Zugehörige Aufrufer-IDs

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

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `qwen/qwen3.8-omni-flash`

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

Alibaba /`qwen/qwen3.8-omni-flash`

### Start

Qwen3.8 Omni Flash analysiert Text, Bilder, Audio und Video und gibt Text zurück. Es unterstützt Besprechungszusammenfassungen, Multimedia-Fragen, 113 Sprachen und Dialekte für Audioeingaben, wählbaren Reasoning-Aufwand und räumliches Audio, mit einem vom Hersteller dokumentierten Kontext von einer Million Tokens.

Zulässige Eingaben

Text

Ergebnisse

json · sse

### In Ailoot verfügbar · Eingaben und Methoden

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

Eingabetypen

`text`

Ausgabetypen

`json`, `sse`

Ausgabeformat

JSON oder SSE

| Feld | Typ | Anforderung | Werte und Limits | Standard |
| --- | --- | --- | --- | --- |
| Feld`model` | Typ`string` | AnforderungErforderlich | Werte und Limits qwen/qwen3.8-omni-flash | Standard— |
| Feld`messages` | Typ`message[]` | AnforderungErforderlich | Werte und Limits | Standard— |
| Feld`messages[].role` | Typ`string` | AnforderungErforderlich | Werte und Limits user, assistant | Standard— |
| Feld`messages[].content` | Typ`string` | AnforderungErforderlich | Werte und Limits | Standard— |
| Feld`max_tokens` | Typ`integer` | AnforderungErforderlich | Werte und Limits | Standard— |
| Feld`stream` | Typ`boolean` | AnforderungOptional | Werte und Limits | Standardfalse |

Kombinationen von Eingabematerialien

**Text** · UTF-8-Text

`Zeichenfolge messages[].content`

Methodenparameter und Lebenszyklus

| Parameter | Vertrag |
| --- | --- |
| Parameter`content_type` | Vertragapplication/json |
| Parameter`required` | Vertragmodel, messages, max\_tokens |
| Parameter`optional_controls` | Vertragstream |
| Parameter`material_types` | Vertragtext |
| Parameter`text_file_material` | VertragDas tatsächliche UTF-8-Dokument lesen und seinen Text in die angegebene Zeichenfolge für Eingabe oder Nachrichteninhalt einfügen. |

Lebenszyklus: `synchronous_or_streamed`

### Tarife

Tarifangaben erweitern die Anfrageoptionen nicht. Unterstützte Parameter stehen bei der ausgewählten Methode.

Schnellmodus

Standardtarif Wenn der Schnellmodus ausgewählt ist

Flex-Modus

Standardtarif Wenn der Modus flex ausgewählt ist

Maximaler Denkaufwand

Standardtarif Wenn beim maximalen Denkaufwand die Standardanpassung (default) verwendet wird

#### Ailoot-Tarife

#### Preise nach Konfiguration

Ordnen Sie jede Gebühr den angezeigten Bedingungen zu. Verwenden Sie für jede Gruppe alternativer Konfigurationen einen Tarif.

| Konfiguration | Tarifstaffel | Kontexttoken, mehr als | Kontexttoken, bis einschließlich | Gebühr |
| --- | --- | --- | --- | --- |
| KonfigurationBasistarife für Token | TarifstaffelGrundtarif | Kontexttoken, mehr als— | Kontexttoken, bis einschließlichKeine Obergrenze | Gebühr Eingabe · Eingabetoken **$0.0003** / 1K Token Ausgabe · Ausgabetoken **$0.00094** / 1K Token Eingabe · Cache-Lesen **$0.000032** / 1K Token Eingabe · Cache-Schreiben **—** / 1K Token Eingabe · Cache-Schreiben, 1 Stunde **—** / 1K Token |
| KonfigurationAnfragelängenstufe 1 | Tarifstaffel— | Kontexttoken, mehr als0 | Kontexttoken, bis einschließlichKeine Obergrenze | Gebühr Eingabe · Eingabetoken **$0.0003** / 1K Token Ausgabe · Ausgabetoken **$0.00094** / 1K Token Eingabe · Cache-Lesen **$0.000032** / 1K Token Eingabe · Cache-Schreiben **—** / 1K Token Eingabe · Cache-Schreiben, 1 Stunde **—** / 1K Token |

Ailoot reserviert vor einer Anfrage einen geschätzten Betrag. Nach dem Ergebnis rechnet Ailoot die endgültige Gebühr anhand des gemessenen Verbrauchs ab. Bei Streaming erfolgt die Abrechnung anhand des abschließenden Verbrauchsdatensatzes. [So funktionieren Reservierung und Abrechnung →](https://ailoot.ai/docs/de/billing/reserve/)

### Beispielanfragen

#### Ailoot Ultra · Anthropic Messages

Vollständiger minimaler JSON-Bodycurl · eigenes UTF-8-Dokument verwendenPython · das vollständige Ergebnis speichern

```json
{
  "model": "qwen/qwen3.8-omni-flash",
  "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-omni-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
```

```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-omni-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))
```

### Ergebnisse abrufen und speichern

#### Ailoot Ultra · Anthropic Messages

JSON oder SSE

##### Alle fertiggestellten Ergebnisse aufbewahren

Bewahren Sie jede vollständig zurückgegebene Antwort, Datei und jeden Inhaltsteil auf.

Alle Inhaltsblöcke, Thinking-Signaturen und tatsächlichen Werkzeugaufruf-IDs beibehalten. Alle SSE-Blockdeltas zusammensetzen; der erste Textblock ist nicht die vollständige Ausgabe.

##### Wenn die ursprüngliche Antwort geprüft werden muss

Anfrage- und Antwort-IDs sowie Header beibehalten. Eine allgemeine URL zum Abrufen von Textaufträgen wird nicht angegeben.

Antwortfelder

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

Fehler und nächste Schritte

| Antwort | Bedingung | Nächster Schritt |
| --- | --- | --- |
| Antwort400 · `invalid_request_error` | BedingungPflichtfelder, Darstellung des Eingabematerials oder Parameterwert ungültig | Nächster SchrittDie angegebenen Felder vor einer neuen Erstellungsanfrage korrigieren. |

### Aliasnamen

#### Modellaliasnamen

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

#### Aliasnamen für Methodenpfade

Verwenden Sie die oben angezeigten Methodenpfade.

#### Zugehörige Aufrufer-IDs

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

FAQ · Qwen: Qwen3.8 Omni Flash

Welche Eingaben und Ergebnisse sind verfügbar?

`POST /v1/chat/completions` · `qwen/qwen3.8-omni-flash`: `text` → `text` `POST /v1/messages` · `qwen/qwen3.8-omni-flash`: `text` → `json`, `sse`

Welche Felder verwendet die Anfrage?

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

Welche Grenzen gelten?

`POST /v1/chat/completions` · `qwen/qwen3.8-omni-flash`: `messages.min_items`: `1`

Verbinden Sie Ailoot mit Claude Code, OpenCode, Hermes oder Ihrer eigenen Anwendung.

## Das Unternehmen und sein Projektportfolio

Das Unternehmen und sein Projektportfolio: Millionen von Kunden; monatliche Umsätze in Milliardenhöhe.

## Tokens mit Rabatt kaufen.

Aborabatt für regelmäßige Arbeit. Aktionscodes bieten bis 50% beim Tokenkauf.

Abo

Wählen Sie einen Tarif mit Rabatt für Ihre regelmäßigen Anfragen.

Aktionscode bis 50%

Geben Sie den Code beim Kauf ein. Der Preis wird nach den gültigen Aktionsbedingungen berechnet.

Ausgaben in der Historie

Modell, Tokens und Betrag werden für jede Anfrage gespeichert.

[Abo wählen](https://ailoot.ai/docs/de/billing/subscriptions/) · [Modellpreise ansehen](https://ailoot.ai/models/de/)

## Verbinden Sie die API mit dem Produkt, das Sie verkaufen.

SaaS, Anwendungen und Bots nach dem offiziellen Angebot und Lizenzvertrag von Ailoot. Fordern Sie für den Weiterverkauf eine Reseller-Lizenz an.

Kommerzielle Anwendung

Integrieren Sie Text-, Bild-, Video- und Audioerzeugung in kostenpflichtige Funktionen Ihres Dienstes.

Reseller-Lizenz

Senden Sie Projektbeschreibung und Zugangsmodell. Fordern Sie schriftliche Nutzungs- und Weiterverkaufsbedingungen an.

Dokumente auf der Website

Offizielles Angebot, Lizenzvertrag und Datenschutzerklärung sind vor der Verbindung zugänglich.

[Reseller-Lizenz anfordern](mailto:support@ailoot.ai) · [Offizielles Angebot und Lizenzvertrag](https://ailoot.ai/legal/offer?lang=de)

## Ailoot · Das Unternehmen und sein Projektportfolio





Ailoot baut auf bewährte Betriebserfahrung, einen großen Kundenstamm, stabilen Service und kontinuierliche KPI-Kontrolle.





Das Unternehmen und sein Projektportfolio: Millionen von Kunden; monatliche Umsätze in Milliardenhöhe.





Ailoot nutzt diese Betriebserfahrung für den API-Zugang zu KI-Funktionen in Kundenprodukten, Agenten, Anwendungen und Automatisierungen.
