Source: https://ailoot.ai/models/de-at/qwen-qwen3-vl-235b-a22b-thinking/
Canonical: https://ailoot.ai/models/de-at/qwen-qwen3-vl-235b-a22b-thinking/
Language: de-at

# Qwen3 VL 235B A22B Thinking

[Markdown](https://ailoot.ai/models/de-at/qwen-qwen3-vl-235b-a22b-thinking/index.md) · [JSON](https://ailoot.ai/models/de-at/qwen-qwen3-vl-235b-a22b-thinking/facts.json)

## [Qwen3 VL 235B A22B Thinking](https://ailoot.ai/models/de-at/qwen-qwen3-vl-235b-a22b-thinking/)

Qwen3-VL-235B-A22B-Thinking ist Qwens Vision-Language-Modell mit Mixture-of-Experts-Architektur für Schlussfolgerungen aus Text, Bildern und Video. Nutzen Sie die Thinking-Ausführung für STEM-Fragen, Dokumentbelege, räumliche Beziehungen, visuelle Codeerstellung und Videoanalysen mit Zeitstempeln, mit einem nativen Kontext von 262,144 Tokens.

- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `qwen/qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/de-at/qwen-qwen3-vl-235b-a22b-thinking/#method-0)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `qwen/qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/de-at/qwen-qwen3-vl-235b-a22b-thinking/#method-1)
- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/de-at/qwen-qwen3-vl-235b-a22b-thinking/#method-2)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/de-at/qwen-qwen3-vl-235b-a22b-thinking/#method-3)

Ü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.

Einführung: die multimodale Thinking-Ausführung

Qwen3-VL-235B-A22B-Thinking ist die auf Schlussfolgerungen ausgerichtete Mixture-of-Experts-Ausführung von Qwen3-VL. Sie kombiniert Text mit Bildern und Video und erzeugt Textantworten oder Code. Der feste Thinking-Checkpoint ist von Qwen3-VL-235B-A22B-Instruct und den gesondert benannten FP8-Builds getrennt. Wählen Sie ihn für Fragen, die visuelle Belege mit einer ausführlicheren Erklärung verbinden müssen, anstatt bei jeder Qwen3-VL-Ausführung denselben Antwortstil vorauszusetzen.

Visuelle Agenten und visuelle Codeerstellung

Qwen beschreibt einen Ablauf für visuelle Agenten, der Elemente in Computer- oder Mobiloberflächen erkennt, deren Funktionen interpretiert und mit Tools Aufgaben erledigt. Das Modell liefert Wahrnehmung und Schlussfolgerungen; eine Anwendung muss die Aktionen anbinden und ausführen. Stellen Sie für eine Oberflächenprüfung den aktuellen Screenshot und ein konkretes Ziel bereit und fordern Sie anschließend die Identifikation der relevanten Steuerelemente sowie eine Erklärung der nächsten Aktion an. Das Bild allein verleiht keine Kontrolle über das Gerät.

Visuelle Codeerstellung umfasst die Erzeugung von Diagramminhalten und HTML, CSS oder JavaScript aus Bildern und Videos. Stellen Sie einen Screenshot mit dem erforderlichen Layout, Verhalten und bearbeitbaren Ausgabeformat bereit. Fordern Sie Seitenstruktur und Stile als getrennte Artefakte an, wenn das die Prüfung erleichtert. Generierter Code ist Text für einen Entwicklungsablauf; er belegt weder, dass eine Website gerendert wurde, noch, dass aus dem Quellbild eine funktionierende Anwendung entstanden ist.

Räumliche Wahrnehmung

Der Hersteller dokumentiert Schlussfolgerungen zu Objektpositionen, Blickwinkeln und Verdeckungen, mit zweidimensionaler Verortung und Unterstützung für dreidimensionale Verortung. Stellen Sie eine konkrete Frage zu einer Beziehung und benennen Sie das betreffende Objekt: etwa welche Komponente verdeckt ist, was davor liegt und welche sichtbaren Hinweise diese Interpretation stützen. Die Verortungsfähigkeit darf nicht als kalibrierte physische Messung aus einem beliebigen Bild betrachtet werden.

Langer Kontext und Video

Der native Kontext umfasst 262,144 Tokens. Qwen beschreibt eine Erweiterung auf ungefähr eine Million über die YaRN-Konfiguration sowie Familien-Workflows mit Büchern oder stundenlangen Videos und einer Ereignisindexierung mit sekundengenauer Auflösung. Diese Fähigkeiten hängen von Darstellung, Frame-Sampling und Kontextkonfiguration ab; die allgemeine Herstellerbeschreibung garantiert keine perfekte Erinnerung an jeden Frame. In seinem Repository empfiehlt Qwen für dieses verschachtelte Positionsschema bei einer Erweiterung von 256K auf etwa 1M einen Extrapolationsfaktor von zwei oder drei, anstatt automatisch einen Faktor von vier aus einem anderen Modell zu übernehmen.

Multimodales Schlussfolgern und Erkennen

Die Thinking-Ausführung zielt auf beleggestütztes STEM- und mathematisches Schlussfolgern, Kausalanalyse und logische Antworten ab, die Text mit visuellem Material verbinden. Stellen Sie ein Diagramm gemeinsam mit seinen Definitionen oder ein Schaubild mit der präzisen numerischen Frage bereit. Fordern Sie vor der Schlussfolgerung die verwendeten Beschriftungen und Werte an. Qwen beschreibt auch eine breitere visuelle Erkennung von Personen, Anime, Produkten, Wahrzeichen, Pflanzen und Tieren. Eine Erkennungsantwort bleibt eine Schlussfolgerung aus dem bereitgestellten Bild und garantiert nicht, dass jedes Objekt oder jede Identität benannt werden kann.

OCR deckt 32 Sprachen ab und soll das Lesen bei schwachem Licht, Unschärfe oder Schräglage verbessern, einschließlich Fachvokabular und der Struktur langer Dokumente. Bewahren Sie lesbare Quellbilder und fordern Sie Felder, Zitate oder eine strukturierte Tabelle an, die sich überprüfen lässt. Text- und Bildverständnis sind in einem Modell vereint, sodass sich eine Frage gemeinsam auf eine Dokumentpassage, eine Abbildung und die Anweisungen der nutzenden Person beziehen kann.

Änderungen an der Architektur

Interleaved-MRoPE verteilt die Positionsdarstellung für das Video-Schlussfolgern über Zeit, Breite und Höhe. DeepStack kombiniert visuelle Merkmale mehrerer Encoder-Ebenen, um feinere Details zu erfassen und die Bild–Text-Ausrichtung zu verbessern. Die Text–Zeitstempel-Ausrichtung verankert Ereignisse in zeitlichen Bezügen. Die veröffentlichte Textkonfiguration besitzt 94 Schichten, 128 Experten und acht pro Token ausgewählte Experten. Diese Architekturdetails erklären die multimodale Darstellung des Modells; sie begründen keine garantierte Antwortzeit.

Visuelle Eingabe und Ausgabe vorbereiten

Die Herstellerbeispiele decken einzelne oder mehrere Bilder, Video und reine Textanfragen ab. Kennzeichnen Sie jede visuelle Eingabe, damit die Frage eindeutig darauf verweisen kann. Bild- und Videoprozessoren verwenden getrennte Pixelbudgets: Ein Bildbudget begrenzt die Pixel des Bildes, während ein Videobudget die Pixel über die ausgewählten Frames hinweg berücksichtigt. Explizite Bildabmessungen werden an Vielfachen von 32 ausgerichtet. Das Video-Sampling lässt sich über die Rate oder die Frame-Anzahl steuern; der dokumentierte Standard sind zwei Frames pro Sekunde. Bewahren Sie Zeitstempel, wenn Sie eine Ereigniszeitleiste anfordern.

Fordern Sie bei einem langen Clip das Ereignis, sein Zeitintervall und die sichtbaren Belege statt einer undifferenzierten Zusammenfassung an. Verlangen Sie bei mehreren Seiten ein nach Seitenkennung geordnetes Ergebnis. Diese Vorbereitungsbeispiele wenden die dokumentierten Fähigkeiten an und helfen, Auslassungen oder Extraktionsfehler sichtbar zu machen.

Generierungsempfehlungen und Grenzen

Die Generierungsdatei des Checkpoints verwendet standardmäßig temperature 0.8, top\_p 0.95 und top\_k 20. Qwens separates Thinking-Evaluierungsrezept verwendet temperature 0.6, eine Presence Penalty von null, eine Repetition Penalty von 1.0 und ein Ausgabebudget von 40,960 Tokens. Das sind unterschiedliche Herstellervorgaben, kein einheitliches hartes Ausgabelimit. Lassen Sie neben den visuellen Tokens Platz für Schlussfolgerungen und endgültigen Text und prüfen Sie extrahierten Text, berechnete Antworten und generierten Code vor der Verwendung anhand der Quelle.

Praktische Aufgabe

### Praktische Aufgabe

Technisches Beispiel auf Englisch

```
Reason from a textual circuit description

Use this textual circuit description: an ideal 12 V source powers two series resistors, R1 = 2 Ω and R2 = 4 Ω. Calculate total resistance, current and voltage across each resistor. State the ideal-component assumptions and verify that the voltage drops sum to the source voltage. Return a compact worked solution using the labels R1 and R2.
```

#### Erwartetes Ergebnis

```
A labeled worked calculation and a voltage-sum consistency check.
```

#### Ergebnis prüfen

```
The same series current is used for both resistors and the stated voltage drops sum to 12 V.
```

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `qwen/qwen3-vl-235b-a22b-thinking`

[`qwen/qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/de-at/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen%2Fqwen3-vl-235b-a22b-thinking&fmt=chat)

Alibaba /`qwen/qwen3-vl-235b-a22b-thinking`

Modell-ID

- `qwen/qwen3-vl-235b-a22b-thinking`
- `qwen3-vl-235b-a22b-thinking`

### Einstieg

Qwen3-VL-235B-A22B-Thinking ist Qwens Vision-Language-Modell mit Mixture-of-Experts-Architektur für Schlussfolgerungen aus Text, Bildern und Video. Nutzen Sie die Thinking-Ausführung für STEM-Fragen, Dokumentbelege, räumliche Beziehungen, visuelle Codeerstellung und Videoanalysen mit Zeitstempeln, mit einem nativen Kontext von 262,144 Tokens.

Zulässige Eingaben

Text

Ergebnisse

Text

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

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

Eingabe

`text`

Ausgabe

`text`

Ausgabeformat

json oder SSE

| Feld | Typ | Anforderung | Werte und Limits | Standard |
| --- | --- | --- | --- | --- |
| Feld`model` | Typ`string` | AnforderungErforderlich | Werte und Limits qwen/qwen3-vl-235b-a22b-thinking | Standard— |
| Feld`messages` | Typ`message[]` | AnforderungErforderlich | Werte und Limits Mindestanzahl Elemente: 1 | Standard— |
| Feld`messages[].role` | Typ`string` | AnforderungErforderlich | Werte und Limits Modellabhängig | Standard— |
| Feld`messages[].content` | Typ`string` | AnforderungOptional | Werte und Limits Gilt, wenn: Textgespräch | Standard— |
| Feld`stream` | Typ`boolean` | AnforderungOptional | Werte und Limits | Standardfalse |

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 |
| Parameter`control_scope` | VertragTextgespräch; stream ist ein boolescher Wert und standardmäßig false. |
| Parameter`output_modalities` | Vertragtext |
| Parameter`hosted_operations` | Vertragfalse |
| Parameter`multimodal_input_binding` | Vertragnull |

Methodenaliasnamen: `/chat/completions`

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

Nicht angegeben Wenn der Schnellmodus ausgewählt ist

Flex-Modus

Nicht angegeben Wenn der Modus flex ausgewählt ist

Maximaler Denkaufwand

Nicht angegeben Wenn beim maximalen Denkaufwand die Standardanpassung (default) verwendet wird

#### Ailoot-Tarife

#### Preise nach Konfiguration

| Konfiguration | Tarifstaffel | Gebühr |
| --- | --- | --- |
| KonfigurationBasistarife für Token | TarifstaffelGrundtarif | Gebühr Eingabe · Eingabetoken **$0.000572** / 1K Tokens Ausgabe · Ausgabetoken **$0.00572** / 1K Tokens Eingabe · Cache lesen **$0** / 1K Tokens Eingabe · In Cache schreiben **$0** / 1K Tokens Eingabe · In Cache schreiben, 1 Stunde **—** / 1K Tokens |

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-at/billing/reserve/)

### Beispielanfragen

#### Ailoot Ultra · OpenAI Chat

curlPython SDK

```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-vl-235b-a22b-thinking","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
```

```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-vl-235b-a22b-thinking", 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"))
```

### 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-vl-235b-a22b-thinking`](https://ailoot.ai/models/de-at/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen%2Fqwen3-vl-235b-a22b-thinking&fmt=chat), [`qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/de-at/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen3-vl-235b-a22b-thinking&fmt=chat)

#### Aliasnamen für Methodenpfade

`/chat/completions`

#### Zugehörige Aufrufer-IDs

[`qwen/qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/de-at/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen%2Fqwen3-vl-235b-a22b-thinking&fmt=chat), [`qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/de-at/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen3-vl-235b-a22b-thinking&fmt=chat)

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `qwen/qwen3-vl-235b-a22b-thinking`

[`qwen/qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/de-at/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen%2Fqwen3-vl-235b-a22b-thinking&fmt=messages)

Alibaba /`qwen/qwen3-vl-235b-a22b-thinking`

Modell-ID

- `qwen/qwen3-vl-235b-a22b-thinking`
- `qwen3-vl-235b-a22b-thinking`

### Einstieg

Qwen3-VL-235B-A22B-Thinking ist Qwens Vision-Language-Modell mit Mixture-of-Experts-Architektur für Schlussfolgerungen aus Text, Bildern und Video. Nutzen Sie die Thinking-Ausführung für STEM-Fragen, Dokumentbelege, räumliche Beziehungen, visuelle Codeerstellung und Videoanalysen mit Zeitstempeln, mit einem nativen Kontext von 262,144 Tokens.

Zulässige Eingaben

Text

Ergebnisse

json · sse

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

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

Eingabe

`text`

Ausgabe

`json`, `sse`

Ausgabeformat

JSON oder SSE

| Feld | Typ | Anforderung | Werte und Limits | Standard |
| --- | --- | --- | --- | --- |
| Feld`model` | Typ`string` | AnforderungErforderlich | Werte und Limits qwen/qwen3-vl-235b-a22b-thinking | 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

Nicht angegeben Wenn der Schnellmodus ausgewählt ist

Flex-Modus

Nicht angegeben Wenn der Modus flex ausgewählt ist

Maximaler Denkaufwand

Nicht angegeben Wenn beim maximalen Denkaufwand die Standardanpassung (default) verwendet wird

#### Ailoot-Tarife

#### Preise nach Konfiguration

| Konfiguration | Tarifstaffel | Gebühr |
| --- | --- | --- |
| KonfigurationBasistarife für Token | TarifstaffelGrundtarif | Gebühr Eingabe · Eingabetoken **$0.000572** / 1K Tokens Ausgabe · Ausgabetoken **$0.00572** / 1K Tokens Eingabe · Cache lesen **$0** / 1K Tokens Eingabe · In Cache schreiben **$0** / 1K Tokens Eingabe · In Cache schreiben, 1 Stunde **—** / 1K Tokens |

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-at/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-vl-235b-a22b-thinking",
  "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-vl-235b-a22b-thinking', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

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

```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-vl-235b-a22b-thinking', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

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

### 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-vl-235b-a22b-thinking`](https://ailoot.ai/models/de-at/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen%2Fqwen3-vl-235b-a22b-thinking&fmt=messages), [`qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/de-at/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen3-vl-235b-a22b-thinking&fmt=messages)

#### Aliasnamen für Methodenpfade

`/chat/completions`

#### Zugehörige Aufrufer-IDs

[`qwen/qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/de-at/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen%2Fqwen3-vl-235b-a22b-thinking&fmt=messages), [`qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/de-at/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen3-vl-235b-a22b-thinking&fmt=messages)

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `qwen3-vl-235b-a22b-thinking`

[`qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/de-at/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen3-vl-235b-a22b-thinking&fmt=chat)

Alibaba /`qwen3-vl-235b-a22b-thinking`

Modell-ID

- `qwen/qwen3-vl-235b-a22b-thinking`
- `qwen3-vl-235b-a22b-thinking`

### Einstieg

Qwen3-VL-235B-A22B-Thinking ist Qwens Vision-Language-Modell mit Mixture-of-Experts-Architektur für Schlussfolgerungen aus Text, Bildern und Video. Nutzen Sie die Thinking-Ausführung für STEM-Fragen, Dokumentbelege, räumliche Beziehungen, visuelle Codeerstellung und Videoanalysen mit Zeitstempeln, mit einem nativen Kontext von 262,144 Tokens.

Zulässige Eingaben

Text

Ergebnisse

Text

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

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

Eingabe

`text`

Ausgabe

`text`

Ausgabeformat

json oder SSE

| Feld | Typ | Anforderung | Werte und Limits | Standard |
| --- | --- | --- | --- | --- |
| Feld`model` | Typ`string` | AnforderungErforderlich | Werte und Limits qwen3-vl-235b-a22b-thinking | 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

Nicht angegeben Wenn der Schnellmodus ausgewählt ist

Flex-Modus

Nicht angegeben Wenn der Modus flex ausgewählt ist

Maximaler Denkaufwand

Nicht angegeben Wenn beim maximalen Denkaufwand die Standardanpassung (default) verwendet wird

#### Ailoot-Tarife

#### Preise nach Konfiguration

| Konfiguration | Tarifstaffel | Gebühr |
| --- | --- | --- |
| KonfigurationBasistarife für Token | TarifstaffelGrundtarif | Gebühr Eingabe · Eingabetoken **$0.000572** / 1K Tokens Ausgabe · Ausgabetoken **$0.00572** / 1K Tokens Eingabe · Cache lesen **$0** / 1K Tokens Eingabe · In Cache schreiben **$0** / 1K Tokens Eingabe · In Cache schreiben, 1 Stunde **—** / 1K Tokens |

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-at/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": "qwen3-vl-235b-a22b-thinking", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')

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

```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='qwen3-vl-235b-a22b-thinking',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
import base64, json
from pathlib import Path

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

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

```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='qwen3-vl-235b-a22b-thinking',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### 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-vl-235b-a22b-thinking`](https://ailoot.ai/models/de-at/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen%2Fqwen3-vl-235b-a22b-thinking&fmt=chat), [`qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/de-at/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen3-vl-235b-a22b-thinking&fmt=chat)

#### Aliasnamen für Methodenpfade

`/chat/completions`

#### Zugehörige Aufrufer-IDs

[`qwen/qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/de-at/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen%2Fqwen3-vl-235b-a22b-thinking&fmt=chat), [`qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/de-at/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen3-vl-235b-a22b-thinking&fmt=chat)

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `qwen3-vl-235b-a22b-thinking`

[`qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/de-at/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen3-vl-235b-a22b-thinking&fmt=messages)

Alibaba /`qwen3-vl-235b-a22b-thinking`

Modell-ID

- `qwen/qwen3-vl-235b-a22b-thinking`
- `qwen3-vl-235b-a22b-thinking`

### Einstieg

Qwen3-VL-235B-A22B-Thinking ist Qwens Vision-Language-Modell mit Mixture-of-Experts-Architektur für Schlussfolgerungen aus Text, Bildern und Video. Nutzen Sie die Thinking-Ausführung für STEM-Fragen, Dokumentbelege, räumliche Beziehungen, visuelle Codeerstellung und Videoanalysen mit Zeitstempeln, mit einem nativen Kontext von 262,144 Tokens.

Zulässige Eingaben

Text

Ergebnisse

json · sse

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

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

Eingabe

`text`

Ausgabe

`json`, `sse`

Ausgabeformat

JSON oder SSE

| Feld | Typ | Anforderung | Werte und Limits | Standard |
| --- | --- | --- | --- | --- |
| Feld`model` | Typ`string` | AnforderungErforderlich | Werte und Limits qwen3-vl-235b-a22b-thinking | 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

Nicht angegeben Wenn der Schnellmodus ausgewählt ist

Flex-Modus

Nicht angegeben Wenn der Modus flex ausgewählt ist

Maximaler Denkaufwand

Nicht angegeben Wenn beim maximalen Denkaufwand die Standardanpassung (default) verwendet wird

#### Ailoot-Tarife

#### Preise nach Konfiguration

| Konfiguration | Tarifstaffel | Gebühr |
| --- | --- | --- |
| KonfigurationBasistarife für Token | TarifstaffelGrundtarif | Gebühr Eingabe · Eingabetoken **$0.000572** / 1K Tokens Ausgabe · Ausgabetoken **$0.00572** / 1K Tokens Eingabe · Cache lesen **$0** / 1K Tokens Eingabe · In Cache schreiben **$0** / 1K Tokens Eingabe · In Cache schreiben, 1 Stunde **—** / 1K Tokens |

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-at/billing/reserve/)

### Beispielanfragen

#### Ailoot Ultra · Anthropic Messages

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

```json
{
  "model": "qwen3-vl-235b-a22b-thinking",
  "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': 'qwen3-vl-235b-a22b-thinking', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

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

```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': 'qwen3-vl-235b-a22b-thinking', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

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

### 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-vl-235b-a22b-thinking`](https://ailoot.ai/models/de-at/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen%2Fqwen3-vl-235b-a22b-thinking&fmt=messages), [`qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/de-at/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen3-vl-235b-a22b-thinking&fmt=messages)

#### Aliasnamen für Methodenpfade

`/chat/completions`

#### Zugehörige Aufrufer-IDs

[`qwen/qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/de-at/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen%2Fqwen3-vl-235b-a22b-thinking&fmt=messages), [`qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/de-at/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen3-vl-235b-a22b-thinking&fmt=messages)

FAQ · qwen/qwen3-vl-235b-a22b-thinking

Welche Eingaben und Ergebnisse sind verfügbar?

`POST /v1/chat/completions` · `qwen/qwen3-vl-235b-a22b-thinking`: `text` → `text` `POST /v1/messages` · `qwen/qwen3-vl-235b-a22b-thinking`: `text` → `json`, `sse` `POST /v1/chat/completions` · `qwen3-vl-235b-a22b-thinking`: `text` → `text` `POST /v1/messages` · `qwen3-vl-235b-a22b-thinking`: `text` → `json`, `sse`

Welche Felder verwendet die Anfrage?

`POST /v1/chat/completions` · `qwen/qwen3-vl-235b-a22b-thinking`: `model`, `messages`, `stream` `POST /v1/messages` · `qwen/qwen3-vl-235b-a22b-thinking`: `model`, `messages`, `max_tokens`, `stream` `POST /v1/chat/completions` · `qwen3-vl-235b-a22b-thinking`: `model`, `messages`, `stream`, `modalities`, `provider` `POST /v1/messages` · `qwen3-vl-235b-a22b-thinking`: `model`, `messages`, `max_tokens`, `stream`

Welche Grenzen gelten?

`POST /v1/chat/completions` · `qwen/qwen3-vl-235b-a22b-thinking`: `messages.min_items`: `1` `POST /v1/chat/completions` · `qwen3-vl-235b-a22b-thinking`: `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-at/billing/subscriptions/) · [Modellpreise ansehen](https://ailoot.ai/models/de-at/)

## 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-at)

## 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.
