modele

Qwen: Qwen3 Coder Flash

Markdown · JSON

Qwen: Qwen3 Coder Flash

Qwen3-Coder-Flash to tekstowy model programistyczny Qwen do rozumienia repozytoriów i wieloturowej interakcji z narzędziami. Specyfikacja podaje milion tokenów kontekstu, maksimum 997 952 tokenów wejścia i 65 536 tokenów wyjścia, z funkcjami narzędzi ograniczonymi do profilu wdrożenia producenta.

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.

Przegląd: programowanie zorientowane na repozytorium

Qwen3-Coder-Flash to model generowania kodu oparty na Qwen3. Producent podaje, że dziedziczy możliwości agenta programistycznego z Qwen3-Coder-Plus i jest zoptymalizowany do rozumienia na poziomie repozytorium, stabilnych wywołań narzędzi i interakcji przez kilka tur. Jego udokumentowane wejście i wyjście są tekstem. Używaj go do zadania programistycznego z dostarczonym kontekstem projektu i konkretnym rezultatem, takim jak proponowana poprawka, funkcja lub wyjaśnienie.

Producent obecnie opisuje qwen3-coder-flash jako funkcjonalnie równoważny qwen3-coder-flash-2025-07-28 i zachowuje tę datowaną wersję jako nazwaną edycję. Zachowaj żądaną tożsamość przy zapisywaniu wyboru modelu. Dokładna strona modelu nie ustala liczby parametrów ani tożsamości wag otwartego checkpointu Coder, więc nazwy Flash nie należy zamieniać w nieudowodnione twierdzenie o rozmiarze lub architekturze.

Przygotowanie dowodów z repozytorium

Podaj odpowiednie moduły, interfejsy, wymagania i wejście pokazujące omawiane zachowanie. Poproś o propozycję implementacji uporządkowaną według objętych zmianą komponentów, a następnie o edytowalny rezultat oddzielnie od komentarza. Do analizy błędu dołącz zaobserwowany błąd lub wyjście i oczekiwane zachowanie. Dla funkcjonalności opisz interakcje i warunki, które wynik musi spełnić.

Przydatna odpowiedź może przedstawiać diagnozę, proponowaną zmianę i sprawdzenia potrzebne do przeglądu. Jeśli zadanie dotyczy dużego projektu, zachowaj identyfikatory plików i funkcji w dostarczonym materiale, aby wyjaśnienie mogło wskazywać swoje dowody. Sprawdź proponowane zmiany względem dostarczonych plików, oczekiwanego zachowania i wyników zwróconych przez podłączone sprawdzenia.

Narzędzia i informacje zwrotne w wielu turach

Producent podkreśla interakcję z narzędziami przez kilka tur. Podłączony przepływ może dostarczać narzędzia inspekcji lub wykonania i zwracać modelowi rzeczywiste obserwacje. Określ dozwolone działania i obserwowalne kryteria zakończenia. Gdy sprawdzenie zawiedzie, podaj rzeczywisty błąd i istotny kod zamiast jedynie prosić o ponowienie. Model może poprawiać proponowaną pracę na podstawie tych informacji zwrotnych; działania wykonuje aplikacja.

Macierz możliwości obsługuje Function Calling w profilu Alibaba dla Chin (Pekin) i oznacza tę funkcję jako nieobsługiwaną w Singapurze, Niemczech (Frankfurt) i USA (Wirginia). Dostępność narzędzi jest więc warunkowa, a nie obiecywana przez samą nazwę modelu. Propozycja tekstowa, żądanie narzędzia i zakończona operacja powinny pozostawać rozróżnialne w końcowym raporcie. Zwróć końcowy raport, który oddziela propozycję kodu, żądane wywołania narzędzi i rzeczywiste wyniki narzędzi.

Możliwości i formatowanie wyników

Wymuszane wyjścia strukturalne i wbudowane wyszukiwanie w sieci są oznaczone jako nieobsługiwane na dedykowanej stronie modelu. Prompt może wymagać tabeli lub tekstu w postaci JSON, ale nie tworzy to kontraktu wymuszania schematu. Agent programistyczny może otrzymywać aktualne dowody z narzędzia dostarczonego przez aplikację, mimo że sam model nie ma wbudowanego wyszukiwania.

