Source: https://ailoot.ai/models/pl/qwen-qwen3-7-flash/
Canonical: https://ailoot.ai/models/pl/qwen-qwen3-7-flash/
Language: pl

# Qwen: Qwen3.7 Flash

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

## [Qwen: Qwen3.7 Flash](https://ailoot.ai/models/pl/qwen-qwen3-7-flash/)

Qwen3.7 Flash to rodzina modeli wizualno-językowych Qwen do tekstu, obrazów i wideo, zwracających tekst. Producent podkreśla lepsze rozpoznawanie obiektów, rozumienie przestrzeni, multimodalną pracę agentową i programowanie na podstawie obrazu, z domyślnie włączonym rozumowaniem i opcjonalnym trybem odpowiedzi bezpośredniej.

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

O modelu

Ten opis przedstawia możliwości modelu. Dane wejściowe, wyniki i opcje dostępne w Ailoot podano poniżej dla wybranej metody.

Wydanie Qwen3.7 Flash

Qwen3.7 Flash to natywna rodzina modeli wizualno-językowych do rozumienia tekstu, obrazów i wideo z odpowiedziami tekstowymi. Opis wydania producenta przedstawia lepszą percepcję multimodalną i wykonanie agentowe w porównaniu z Qwen3.6 Flash. Praktyczny zakres zadań obejmuje rozpoznawanie obiektów, rozumienie sceny wizualnej, rozumowanie o relacjach przestrzennych i przygotowywanie kodu lub wyjaśnień na podstawie materiału wizualnego.

Oficjalne wydanie wymienia zarówno qwen3.7-flash, jak i datowany qwen3.7-flash-2026-07-15. Zachowaj dokładną nazwę modelu przy zapisywaniu wyniku: nazwa Flash bez daty nie identyfikuje stałej wersji producenta. Wykorzystany tutaj opis wydania nie ustanawia liczby parametrów otwartej wersji ani reprezentacji liczbowej.

Rozpoznawanie obiektów, percepcja świata rzeczywistego i przestrzeń

Podaj obraz sceny z konkretnym pytaniem: który obiekt ma znaczenie, jaką relację należy zbadać i jakie widoczne szczegóły powinny uzasadniać odpowiedź. W diagramie zachowaj etykiety i dostarcz definicje potrzebne do ich interpretacji. Użyteczne wyjście oddziela obserwacje od wywnioskowanych relacji, ułatwiając porównanie wyjaśnienia ze źródłem.

W przypadku kilku obrazów oznacz każde wejście i poproś o porównanie uporządkowane według tych etykiet. W przypadku wideo wskaż odpowiednie zdarzenie i zachowaj sekwencję lub informacje czasowe. Sprawdź dokładne liczby, pomiary przestrzenne i obserwacje na poziomie klatek względem dostarczonego materiału.

Agenci multimodalni

Wydanie podkreśla scenariusze Search Agent i agentów z interpreterem kodu, z bardziej stabilnym wykonaniem wieloetapowym. W takim procesie aplikacja dostarcza dozwolone narzędzia, wykonuje ich działania i zwraca obserwacje. Model może używać tych wyników do aktualizacji planu. Opisz cel i warunek ukończenia oraz poproś o końcowy rezultat wraz z wszelkimi nierozstrzygniętymi dowodami. Producent wymienia wywoływanie funkcji, ustrukturyzowane dane wyjściowe, uzupełnianie prefiksu i buforowanie kontekstu. Wyszukiwanie w sieci jest obsługiwane w Beijing i Singapore oraz nieobsługiwane w pozostałych wymienionych regionach. Wnioskowanie wsadowe jest obsługiwane dla aliasu Beijing i nieobsługiwane gdzie indziej; dostrajanie jest nieobsługiwane.

Specjalizacji agentowej modelu nie należy mylić z wbudowanym dostępem do aktualnych źródeł lub środowiska wykonawczego w każdym interfejsie. Gdy zadanie wymaga pobierania informacji lub uruchamiania kodu, odróżniaj wynik zwrócony przez rzeczywiste narzędzie od proponowanego działania w tekście modelu. Ten opis nie ustanawia, jakie narzędzia udostępnia inna aplikacja.

Programowanie na podstawie obrazu

Qwen opisuje udoskonalone programowanie wykorzystujące materiał wizualny. Użyteczne żądanie może łączyć zrzut ekranu lub układ z wymaganiami funkcjonalnymi i prosić o edytowalny kod. Określ framework lub formę wyjścia, stany interakcji i ograniczenia w dostarczonym zadaniu. Poproś o wygenerowany rezultat oddzielnie od wyjaśnienia, aby mógł zostać oceniony lub wyrenderowany w procesie programistycznym.

W przypadku istniejącego interfejsu wskaż zamierzoną zmianę i odpowiedni kontekst kodu zamiast prosić o niepowiązane przeprojektowanie. Model może połączyć wymaganie wizualne z propozycją kodu; ta propozycja nie dowodzi, że interfejs wyrenderowano lub działa poprawnie. Te przykłady zadań wykorzystują zakres programowania wizualnego producenta bez dodawania gwarancji wykonania.

Rozumowanie i bezpośrednie odpowiedzi

Przewodnik producenta po obsługiwanych modelach wymienia Qwen3.7 Flash jako rodzinę hybrydowego rozumowania z domyślnie włączonym rozumowaniem. Udokumentowany proces hybrydowy może wyłączyć rozumowanie dla bezpośredniej odpowiedzi. Oddzielaj wyjście rozumowania od odpowiedzi końcowej, gdy interfejs dostarcza oba. Ustawień osobno nazwanego modelu Qwen-Omni lub otwartego modelu gęstego nie należy przenosić wyłącznie dlatego, że dzielą nazwę Qwen.

Używaj głębszej analizy do pytania wizualnego łączącego kilka obserwacji; proś o wynik bezpośredni przy prostym opisie. Określ sprawdzalną strukturę końcową, taką jak tabela obserwacji, zwięzły wniosek lub pliki kodu, zamiast polegać na długości odpowiedzi jako sygnale jakości.

Limity i przygotowanie wejścia

Dedykowana strona Alibaba Qwen3.7-Flash podaje kontekst 1,000,000 tokenów, maksymalne wejście 991,808 tokenów dla odpowiedzi bezpośrednich lub 983,616 dla rozumowania oraz maksymalne wyjście 131,072 w obu trybach. Osobno wymienia maksymalną długość chain-of-thought 262,144 tokenów. Zachowaj czytelność odpowiednich szczegółów wizualnych, przytnij niepowiązany materiał i zarezerwuj miejsce na wymagany wynik. Sprawdź etykiety obiektów, wnioski przestrzenne, wyodrębniony tekst i propozycje kodu względem dostarczonych dowodów. Użyteczny opis to konkretny zakres percepcji, agentów i programowania wizualnego producenta, z zachowaniem hybrydowego trybu odpowiedzi.

Zadanie praktyczne

### Zadanie praktyczne

Przykład techniczny po angielsku

```
Check a spatial claim from a text grid

Use this written grid description: the red box is at row 2, column 1; the blue box is at row 2, column 3; the green box is at row 1, column 3. Rows increase downward and columns increase rightward. Describe their relative positions and assess the claim that green is directly above red.
```

#### Oczekiwany wynik

```
A relative-position description and a supported assessment of the claim, citing grid coordinates.
```

#### Sprawdź wynik

```
Check that directly above requires the same column and that the stated row direction is respected.
```

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

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

Alibaba /`qwen/qwen3.7-flash`

### Start

Qwen3.7 Flash to rodzina modeli wizualno-językowych Qwen do tekstu, obrazów i wideo, zwracających tekst. Producent podkreśla lepsze rozpoznawanie obiektów, rozumienie przestrzeni, multimodalną pracę agentową i programowanie na podstawie obrazu, z domyślnie włączonym rozumowaniem i opcjonalnym trybem odpowiedzi bezpośredniej.