Prefix Completion nie jest obsługiwane w Chinach (Pekin), a jest obsługiwane w Singapurze, Niemczech (Frankfurt) i USA (Wirginia). Context Caching jest obsługiwane dla niedatowanego aliasu we wszystkich czterech profilach, podczas gdy osobno wymieniona wersja z 28 lipca oznacza je jako nieobsługiwane. Obie edycje oznaczają inferencję wsadową i dostrajanie jako nieobsługiwane. Poproś o końcowy rezultat łatwy do sprawdzenia i zachowaj rzeczywiste obserwacje narzędzi, gdy raport twierdzi, że coś sprawdzono.

Limity kontekstu i wyjścia

Specyfikacja podaje okno kontekstu 1 000 000 tokenów, maksymalną długość wejścia 997 952 tokeny i maksymalną długość wyjścia 65 536 tokenów. Są to osobne limity; nie należy zakładać, że największe wejście i największe wyjście zmieszczą się jednocześnie w kontekście. Tekst projektu, historia, wyniki narzędzi i wygenerowane źródło potrzebują miejsca w rzeczywistym budżecie żądania.

Duży kontekst może umieścić więcej dowodów z repozytorium w jednym zadaniu. Nadal warto usuwać niepowiązane wygenerowane pliki, powtarzający się materiał i nieistotne moduły, zachowując definicje i interfejsy, od których zależy zmiana. W przypadku długiego rezultatu wyraźnie poproś o wymagane pliki lub funkcje i zarezerwuj na nie wystarczająco dużo przestrzeni odpowiedzi. Oddzielaj pliki kodu od wyjaśnień, aby recenzenci mogli sprawdzić proponowane zmiany.

Praktyczny wynik i istotne ograniczenia

Przy zmianie repozytorium poproś o poprawkę z objętymi zmianą plikami, założeniami i rzeczywistymi wynikami zwróconymi przez podłączone sprawdzenia. W przypadku algorytmu określ ograniczenia wejścia i oczekiwane wyjście przed prośbą o kod. Udokumentowanym wejściem jest tekst, więc odniesienie wizualne lub nagranie wymaga odpowiedniej osobnej reprezentacji, jeśli zadanie ma używać go jako dowodu.

Sprawdź wygenerowaną składnię, interfejsy i przypadki brzegowe w przepływie programistycznym. Wiarygodne wyjaśnienie lub opis modelu zorientowanego na narzędzia nie jest dowodem, że kod uruchomił się pomyślnie. Praktycznym wynikiem jest rezultat tekstowy lub kod nadający się do przeglądu i powiązany z dostarczonym materiałem repozytorium, z zachowaniem dokładnej tożsamości Flash, limitów producenta i warunkowego kontraktu narzędzi.

Zadanie praktyczne

Zadanie praktyczne

Przykład techniczny po angielsku

Keep repository paths portable

In config.py, DATA_PATH = 'data/items.csv'. In runner.py, open(DATA_PATH) fails when the CLI is launched outside the repository directory. Propose a focused fix that anchors the resource path to the module location rather than the current working directory. Preserve the public CLI arguments and include a regression scenario launched from another directory.

Oczekiwany wynik

A small coordinated code proposal for the named modules and a regression scenario for an unrelated working directory.

Sprawdź wynik

The proposed path does not depend on the launch directory and does not change the public CLI arguments.
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions qwen/qwen3-coder-flash

qwen/qwen3-coder-flash

Alibaba /qwen/qwen3-coder-flash
ID modelu
  • qwen/qwen3-coder-flash
  • qwen3-coder-flash

Start