Akceptowane dane wejściowe

Tekst

Wyniki

Tekst

### Dostępne w Ailoot · dane wejściowe i metody

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

Wejście

`text`

Wyjście

`text`

Format wyjściowy

json lub SSE

| Pole | Typ | Wymaganie | Wartości i limity | Domyślnie |
| --- | --- | --- | --- | --- |
| Pole`model` | Typ`string` | WymaganieWymagane | Wartości i limity qwen/qwen3.7-flash | Domyślnie— |
| Pole`messages` | Typ`message[]` | WymaganieWymagane | Wartości i limity Minimalna liczba elementów: 1 | Domyślnie— |
| Pole`messages[].role` | Typ`string` | WymaganieWymagane | Wartości i limity Przykłady: system, user, assistant, tool, function Warunki: Te role są jawnie reprezentowane przez typy zgodności w kodzie źródłowym; dokładny zestaw ról pozostaje właściwy dla danego modelu. Zależy od modelu | Domyślnie— |
| Pole`messages[].content` | Typ`string\|content_part[]\|null` | WymaganieOpcjonalne | Wartości i limity | Domyślnie— |
| Pole`messages[].tool_calls` | Typ`tool_call[]` | WymaganieOpcjonalne | Wartości i limity | Domyślnie— |
| Pole`messages[].tool_call_id` | Typ`string` | WymaganieOpcjonalne | Wartości i limity Obowiązuje, gdy: role=tool; użyj rzeczywiście zwróconego ID | Domyślnie— |
| Pole`messages[].name` | Typ`string` | WymaganieOpcjonalne | Wartości i limity | Domyślnie— |
| Pole`messages[].reasoning_content` | Typ`string` | WymaganieOpcjonalne | Wartości i limity Obowiązuje, gdy: Przekazuj z powrotem rzeczywiście zwróconą treść rozumowania, gdy ten model jej używa | Domyślnie— |
| Pole`messages[].reasoning_details` | Typ`object\|array` | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
| Pole`max_tokens` | Typ`integer` | WymaganieOpcjonalne | Wartości i limity Minimum: 1 Zależy od modelu | Domyślnie— |
| Pole`max_completion_tokens` | Typ`integer` | WymaganieOpcjonalne | Wartości i limity Minimum: 1 Zależy od modelu | Domyślnie— |
| Pole`stream` | Typ`boolean` | WymaganieOpcjonalne | Wartości i limity | Domyślniefalse |
| Pole`stream_options.include_usage` | Typ`boolean` | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
| Pole`temperature` | Typ`number` | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
| Pole`top_p` | Typ`number` | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
| Pole`stop` | Typ`string\|string[]` | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
| Pole`tools` | Typ`function_tool[]` | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
| Pole`tools[].type` | Typ`string` | WymaganieOpcjonalne | Wartości i limity function Zależy od modelu | Domyślnie— |
| Pole`tools[].function.name` | Typ`string` | WymaganieWymagane | Wartości i limity Obowiązuje, gdy: udostępnione narzędzie funkcji | Domyślnie— |
| Pole`tools[].function.description` | Typ`string` | WymaganieOpcjonalne | Wartości i limity | Domyślnie— |
| Pole`tools[].function.parameters` | Typ`JSON_schema` | WymaganieOpcjonalne | Wartości i limity | Domyślnie— |
| Pole`tool_choice` | Typ`string\|object` | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
| Pole`parallel_tool_calls` | Typ`boolean` | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
| Pole`response_format` | Typ`object` | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
| Pole`reasoning_effort` | Typ`string` | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
| Pole`reasoning` | Typ`object` | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
| Pole`service_tier` | Typ`string` | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
| Pole`instructions` | Typ`string` | WymaganieOpcjonalne | Wartości i limity Pole zgodności | Domyślnie— |
| Pole`functions` | Typ`function[]` | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
| Pole`function_call` | Typ`string\|object` | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
| Pole`prompt_cache_options` | Typ`object` | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
| Pole`modalities` | Typ`string[]` | WymaganieOpcjonalne | Wartości i limity text | Domyślnie— |
| Pole`provider` | Typ`object` | WymaganieOpcjonalne | Wartości i limity Warunki: provider.options jest odrzucane na tej tekstowej trasie Ultra | Domyślnie— |
| Pole`cache_control.ttl` | Typ`string` | WymaganieOpcjonalne | Wartości i limity Warunki: 1h jest odrzucane w rzeczywistych miejscach pamięci podręcznej promptów | Domyślnie— |

Kombinacje materiałów wejściowych

**Tekst** · tekst UTF8

`messages[].content`

Parametry i cykl życia metody

| Parametr | Kontrakt |
| --- | --- |
| Parametr`content_type` | Kontraktapplication/json |
| Parametr`required` | Kontraktmodel, messages |
| Parametr`material_types` | Kontrakttext |
| Parametr`messages` | Kontrakttablica wiadomości o strukturze role/content |
| Parametr`file_material` | Kontraktrzeczywisty dokument UTF-8 wstawiony jako dosłowny tekst; bez wywnioskowanego ID pliku |
| Parametr`optional_controls` | Kontraktstream, temperature, top\_p, stop, max\_tokens, max\_completion\_tokens, reasoning, response\_format, tools, tool\_choice |
| Parametr`control_scope` | Kontraktwłaściwe dla modelu; narzędzia funkcji użytkownika różnią się od narzędzi hostowanych |
| Parametr`output_modalities` | Kontrakttext |
| Parametr`hosted_operations` | Kontraktfalse |
| Parametr`multimodal_input_binding` | Kontraktnull |

Cykl życia: `synchronous_or_streamed`

Wyślij dokładne ID modelu wraz z messages.

Długość kontekstu nie jest limitem wyjścia.

Plik tekstowy może dostarczyć dosłowny tekst; wejścia obrazowe/dźwiękowe/obiekty plików wymagają dokładnego powiązania.

### Cennik

Informacje taryfowe nie dodają opcji żądania. Obsługiwane parametry podano przy wybranej metodzie.

Tryb szybki

Stawka standardowa Gdy wybrany jest tryb szybki

Tryb flex

Stawka standardowa Gdy wybrany jest tryb flex

Maksymalna intensywność rozumowania

Stawka standardowa Gdy dla maksymalnej intensywności rozumowania stosowana jest domyślna korekta (default)

#### Stawki Ailoot

#### Ceny według konfiguracji

Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.