Qwen3-Coder-Flash to tekstowy model programistyczny Qwen do rozumienia repozytoriów i wieloturowej interakcji z narzędziami. Specyfikacja podaje milion tokenów kontekstu, maksimum 997 952 tokenów wejścia i 65 536 tokenów wyjścia, z funkcjami narzędzi ograniczonymi do profilu wdrożenia producenta.

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
PoleTypWymaganieWartości i limityDomyślnie
PolemodelTypstringWymaganieWymaganeWartości i limity
qwen/qwen3-coder-flash
Domyślnie—
PolemessagesTypmessage[]WymaganieWymaganeWartości i limity
Minimalna liczba elementów: 1
Domyślnie—
Polemessages[].roleTypstringWymaganieWymaganeWartoś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—
Polemessages[].contentTypstring|content_part[]|nullWymaganieOpcjonalneWartości i limityDomyślnie—
Polemessages[].tool_callsTyptool_call[]WymaganieOpcjonalneWartości i limityDomyślnie—
Polemessages[].tool_call_idTypstringWymaganieOpcjonalneWartości i limity
Obowiązuje, gdy: role=tool; użyj rzeczywiście zwróconego ID
Domyślnie—
Polemessages[].nameTypstringWymaganieOpcjonalneWartości i limityDomyślnie—
Polemessages[].reasoning_contentTypstringWymaganieOpcjonalneWartości i limity
Obowiązuje, gdy: Przekazuj z powrotem rzeczywiście zwróconą treść rozumowania, gdy ten model jej używa
Domyślnie—
Polemessages[].reasoning_detailsTypobject|arrayWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Polemax_tokensTypintegerWymaganieOpcjonalneWartości i limity
Minimum: 1
Zależy od modelu
Domyślnie—
Polemax_completion_tokensTypintegerWymaganieOpcjonalneWartości i limity
Minimum: 1
Zależy od modelu
Domyślnie—
PolestreamTypbooleanWymaganieOpcjonalneWartości i limityDomyślniefalse
Polestream_options.include_usageTypbooleanWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PoletemperatureTypnumberWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poletop_pTypnumberWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PolestopTypstring|string[]WymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PoletoolsTypfunction_tool[]WymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poletools[].typeTypstringWymaganieOpcjonalneWartości i limity
function
Zależy od modelu
Domyślnie—
Poletools[].function.nameTypstringWymaganieWymaganeWartości i limity
Obowiązuje, gdy: udostępnione narzędzie funkcji
Domyślnie—
Poletools[].function.descriptionTypstringWymaganieOpcjonalneWartości i limityDomyślnie—
Poletools[].function.parametersTypJSON_schemaWymaganieOpcjonalneWartości i limityDomyślnie—
Poletool_choiceTypstring|objectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poleparallel_tool_callsTypbooleanWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poleresponse_formatTypobjectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Polereasoning_effortTypstringWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PolereasoningTypobjectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poleservice_tierTypstringWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PoleinstructionsTypstringWymaganieOpcjonalneWartości i limity
Pole zgodności
Domyślnie—
PolefunctionsTypfunction[]WymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Polefunction_callTypstring|objectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poleprompt_cache_optionsTypobjectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PolemodalitiesTypstring[]WymaganieOpcjonalneWartości i limity
text
Domyślnie—
PoleproviderTypobjectWymaganieOpcjonalneWartości i limity
Warunki: provider.options jest odrzucane na tej tekstowej trasie Ultra
Domyślnie—
Polecache_control.ttlTypstringWymaganieOpcjonalneWartoś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
ParametrKontrakt
Parametrcontent_typeKontraktapplication/json
ParametrrequiredKontraktmodel, messages
Parametrmaterial_typesKontrakttext
ParametrmessagesKontrakttablica wiadomości o strukturze role/content
Parametrfile_materialKontraktrzeczywisty dokument UTF-8 wstawiony jako dosłowny tekst; bez wywnioskowanego ID pliku
Parametroptional_controlsKontraktstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice
Parametrcontrol_scopeKontraktwłaściwe dla modelu; narzędzia funkcji użytkownika różnią się od narzędzi hostowanych
Parametroutput_modalitiesKontrakttext
Parametrhosted_operationsKontraktfalse
Parametrmultimodal_input_bindingKontraktnull

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.