| Konfiguracja | Tabela stawek | Tokeny kontekstu, więcej niż | Tokeny kontekstu, do podanej wartości włącznie | Opłata |
| --- | --- | --- | --- | --- |
| KonfiguracjaPodstawowe stawki za tokeny | Tabela stawekStawka podstawowa | Tokeny kontekstu, więcej niż— | Tokeny kontekstu, do podanej wartości włącznieBez górnej granicy | Opłata Wejście · Tokeny wejściowe **$0.00006** / 1K tokenów Wyjście · Tokeny wyjściowe **$0.00026** / 1K tokenów Wejście · Odczyt cache **$0.000012** / 1K tokenów Wejście · Zapis do cache **$0.000076** / 1K tokenów Wejście · Zapis do cache, 1 godz. **—** / 1K tokenów |
| KonfiguracjaPrzedział długości żądania 1 | Tabela stawek— | Tokeny kontekstu, więcej niż0 | Tokeny kontekstu, do podanej wartości włącznie32 000 | Opłata Wejście · Tokeny wejściowe **$0.00006** / 1K tokenów Wyjście · Tokeny wyjściowe **$0.00026** / 1K tokenów Wejście · Odczyt cache **$0.000012** / 1K tokenów Wejście · Zapis do cache **$0.000076** / 1K tokenów Wejście · Zapis do cache, 1 godz. **—** / 1K tokenów |
| KonfiguracjaPrzedział długości żądania 2 | Tabela stawek— | Tokeny kontekstu, więcej niż32 000 | Tokeny kontekstu, do podanej wartości włącznie256 000 | Opłata Wejście · Tokeny wejściowe **$0.0002** / 1K tokenów Wyjście · Tokeny wyjściowe **$0.0008** / 1K tokenów Wejście · Odczyt cache **$0.00004** / 1K tokenów Wejście · Zapis do cache **$0.00025** / 1K tokenów Wejście · Zapis do cache, 1 godz. **—** / 1K tokenów |
| KonfiguracjaPróg długości żądania 3 | Tabela stawek— | Tokeny kontekstu, więcej niż256 000 | Tokeny kontekstu, do podanej wartości włącznieBez górnej granicy | Opłata Wejście · Tokeny wejściowe **$0.0004** / 1K tokenów Wyjście · Tokeny wyjściowe **$0.0016** / 1K tokenów Wejście · Odczyt cache **$0.00008** / 1K tokenów Wejście · Zapis do cache **$0.0005** / 1K tokenów Wejście · Zapis do cache, 1 godz. **—** / 1K tokenów |

Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. [Jak działają rezerwacja i rozliczenie →](https://ailoot.ai/docs/pl/billing/reserve/)

### Przykładowe żądania

#### Ailoot Ultra · OpenAI Chat

curlPython SDKStrumień w Pythonie

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

### Odbieranie i zapisywanie wyników

#### Ailoot Ultra · OpenAI Chat

json lub SSE

##### Zachowaj wszystkie ukończone wyniki

Zachowaj każdą kompletną zwróconą odpowiedź, plik i część treści.

Zachowaj każdy wariant i jego treść/wywołania narzędzi/rozumowanie. W SSE składaj przyrosty według indeksu wariantu/narzędzia, zachowując końcowy powód zakończenia i dane użycia.

##### Jeśli trzeba sprawdzić pierwotną odpowiedź

Zachowaj ID i nagłówki żądań/odpowiedzi. Nie udostępniono ogólnego URL pobierania zadania tekstowego.

Pola odpowiedzi

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

Błędy i dalsze kroki

| Odpowiedź | Warunek | Następny krok |
| --- | --- | --- |
| Odpowiedź400 · `invalid_request_error` | WarunekNieprawidłowe wymagane pola, sposób reprezentacji materiału lub wartość parametru | Następny krokPopraw wskazane pola przed nowym żądaniem utworzenia. |

### Aliasy

#### Aliasy modelu

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

#### Aliasy ścieżek metod

Użyj ścieżek metod podanych powyżej.

#### Powiązane ID modeli

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

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

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

Alibaba /`qwen/qwen3.7-flash`

### Start

Qwen3.7 Flash to rodzina modeli wizualno-językowych Qwen do tekstu, obrazów i wideo, zwracających tekst. Producent podkreśla lepsze rozpoznawanie obiektów, rozumienie przestrzeni, multimodalną pracę agentową i programowanie na podstawie obrazu, z domyślnie włączonym rozumowaniem i opcjonalnym trybem odpowiedzi bezpośredniej.

Akceptowane dane wejściowe

Tekst

Wyniki

json · sse

### Dostępne w Ailoot · dane wejściowe i metody

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

Wejście

`text`

Wyjście

`json`, `sse`

Format wyjściowy

JSON lub SSE

| Pole | Typ | Wymaganie | Wartości i limity | Domyślnie |
| --- | --- | --- | --- | --- |
| Pole`model` | Typ`string` | WymaganieWymagane | Wartości i limity qwen/qwen3.7-flash | Domyślnie— |
| Pole`messages` | Typ`message[]` | WymaganieWymagane | Wartości i limity | Domyślnie— |
| Pole`messages[].role` | Typ`string` | WymaganieWymagane | Wartości i limity user, assistant | Domyślnie— |
| Pole`messages[].content` | Typ`string` | WymaganieWymagane | Wartości i limity | Domyślnie— |
| Pole`max_tokens` | Typ`integer` | WymaganieWymagane | Wartości i limity | Domyślnie— |
| Pole`stream` | Typ`boolean` | WymaganieOpcjonalne | Wartości i limity | Domyślniefalse |

Kombinacje materiałów wejściowych

**Tekst** · tekst UTF-8

`ciąg messages[].content`

Parametry i cykl życia metody

| Parametr | Kontrakt |
| --- | --- |
| Parametr`content_type` | Kontraktapplication/json |
| Parametr`required` | Kontraktmodel, messages, max\_tokens |
| Parametr`optional_controls` | Kontraktstream |
| Parametr`material_types` | Kontrakttext |
| Parametr`text_file_material` | KontraktOdczytaj rzeczywisty dokument UTF-8 i umieść jego tekst we wskazanym polu input lub w ciągu treści wiadomości. |

Cykl życia: `synchronous_or_streamed`

### Cennik

Informacje taryfowe nie dodają opcji żądania. Obsługiwane parametry podano przy wybranej metodzie.

Tryb szybki

Stawka standardowa Gdy wybrany jest tryb szybki

Tryb flex

Stawka standardowa Gdy wybrany jest tryb flex

Maksymalna intensywność rozumowania

Stawka standardowa Gdy dla maksymalnej intensywności rozumowania stosowana jest domyślna korekta (default)

#### Stawki Ailoot

#### Ceny według konfiguracji

Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.

| Konfiguracja | Tabela stawek | Tokeny kontekstu, więcej niż | Tokeny kontekstu, do podanej wartości włącznie | Opłata |
| --- | --- | --- | --- | --- |
| KonfiguracjaPodstawowe stawki za tokeny | Tabela stawekStawka podstawowa | Tokeny kontekstu, więcej niż— | Tokeny kontekstu, do podanej wartości włącznieBez górnej granicy | Opłata Wejście · Tokeny wejściowe **$0.00006** / 1K tokenów Wyjście · Tokeny wyjściowe **$0.00026** / 1K tokenów Wejście · Odczyt cache **$0.000012** / 1K tokenów Wejście · Zapis do cache **$0.000076** / 1K tokenów Wejście · Zapis do cache, 1 godz. **—** / 1K tokenów |
| KonfiguracjaPrzedział długości żądania 1 | Tabela stawek— | Tokeny kontekstu, więcej niż0 | Tokeny kontekstu, do podanej wartości włącznie32 000 | Opłata Wejście · Tokeny wejściowe **$0.00006** / 1K tokenów Wyjście · Tokeny wyjściowe **$0.00026** / 1K tokenów Wejście · Odczyt cache **$0.000012** / 1K tokenów Wejście · Zapis do cache **$0.000076** / 1K tokenów Wejście · Zapis do cache, 1 godz. **—** / 1K tokenów |
| KonfiguracjaPrzedział długości żądania 2 | Tabela stawek— | Tokeny kontekstu, więcej niż32 000 | Tokeny kontekstu, do podanej wartości włącznie256 000 | Opłata Wejście · Tokeny wejściowe **$0.0002** / 1K tokenów Wyjście · Tokeny wyjściowe **$0.0008** / 1K tokenów Wejście · Odczyt cache **$0.00004** / 1K tokenów Wejście · Zapis do cache **$0.00025** / 1K tokenów Wejście · Zapis do cache, 1 godz. **—** / 1K tokenów |
| KonfiguracjaPróg długości żądania 3 | Tabela stawek— | Tokeny kontekstu, więcej niż256 000 | Tokeny kontekstu, do podanej wartości włącznieBez górnej granicy | Opłata Wejście · Tokeny wejściowe **$0.0004** / 1K tokenów Wyjście · Tokeny wyjściowe **$0.0016** / 1K tokenów Wejście · Odczyt cache **$0.00008** / 1K tokenów Wejście · Zapis do cache **$0.0005** / 1K tokenów Wejście · Zapis do cache, 1 godz. **—** / 1K tokenów |

Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. [Jak działają rezerwacja i rozliczenie →](https://ailoot.ai/docs/pl/billing/reserve/)

### Przykładowe żądania

#### Ailoot Ultra · Anthropic Messages

Kompletna minimalna treść żądania JSONcurl · użyj swojego dokumentu UTF-8Python · zapisz kompletny wynik

```json
{
  "model": "qwen/qwen3.7-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.7-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.7-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))
```

### Odbieranie i zapisywanie wyników

#### Ailoot Ultra · Anthropic Messages

JSON lub SSE

##### Zachowaj wszystkie ukończone wyniki

Zachowaj każdą kompletną zwróconą odpowiedź, plik i część treści.

Zachowaj wszystkie bloki treści, sygnatury myślenia i rzeczywiste ID użycia narzędzi. Złóż wszystkie przyrosty bloków SSE; pierwszy blok tekstowy nie jest pełnym wyjściem.

##### Jeśli trzeba sprawdzić pierwotną odpowiedź

Zachowaj ID i nagłówki żądań/odpowiedzi. Nie udostępniono ogólnego URL pobierania zadania tekstowego.

Pola odpowiedzi

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

Błędy i dalsze kroki

| Odpowiedź | Warunek | Następny krok |
| --- | --- | --- |
| Odpowiedź400 · `invalid_request_error` | WarunekNieprawidłowe wymagane pola, sposób reprezentacji materiału lub wartość parametru | Następny krokPopraw wskazane pola przed nowym żądaniem utworzenia. |

### Aliasy

#### Aliasy modelu

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

#### Aliasy ścieżek metod

Użyj ścieżek metod podanych powyżej.

#### Powiązane ID modeli

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

FAQ · Qwen: Qwen3.7 Flash

Jakie dane wejściowe i wyniki są dostępne?

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

Jakich pól używa żądanie?

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

Jakie limity obowiązują?

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

Połącz Ailoot z Claude Code, OpenCode, Hermes albo własną aplikacją.

## Firma i jej portfel projektów

Firma i jej portfel projektów: miliony klientów; miesięczna sprzedaż liczona w miliardach.

## Kupuj tokeny z rabatem.

Rabat subskrypcji do regularnej pracy. Kody promocyjne — do 50% na tokeny.

Subskrypcja

Wybierz plan z rabatem do regularnych żądań.

Kod promocyjny do 50%

Wpisz kod przy zakupie. Cena zostanie przeliczona według aktualnej promocji.

Koszty w historii

Model, tokeny i kwota są zapisywane dla każdego żądania.

[Wybierz subskrypcję](https://ailoot.ai/docs/pl/billing/subscriptions/) · [Sprawdź ceny modeli](https://ailoot.ai/models/pl/)

## Połącz API z produktem, który sprzedajesz.

SaaS, aplikacje i boty na warunkach oferty i umowy licencyjnej Ailoot. Do odsprzedaży poproś o licencję resellerską.

Aplikacja komercyjna

Wbuduj generowanie tekstu, obrazów, wideo i dźwięku w płatne funkcje usługi.

Licencja resellerska

Prześlij opis projektu i schemat dostępu. Poproś o pisemne warunki używania i odsprzedaży.

Dokumenty na stronie

Oferta, umowa licencyjna i polityka przetwarzania danych są dostępne przed połączeniem.

[Poproś o licencję resellerską](mailto:support@ailoot.ai) · [Oferta i umowa licencyjna](https://ailoot.ai/legal/offer?lang=pl)

## Ailoot · Firma i jej portfel projektów





Ailoot opiera się na zgromadzonym doświadczeniu operacyjnym, szerokiej bazie klientów, stabilnej usłudze i stałej kontroli KPI.





Firma i jej portfel projektów: miliony klientów; miesięczna sprzedaż liczona w miliardach.





Ailoot wykorzystuje to doświadczenie operacyjne, zapewniając dostęp przez API do funkcji AI w produktach klientów, agentach, aplikacjach i automatyzacjach.