KonfiguracjaTabela stawekTokeny kontekstu, więcej niżTokeny kontekstu, do podanej wartości włącznieOpłata
KonfiguracjaPodstawowe stawki za tokenyTabela stawekStawka podstawowaTokeny kontekstu, więcej niż—Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.00039 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.00195 / 1K tokenów
Wejście · Odczyt cache $0.000078 / 1K tokenów
Wejście · Zapis do cache $0.0004875 / 1K tokenów
Wejście · Zapis do cache, 1 godz. — / 1K tokenów
KonfiguracjaPrzedział długości żądania 1Tabela stawek—Tokeny kontekstu, więcej niż0Tokeny kontekstu, do podanej wartości włącznie32 000Opłata
Wejście · Tokeny wejściowe $0.00039 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.00195 / 1K tokenów
Wejście · Odczyt cache $0.000078 / 1K tokenów
Wejście · Zapis do cache $0.0004875 / 1K tokenów
Wejście · Zapis do cache, 1 godz. — / 1K tokenów
KonfiguracjaPrzedział długości żądania 2Tabela stawek—Tokeny kontekstu, więcej niż32 000Tokeny kontekstu, do podanej wartości włącznie128 000Opłata
Wejście · Tokeny wejściowe $0.00065 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.00325 / 1K tokenów
Wejście · Odczyt cache $0.00013 / 1K tokenów
Wejście · Zapis do cache $0.0008125 / 1K tokenów
Wejście · Zapis do cache, 1 godz. — / 1K tokenów
KonfiguracjaPróg długości żądania 3Tabela stawek—Tokeny kontekstu, więcej niż128 000Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.00104 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.0052 / 1K tokenów
Wejście · Odczyt cache $0.000208 / 1K tokenów
Wejście · Zapis do cache $0.0013 / 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 →

Przykładowe żądania

Ailoot Ultra · OpenAI Chat

curlPython SDKStrumień w Pythonie
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-coder-flash", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')

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

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

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

save_result(result.to_dict(mode="json"))
from openai import OpenAI
import os
from pathlib import Path

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

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

with client.chat.completions.stream(model='qwen/qwen3-coder-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
PoleTyp
Polechoices[].indexTypinteger
Polechoices[].message.contentTypstring|null
Polechoices[].message.tool_callsTyptool_call[]
Polechoices[].message.reasoning_contentTypstring
Polechoices[].message.reasoning_detailsTypobject|array
Polechoices[].finish_reasonTypstring|null
PoleusageTypobject
Błędy i dalsze kroki
OdpowiedźWarunekNastępny krok
Odpowiedź400 · invalid_request_errorWarunekNieprawidłowe wymagane pola, sposób reprezentacji materiału lub wartość parametruNastępny krokPopraw wskazane pola przed nowym żądaniem utworzenia.

Aliasy

Aliasy modelu

Ailoot Ultra qwen/qwen3-coder-flash, qwen3-coder-flash

Aliasy ścieżek metod

/chat/completions

Powiązane ID modeli

qwen/qwen3-coder-flash, qwen3-coder-flash

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

qwen/qwen3-coder-flash

Alibaba /qwen/qwen3-coder-flash
ID modelu
  • qwen/qwen3-coder-flash
  • qwen3-coder-flash

Start

Qwen3-Coder-Flash to tekstowy model programistyczny Qwen do rozumienia repozytoriów i wieloturowej interakcji z narzędziami. Specyfikacja podaje milion tokenów kontekstu, maksimum 997 952 tokenów wejścia i 65 536 tokenów wyjścia, z funkcjami narzędzi ograniczonymi do profilu wdrożenia producenta.

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
PoleTypWymaganieWartości i limityDomyślnie
PolemodelTypstringWymaganieWymaganeWartości i limity
qwen/qwen3-coder-flash
Domyślnie—
PolemessagesTypmessage[]WymaganieWymaganeWartości i limityDomyślnie—
Polemessages[].roleTypstringWymaganieWymaganeWartości i limity
user, assistant
Domyślnie—
Polemessages[].contentTypstringWymaganieWymaganeWartości i limityDomyślnie—
Polemax_tokensTypintegerWymaganieWymaganeWartości i limityDomyślnie—
PolestreamTypbooleanWymaganieOpcjonalneWartości i limityDomyślniefalse
Kombinacje materiałów wejściowych

Tekst · tekst UTF-8

ciąg messages[].content

Parametry i cykl życia metody
ParametrKontrakt
Parametrcontent_typeKontraktapplication/json
ParametrrequiredKontraktmodel, messages, max_tokens
Parametroptional_controlsKontraktstream
Parametrmaterial_typesKontrakttext
Parametrtext_file_materialKontraktOdczytaj 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.

KonfiguracjaTabela stawekTokeny kontekstu, więcej niżTokeny kontekstu, do podanej wartości włącznieOpłata
KonfiguracjaPodstawowe stawki za tokenyTabela stawekStawka podstawowaTokeny kontekstu, więcej niż—Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.00039 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.00195 / 1K tokenów
Wejście · Odczyt cache $0.000078 / 1K tokenów
Wejście · Zapis do cache $0.0004875 / 1K tokenów
Wejście · Zapis do cache, 1 godz. — / 1K tokenów
KonfiguracjaPrzedział długości żądania 1Tabela stawek—Tokeny kontekstu, więcej niż0Tokeny kontekstu, do podanej wartości włącznie32 000Opłata
Wejście · Tokeny wejściowe $0.00039 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.00195 / 1K tokenów
Wejście · Odczyt cache $0.000078 / 1K tokenów
Wejście · Zapis do cache $0.0004875 / 1K tokenów
Wejście · Zapis do cache, 1 godz. — / 1K tokenów
KonfiguracjaPrzedział długości żądania 2Tabela stawek—Tokeny kontekstu, więcej niż32 000Tokeny kontekstu, do podanej wartości włącznie128 000Opłata
Wejście · Tokeny wejściowe $0.00065 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.00325 / 1K tokenów
Wejście · Odczyt cache $0.00013 / 1K tokenów
Wejście · Zapis do cache $0.0008125 / 1K tokenów
Wejście · Zapis do cache, 1 godz. — / 1K tokenów
KonfiguracjaPróg długości żądania 3Tabela stawek—Tokeny kontekstu, więcej niż128 000Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.00104 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.0052 / 1K tokenów
Wejście · Odczyt cache $0.000208 / 1K tokenów
Wejście · Zapis do cache $0.0013 / 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 →

Przykładowe żądania

Ailoot Ultra · Anthropic Messages

Kompletna minimalna treść żądania JSONcurl · użyj swojego dokumentu UTF-8Python · zapisz kompletny wynik
{
  "model": "qwen/qwen3-coder-flash",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

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

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

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'qwen/qwen3-coder-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
PoleTyp
PoleidTypstring
PolemodelTypstring
Polecontent[]Typtext|thinking|tool_use|other content block
Polestop_reasonTypstring|null
PoleusageTypobject
Błędy i dalsze kroki
OdpowiedźWarunekNastępny krok
Odpowiedź400 · invalid_request_errorWarunekNieprawidłowe wymagane pola, sposób reprezentacji materiału lub wartość parametruNastępny krokPopraw wskazane pola przed nowym żądaniem utworzenia.

Aliasy

Aliasy modelu

Ailoot Ultra qwen/qwen3-coder-flash, qwen3-coder-flash

Aliasy ścieżek metod

/chat/completions

Powiązane ID modeli

qwen/qwen3-coder-flash, qwen3-coder-flash

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

qwen3-coder-flash

Alibaba /qwen3-coder-flash
ID modelu
  • qwen/qwen3-coder-flash
  • qwen3-coder-flash

Start

Qwen3-Coder-Flash to tekstowy model programistyczny Qwen do rozumienia repozytoriów i wieloturowej interakcji z narzędziami. Specyfikacja podaje milion tokenów kontekstu, maksimum 997 952 tokenów wejścia i 65 536 tokenów wyjścia, z funkcjami narzędzi ograniczonymi do profilu wdrożenia producenta.

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
PoleTypWymaganieWartości i limityDomyślnie
PolemodelTypstringWymaganieWymaganeWartości i limity
qwen3-coder-flash
Domyślnie—
PolemessagesTypmessage[]WymaganieWymaganeWartości i limity
Minimalna liczba elementów: 1
Domyślnie—
Polemessages[].roleTypstringWymaganieWymaganeWartości i limity
Zależy od modelu
Domyślnie—
Polemessages[].contentTypstringWymaganieOpcjonalneWartości i limity
Obowiązuje, gdy: Rozmowa tekstowa
Domyślnie—
PolestreamTypbooleanWymaganieOpcjonalneWartości i limityDomyślniefalse
Kombinacje materiałów wejściowych

Tekst · tekst UTF8

messages[].content

Parametry i cykl życia metody
ParametrKontrakt
Parametrcontent_typeKontraktapplication/json
ParametrrequiredKontraktmodel, messages
Parametrmaterial_typesKontrakttext
ParametrmessagesKontrakttablica wiadomości o strukturze role/content
Parametrfile_materialKontraktrzeczywisty dokument UTF-8 wstawiony jako dosłowny tekst; bez wywnioskowanego ID pliku
Parametroptional_controlsKontraktstream
Parametrcontrol_scopeKontraktRozmowa tekstowa; stream jest wartością logiczną i domyślnie wynosi false.
Parametroutput_modalitiesKontrakttext
Parametrhosted_operationsKontraktfalse
Parametrmultimodal_input_bindingKontraktnull

Aliasy metody: /chat/completions

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.

KonfiguracjaTabela stawekTokeny kontekstu, więcej niżTokeny kontekstu, do podanej wartości włącznieOpłata
KonfiguracjaPodstawowe stawki za tokenyTabela stawekStawka podstawowaTokeny kontekstu, więcej niż—Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.00039 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.00195 / 1K tokenów
Wejście · Odczyt cache $0.000078 / 1K tokenów
Wejście · Zapis do cache $0.0004875 / 1K tokenów
Wejście · Zapis do cache, 1 godz. — / 1K tokenów
KonfiguracjaPrzedział długości żądania 1Tabela stawek—Tokeny kontekstu, więcej niż0Tokeny kontekstu, do podanej wartości włącznie32 000Opłata
Wejście · Tokeny wejściowe $0.00039 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.00195 / 1K tokenów
Wejście · Odczyt cache $0.000078 / 1K tokenów
Wejście · Zapis do cache $0.0004875 / 1K tokenów
Wejście · Zapis do cache, 1 godz. — / 1K tokenów
KonfiguracjaPrzedział długości żądania 2Tabela stawek—Tokeny kontekstu, więcej niż32 000Tokeny kontekstu, do podanej wartości włącznie128 000Opłata
Wejście · Tokeny wejściowe $0.00065 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.00325 / 1K tokenów
Wejście · Odczyt cache $0.00013 / 1K tokenów
Wejście · Zapis do cache $0.0008125 / 1K tokenów
Wejście · Zapis do cache, 1 godz. — / 1K tokenów
KonfiguracjaPróg długości żądania 3Tabela stawek—Tokeny kontekstu, więcej niż128 000Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.00104 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.0052 / 1K tokenów
Wejście · Odczyt cache $0.000208 / 1K tokenów
Wejście · Zapis do cache $0.0013 / 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 →

Przykładowe żądania

Ailoot Ultra · OpenAI Chat

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

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

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model="qwen3-coder-flash", messages=[{"role":"user","content":"hello"}], stream=False)
import base64, json
from pathlib import Path

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

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

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
PoleTyp
Polechoices[].indexTypinteger
Polechoices[].message.contentTypstring|null
Polechoices[].message.tool_callsTyptool_call[]
Polechoices[].message.reasoning_contentTypstring
Polechoices[].message.reasoning_detailsTypobject|array
Polechoices[].finish_reasonTypstring|null
PoleusageTypobject
Błędy i dalsze kroki
OdpowiedźWarunekNastępny krok
Odpowiedź400 · invalid_request_errorWarunekNieprawidłowe wymagane pola, sposób reprezentacji materiału lub wartość parametruNastępny krokPopraw wskazane pola przed nowym żądaniem utworzenia.

Aliasy

Aliasy modelu

Ailoot Ultra qwen/qwen3-coder-flash, qwen3-coder-flash

Aliasy ścieżek metod

/chat/completions

Powiązane ID modeli

qwen/qwen3-coder-flash, qwen3-coder-flash

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

qwen3-coder-flash

Alibaba /qwen3-coder-flash
ID modelu
  • qwen/qwen3-coder-flash
  • qwen3-coder-flash

Start

Qwen3-Coder-Flash to tekstowy model programistyczny Qwen do rozumienia repozytoriów i wieloturowej interakcji z narzędziami. Specyfikacja podaje milion tokenów kontekstu, maksimum 997 952 tokenów wejścia i 65 536 tokenów wyjścia, z funkcjami narzędzi ograniczonymi do profilu wdrożenia producenta.

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
PoleTypWymaganieWartości i limityDomyślnie
PolemodelTypstringWymaganieWymaganeWartości i limity
qwen3-coder-flash
Domyślnie—
PolemessagesTypmessage[]WymaganieWymaganeWartości i limityDomyślnie—
Polemessages[].roleTypstringWymaganieWymaganeWartości i limity
user, assistant
Domyślnie—
Polemessages[].contentTypstringWymaganieWymaganeWartości i limityDomyślnie—
Polemax_tokensTypintegerWymaganieWymaganeWartości i limityDomyślnie—
PolestreamTypbooleanWymaganieOpcjonalneWartości i limityDomyślniefalse
Kombinacje materiałów wejściowych

Tekst · tekst UTF-8

ciąg messages[].content

Parametry i cykl życia metody
ParametrKontrakt
Parametrcontent_typeKontraktapplication/json
ParametrrequiredKontraktmodel, messages, max_tokens
Parametroptional_controlsKontraktstream
Parametrmaterial_typesKontrakttext
Parametrtext_file_materialKontraktOdczytaj 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.

KonfiguracjaTabela stawekTokeny kontekstu, więcej niżTokeny kontekstu, do podanej wartości włącznieOpłata
KonfiguracjaPodstawowe stawki za tokenyTabela stawekStawka podstawowaTokeny kontekstu, więcej niż—Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.00039 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.00195 / 1K tokenów
Wejście · Odczyt cache $0.000078 / 1K tokenów
Wejście · Zapis do cache $0.0004875 / 1K tokenów
Wejście · Zapis do cache, 1 godz. — / 1K tokenów
KonfiguracjaPrzedział długości żądania 1Tabela stawek—Tokeny kontekstu, więcej niż0Tokeny kontekstu, do podanej wartości włącznie32 000Opłata
Wejście · Tokeny wejściowe $0.00039 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.00195 / 1K tokenów
Wejście · Odczyt cache $0.000078 / 1K tokenów
Wejście · Zapis do cache $0.0004875 / 1K tokenów
Wejście · Zapis do cache, 1 godz. — / 1K tokenów
KonfiguracjaPrzedział długości żądania 2Tabela stawek—Tokeny kontekstu, więcej niż32 000Tokeny kontekstu, do podanej wartości włącznie128 000Opłata
Wejście · Tokeny wejściowe $0.00065 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.00325 / 1K tokenów
Wejście · Odczyt cache $0.00013 / 1K tokenów
Wejście · Zapis do cache $0.0008125 / 1K tokenów
Wejście · Zapis do cache, 1 godz. — / 1K tokenów
KonfiguracjaPróg długości żądania 3Tabela stawek—Tokeny kontekstu, więcej niż128 000Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.00104 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.0052 / 1K tokenów
Wejście · Odczyt cache $0.000208 / 1K tokenów
Wejście · Zapis do cache $0.0013 / 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 →

Przykładowe żądania

Ailoot Ultra · Anthropic Messages

Kompletna minimalna treść żądania JSONcurl · użyj swojego dokumentu UTF-8Python · zapisz kompletny wynik
{
  "model": "qwen3-coder-flash",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

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

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

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'qwen3-coder-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
PoleTyp
PoleidTypstring
PolemodelTypstring
Polecontent[]Typtext|thinking|tool_use|other content block
Polestop_reasonTypstring|null
PoleusageTypobject
Błędy i dalsze kroki
OdpowiedźWarunekNastępny krok
Odpowiedź400 · invalid_request_errorWarunekNieprawidłowe wymagane pola, sposób reprezentacji materiału lub wartość parametruNastępny krokPopraw wskazane pola przed nowym żądaniem utworzenia.

Aliasy

Aliasy modelu

Ailoot Ultra qwen/qwen3-coder-flash, qwen3-coder-flash

Aliasy ścieżek metod

/chat/completions

Powiązane ID modeli

qwen/qwen3-coder-flash, qwen3-coder-flash

FAQ · Qwen: Qwen3 Coder Flash
Jakie dane wejściowe i wyniki są dostępne?

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

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

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

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

Jakich pól używa żądanie?

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

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

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

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

Jakie limity obowiązują?

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

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

Więcej szczegółów

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ę · Sprawdź ceny modeli

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ą · Oferta i umowa licencyjna