Source: https://ailoot.ai/models/nb/qwen-qwen3-coder-30b-a3b-instruct/
Canonical: https://ailoot.ai/models/nb/qwen-qwen3-coder-30b-a3b-instruct/
Language: nb

# Qwen: Qwen3 Coder 30B A3B Instruct

[Markdown](https://ailoot.ai/models/nb/qwen-qwen3-coder-30b-a3b-instruct/index.md) · [JSON](https://ailoot.ai/models/nb/qwen-qwen3-coder-30b-a3b-instruct/facts.json)

## [Qwen: Qwen3 Coder 30B A3B Instruct](https://ailoot.ai/models/nb/qwen-qwen3-coder-30b-a3b-instruct/)

Qwen3-Coder-30B-A3B-Instruct er Qwens non-thinking-tekstmodell for programmering, med totalt 30,5 milliarder parametere og 3,3 milliarder aktiverte parametere. Den retter seg mot utvikling på kodebasenivå, programmering og arbeidsflyter med nettleseragenter, med en nativ kontekst på 262 144 tokener og et eget format for funksjonskall.

- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `qwen/qwen3-coder-30b-a3b-instruct`](https://ailoot.ai/models/nb/qwen-qwen3-coder-30b-a3b-instruct/#method-0)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `qwen/qwen3-coder-30b-a3b-instruct`](https://ailoot.ai/models/nb/qwen-qwen3-coder-30b-a3b-instruct/#method-1)

Om modellen

Denne beskrivelsen dekker modellens funksjoner. Tilgjengelige inndata, utdata og alternativer i Ailoot er oppført nedenfor for den valgte metoden.

Høydepunkter: programmering på kodebasenivå

Qwen3-Coder-30B-A3B-Instruct er en instruksjonsrettet tekstmodell for programmeringsagenter. Qwen dokumenterer programmering, bruk som nettleseragent og forståelse på kodebasenivå, med et eget format for funksjonskall og integrasjon gjennom arbeidsflyter som Qwen Code. Inndata og utdata er tekst. Behold dette nøyaktige Coder-sjekkpunktet fremfor å erstatte det med den generelle Qwen3-30B-A3B-Instruct-2507 eller Qwen3-Coder-Next, som har andre treningsprioriteringer og annen genereringsveiledning.

Den native konteksten er 262 144 tokener, og produsenten beskriver utvidelse til omtrent én million med YaRN. En stor kontekst kan samle mer dokumentasjon fra kodebasen, men en tydelig oppgave trenger fortsatt relevante moduler, grensesnitt og krav. Oppgi det forventede resultatet og den observerbare oppførselen før du ber om en kodeendring.

Modelloversikt

Denne mixture-of-experts-modellen har totalt 30,5 milliarder parametere og aktiverer 3,3 milliarder. Den har 48 lag, 128 eksperter og åtte eksperter som velges per token. Totale parametere og aktiverte parametere har forskjellige betydninger; antallet aktiverte parametere er ikke størrelsen på hele sjekkpunktet. Konfigurasjonen som kausal språkmodell er en tekstmodell, ikke et grensesnitt for syn eller tale.

Coder-30B-A3B-Instruct støtter bare non-thinking-modus og genererer ikke eksplisitte thinking-blokker. Innstillingen enable\_thinking=False er unødvendig i produsentens eksempel. Modellen kan fortsatt forklare en algoritme eller begrunne en kodeendring i vanlig tekst. En forespørsel om resonneringssteg må ikke forveksles med å aktivere den separate Thinking-oppførselen i en annen Qwen-utgave.

Forberede en utviklingsforespørsel

Legg ved den relevante koden, inndata som viser den nåværende oppførselen, det observerte resultatet og den ønskede endringen. For en algoritme bør du angi begrensningene for inndata og de nødvendige utdataene før du ber om en tilnærming. For en endring i en kodebase bør du identifisere funksjonaliteten som berøres, og grensesnittene implementeringen må bevare. Be om en redigerbar kodeendring eller en komplett funksjon separat fra forklarende kommentarer.

Et nyttig svar kan organisere diagnosen, den foreslåtte endringen og kontrollene som trengs for å gjennomgå den. Når en oppgave bygger på en visuell referanse eller registrert oppførsel, bør du gi en egnet tekstlig representasjon og bevare identifikatorer som gjør det mulig å sammenligne resultatet med originalen. Sammenlign den foreslåtte kodeendringen med den oppgitte koden, forventet oppførsel og resultater fra tilkoblede kontroller.

Programmering med agenter og nettleserarbeidsflyter

Produsenten fremhever verktøykall og et spesielt utformet format for funksjonskall. En tilkoblet agentarbeidsflyt leverer verktøybeskrivelser, inndataskjemaer og observasjoner og utfører de faktiske operasjonene. Definer tillatte handlinger og en fullføringsbetingelse, og returner deretter faktiske inspeksjons- eller kjøreresultater til modellen slik at den kan oppdatere arbeidsforslaget sitt.

Evnen til å brukes som nettleseragent betyr deltakelse i en arbeidsflyt med et tilkoblet nettleserverktøy, ikke automatisk tilgang til en brukers nettleser eller aktuelle sider. Det samme skillet gjelder inspeksjon av kodebasen og kjøring av kode. En foreslått kommando, en verktøyforespørsel og en fullført operasjon bør holdes atskilt i sluttrapporten. Behold modellens native verktøyformat og fremgangsmåte for tolking fremfor å anta at malen til en annen modell kan brukes om hverandre med denne.

Lang kontekst og konfigurasjon

Produsenten beskriver YaRN-utvidelse fra den native konteksten på 262 144 tokener til omtrent én million for oppgaver på kodebasenivå. Bruk en kontekstkonfigurasjon som passer til materialet fra kodebasen, samtidig som du setter av plass til verktøyobservasjoner og resultatet. Hurtigstarten foreslår også en mindre kontekst, som 32 768, når minnepress hindrer den større innstillingen i å fungere.

Behold kodebaner, funksjonsnavn og relevante definisjoner i lange inndata. Fjern irrelevante genererte filer eller gjentatt materiale, og sett av plass til svaret. Kildetekst, historikk, verktøyobservasjoner og generert kode deler den konfigurerte sekvenskapasiteten; størst mulige inndata må ikke behandles som perfekt hukommelse for hver avhengighet.

Genereringsveiledning

Best Practices anbefaler temperature 0,7, top\_p 0,8, top\_k 20 og en gjentakelsesstraff på 1,05. Den nøyaktige anbefalingen for gjentakelsesstraff skiller seg fra flere andre Qwen-modeller og inngår fortsatt i oppskriften for denne Coder-utgaven. Qwen anbefaler et genereringsbudsjett på 65 536 tokener for de fleste forespørsler. Dette er en anbefaling, ikke en uavhengig fastslått absolutt maksimumsgrense.

Oppgi utdataenes språk og form, som en kodeendring, en komplett funksjon eller en forklaring, og kontroller resultatets syntaks og grensesnitt i den faktiske utviklingsarbeidsflyten. Produsentens funksjonseksempel illustrerer verktøymekanismen; en verktøykontrakt trenger fortsatt innbyrdes konsekvente argumentnavn og betydninger for returverdier i applikasjonen som bruker den.

Vesentlige begrensninger og nyttig resultat

Dette sjekkpunktets dokumenterte inndata er tekst. Det fastslår ikke direkte forståelse av bilder, lyd eller video. Generert kode og en selvsikker forklaring er utkast inntil de relevante kontrollene eller observasjonene faktisk returneres fra det tilkoblede miljøet. Det nyttige resultatet er et implementeringsforslag som kan inspiseres, knyttet til de oppgitte betingelsene i kodebasen, med nøyaktig Coder-identitet, non-thinking-modus og produsentens genereringsveiledning bevart.

Praktisk oppgave

### Praktisk oppgave

Teknisk eksempel på engelsk

```
Implement interval overlap correctly

Implement overlaps(a, b) for two half-open intervals [start, end), using numeric endpoints. Intervals touching at an endpoint do not overlap. Reject intervals with start greater than end; empty intervals never overlap. Return a complete Python function and tests for genuine overlap, touching, empty and reversed intervals. Keep the interface limited to two pairs.
```

#### Forventet resultat

```
A complete Python function and four focused tests expressing the interval contract.
```

#### Kontroller resultatet

```
Check that [1, 3) and [3, 5) return false and an empty interval cannot overlap a containing interval.
```

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `qwen/qwen3-coder-30b-a3b-instruct`

[`qwen/qwen3-coder-30b-a3b-instruct`](https://ailoot.ai/models/nb/#m=qwen%2Fqwen3-coder-30b-a3b-instruct&route=Ultra&caller=qwen%2Fqwen3-coder-30b-a3b-instruct&fmt=chat)

Alibaba /`qwen/qwen3-coder-30b-a3b-instruct`

### Start

Qwen3-Coder-30B-A3B-Instruct er Qwens non-thinking-tekstmodell for programmering, med totalt 30,5 milliarder parametere og 3,3 milliarder aktiverte parametere. Den retter seg mot utvikling på kodebasenivå, programmering og arbeidsflyter med nettleseragenter, med en nativ kontekst på 262 144 tokener og et eget format for funksjonskall.

Godkjente inndata

Tekst

Resultater

Tekst

### Tilgjengelig i Ailoot · inndata & metoder

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

Inndatatyper

`text`

Utdatatyper

`text`

Utdataformat

json eller SSE

| Felt | Type | Krav | Verdier & grenser | Standard |
| --- | --- | --- | --- | --- |
| Felt`model` | Type`string` | KravPåkrevd | Verdier & grenser qwen/qwen3-coder-30b-a3b-instruct | Standard— |
| Felt`messages` | Type`message[]` | KravPåkrevd | Verdier & grenser Minste antall elementer: 1 | Standard— |
| Felt`messages[].role` | Type`string` | KravPåkrevd | Verdier & grenser Eksempler: system, user, assistant, tool, function Vilkår: Disse rollene representeres eksplisitt av kompatibilitetstyper i kildekoden; det eksakte rollesettet for modellen er fortsatt modellspesifikt. Avhenger av modellen | Standard— |
| Felt`messages[].content` | Type`string\|content_part[]\|null` | KravValgfritt | Verdier & grenser | Standard— |
| Felt`messages[].tool_calls` | Type`tool_call[]` | KravValgfritt | Verdier & grenser | Standard— |
| Felt`messages[].tool_call_id` | Type`string` | KravValgfritt | Verdier & grenser Gjelder når: role=tool; bruk faktisk returnert ID | Standard— |
| Felt`messages[].name` | Type`string` | KravValgfritt | Verdier & grenser | Standard— |
| Felt`messages[].reasoning_content` | Type`string` | KravValgfritt | Verdier & grenser Gjelder når: Send den faktisk returnerte resonneringen tilbake der denne modellen bruker den | Standard— |
| Felt`messages[].reasoning_details` | Type`object\|array` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`max_tokens` | Type`integer` | KravValgfritt | Verdier & grenser Minimum: 1 Avhenger av modellen | Standard— |
| Felt`max_completion_tokens` | Type`integer` | KravValgfritt | Verdier & grenser Minimum: 1 Avhenger av modellen | Standard— |
| Felt`stream` | Type`boolean` | KravValgfritt | Verdier & grenser | Standardfalse |
| Felt`stream_options.include_usage` | Type`boolean` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`temperature` | Type`number` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`top_p` | Type`number` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`stop` | Type`string\|string[]` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`tools` | Type`function_tool[]` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`tools[].type` | Type`string` | KravValgfritt | Verdier & grenser function Avhenger av modellen | Standard— |
| Felt`tools[].function.name` | Type`string` | KravPåkrevd | Verdier & grenser Gjelder når: funksjonsverktøy oppgitt | Standard— |
| Felt`tools[].function.description` | Type`string` | KravValgfritt | Verdier & grenser | Standard— |
| Felt`tools[].function.parameters` | Type`JSON_schema` | KravValgfritt | Verdier & grenser | Standard— |
| Felt`tool_choice` | Type`string\|object` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`parallel_tool_calls` | Type`boolean` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`response_format` | Type`object` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`reasoning_effort` | Type`string` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`reasoning` | Type`object` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`service_tier` | Type`string` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`instructions` | Type`string` | KravValgfritt | Verdier & grenser Kompatibilitetsfelt | Standard— |
| Felt`functions` | Type`function[]` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`function_call` | Type`string\|object` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`prompt_cache_options` | Type`object` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`modalities` | Type`string[]` | KravValgfritt | Verdier & grenser text | Standard— |
| Felt`provider` | Type`object` | KravValgfritt | Verdier & grenser Vilkår: provider.options avvises på denne Ultra-tekstruten | Standard— |
| Felt`cache_control.ttl` | Type`string` | KravValgfritt | Verdier & grenser Vilkår: 1h avvises på faktiske steder for mellomlagring av ledetekster | Standard— |

Kombinasjoner av inngående materialer

**Tekst** · UTF8-tekst

`messages[].content`

Metodeparametere og livssyklus

| Parameter | Avtale |
| --- | --- |
| Parameter`content_type` | Avtaleapplication/json |
| Parameter`required` | Avtalemodel, messages |
| Parameter`material_types` | Avtaletext |
| Parameter`messages` | Avtalemeldingstabell med role/content-struktur |
| Parameter`file_material` | Avtalefaktisk UTF-8-dokument satt inn som bokstavelig tekst; ingen fil-ID utledes |
| Parameter`optional_controls` | Avtalestream, temperature, top\_p, stop, max\_tokens, max\_completion\_tokens, reasoning, response\_format, tools, tool\_choice |
| Parameter`control_scope` | Avtalemodellspesifikt; brukerens funksjonsverktøy skiller seg fra driftede verktøy |
| Parameter`output_modalities` | Avtaletext |
| Parameter`hosted_operations` | Avtalefalse |
| Parameter`multimodal_input_binding` | Avtalenull |

Livssyklus: `synchronous_or_streamed`

Send eksakt modell-ID sammen med messages.

Kontekstlengde er ikke en outputgrense.

En tekstfil kan levere bokstavelig tekst; bilde-, lyd- og filobjektinput trenger eksakt binding.

### Priser

Tariffopplysninger legger ikke til forespørselsvalg. Støttede parametere står ved den valgte metoden.

Hurtigmodus

Standardpris Når hurtigmodus er valgt

Flex-modus

Standardpris Når flex-modus er valgt

Maksimal resonneringsinnsats

Standardpris Når justeringen «default» brukes for maksimal resonneringsinnsats

#### Ailoot-satser

#### Priser etter konfigurasjon

Knytt hver kostnad til de viste vilkårene. Bruk én sats for hvert sett med alternative konfigurasjoner.

| Konfigurasjon | Prisplan | Konteksttokener, mer enn | Konteksttokener, opptil og med | Kostnad |
| --- | --- | --- | --- | --- |
| KonfigurasjonGrunnpriser for tokener | PrisplanGrunnsats | Konteksttokener, mer enn— | Konteksttokener, opptil og medIngen øvre grense | Kostnad Inndata · Inngående tokener **$0.0002** / 1K tokener Utdata · Utgående tokener **$0.0008** / 1K tokener Inndata · Lesing fra hurtigbuffer **$0** / 1K tokener Inndata · Skriving til hurtigbuffer **$0** / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time **—** / 1K tokener |
| KonfigurasjonNivå 1 for forespørselslengde | Prisplan— | Konteksttokener, mer enn0 | Konteksttokener, opptil og medIngen øvre grense | Kostnad Inndata · Inngående tokener **$0.0002** / 1K tokener Utdata · Utgående tokener **$0.0008** / 1K tokener Inndata · Lesing fra hurtigbuffer **$0** / 1K tokener Inndata · Skriving til hurtigbuffer **$0** / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time **—** / 1K tokener |

Ailoot reserverer et estimert beløp før en forespørsel. Etter resultatet gjøres det endelige beløpet opp basert på målt forbruk. Oppgjør for strømming bruker den endelige forbruksposten. [Slik fungerer reservasjon og oppgjør →](https://ailoot.ai/docs/nb/billing/reserve/)

### Eksempelforespørsler

#### Ailoot Ultra · OpenAI Chat

curlPython SDKPython-strømming

```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-coder-30b-a3b-instruct", "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-coder-30b-a3b-instruct',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-coder-30b-a3b-instruct',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")
```

### Motta og lagre resultater

#### Ailoot Ultra · OpenAI Chat

json eller SSE

##### Behold alle ferdige resultater

Behold alle fullstendige returnerte svar, filer og innholdsdeler.

Behold hvert svaralternativ med innhold, verktøykall og resonnering. Sett sammen endringer i SSE etter svaralternativets/verktøyets indeks, og behold endelig avslutningsgrunn og bruksdata.

##### Hvis det opprinnelige svaret må kontrolleres

Behold forespørsels-/svar-ID-er og headere. Ingen generell URL for henting av tekstjobber oppgis.

Svarfelter

| Felt | Type |
| --- | --- |
| Felt`choices[].index` | Typeinteger |
| Felt`choices[].message.content` | Typestring\|null |
| Felt`choices[].message.tool_calls` | Typetool\_call\[\] |
| Felt`choices[].message.reasoning_content` | Typestring |
| Felt`choices[].message.reasoning_details` | Typeobject\|array |
| Felt`choices[].finish_reason` | Typestring\|null |
| Felt`usage` | Typeobject |

Feil og neste trinn

| Svar | Vilkår | Neste trinn |
| --- | --- | --- |
| Svar400 · `invalid_request_error` | VilkårUgyldige påkrevde felter, materialrepresentasjon eller parameterverdi | Neste trinnKorriger de angitte feltene før en ny opprettelsesforespørsel. |

### Aliaser

#### Modellaliaser

**Ailoot Ultra** [`qwen/qwen3-coder-30b-a3b-instruct`](https://ailoot.ai/models/nb/#m=qwen%2Fqwen3-coder-30b-a3b-instruct&route=Ultra&caller=qwen%2Fqwen3-coder-30b-a3b-instruct&fmt=chat)

#### Aliaser for metodestier

Bruk metodestiene som vises ovenfor.

#### Tilknyttede anroper-ID-er

[`qwen/qwen3-coder-30b-a3b-instruct`](https://ailoot.ai/models/nb/#m=qwen%2Fqwen3-coder-30b-a3b-instruct&route=Ultra&caller=qwen%2Fqwen3-coder-30b-a3b-instruct&fmt=chat)

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `qwen/qwen3-coder-30b-a3b-instruct`

[`qwen/qwen3-coder-30b-a3b-instruct`](https://ailoot.ai/models/nb/#m=qwen%2Fqwen3-coder-30b-a3b-instruct&route=Ultra&caller=qwen%2Fqwen3-coder-30b-a3b-instruct&fmt=messages)

Alibaba /`qwen/qwen3-coder-30b-a3b-instruct`

### Start

Qwen3-Coder-30B-A3B-Instruct er Qwens non-thinking-tekstmodell for programmering, med totalt 30,5 milliarder parametere og 3,3 milliarder aktiverte parametere. Den retter seg mot utvikling på kodebasenivå, programmering og arbeidsflyter med nettleseragenter, med en nativ kontekst på 262 144 tokener og et eget format for funksjonskall.

Godkjente inndata

Tekst

Resultater

json · sse

### Tilgjengelig i Ailoot · inndata & metoder

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

Inndatatyper

`text`

Utdatatyper

`json`, `sse`

Utdataformat

JSON eller SSE

| Felt | Type | Krav | Verdier & grenser | Standard |
| --- | --- | --- | --- | --- |
| Felt`model` | Type`string` | KravPåkrevd | Verdier & grenser qwen/qwen3-coder-30b-a3b-instruct | Standard— |
| Felt`messages` | Type`message[]` | KravPåkrevd | Verdier & grenser | Standard— |
| Felt`messages[].role` | Type`string` | KravPåkrevd | Verdier & grenser user, assistant | Standard— |
| Felt`messages[].content` | Type`string` | KravPåkrevd | Verdier & grenser | Standard— |
| Felt`max_tokens` | Type`integer` | KravPåkrevd | Verdier & grenser | Standard— |
| Felt`stream` | Type`boolean` | KravValgfritt | Verdier & grenser | Standardfalse |

Kombinasjoner av inngående materialer

**Tekst** · UTF-8-tekst

`messages[].content-streng`

Metodeparametere og livssyklus

| Parameter | Avtale |
| --- | --- |
| Parameter`content_type` | Avtaleapplication/json |
| Parameter`required` | Avtalemodel, messages, max\_tokens |
| Parameter`optional_controls` | Avtalestream |
| Parameter`material_types` | Avtaletext |
| Parameter`text_file_material` | AvtaleLes det faktiske UTF-8-dokumentet og legg teksten i den angitte input- eller meldingsinnholdsstrengen. |

Livssyklus: `synchronous_or_streamed`

### Priser

Tariffopplysninger legger ikke til forespørselsvalg. Støttede parametere står ved den valgte metoden.

Hurtigmodus

Standardpris Når hurtigmodus er valgt

Flex-modus

Standardpris Når flex-modus er valgt

Maksimal resonneringsinnsats

Standardpris Når justeringen «default» brukes for maksimal resonneringsinnsats

#### Ailoot-satser

#### Priser etter konfigurasjon

Knytt hver kostnad til de viste vilkårene. Bruk én sats for hvert sett med alternative konfigurasjoner.

| Konfigurasjon | Prisplan | Konteksttokener, mer enn | Konteksttokener, opptil og med | Kostnad |
| --- | --- | --- | --- | --- |
| KonfigurasjonGrunnpriser for tokener | PrisplanGrunnsats | Konteksttokener, mer enn— | Konteksttokener, opptil og medIngen øvre grense | Kostnad Inndata · Inngående tokener **$0.0002** / 1K tokener Utdata · Utgående tokener **$0.0008** / 1K tokener Inndata · Lesing fra hurtigbuffer **$0** / 1K tokener Inndata · Skriving til hurtigbuffer **$0** / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time **—** / 1K tokener |
| KonfigurasjonNivå 1 for forespørselslengde | Prisplan— | Konteksttokener, mer enn0 | Konteksttokener, opptil og medIngen øvre grense | Kostnad Inndata · Inngående tokener **$0.0002** / 1K tokener Utdata · Utgående tokener **$0.0008** / 1K tokener Inndata · Lesing fra hurtigbuffer **$0** / 1K tokener Inndata · Skriving til hurtigbuffer **$0** / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time **—** / 1K tokener |

Ailoot reserverer et estimert beløp før en forespørsel. Etter resultatet gjøres det endelige beløpet opp basert på målt forbruk. Oppgjør for strømming bruker den endelige forbruksposten. [Slik fungerer reservasjon og oppgjør →](https://ailoot.ai/docs/nb/billing/reserve/)

### Eksempelforespørsler

#### Ailoot Ultra · Anthropic Messages

Komplett, minimal JSON-kroppcurl · bruk UTF-8-dokumentet dittPython · lagre hele resultatet

```json
{
  "model": "qwen/qwen3-coder-30b-a3b-instruct",
  "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-coder-30b-a3b-instruct', '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-coder-30b-a3b-instruct', '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))
```

### Motta og lagre resultater

#### Ailoot Ultra · Anthropic Messages

JSON eller SSE

##### Behold alle ferdige resultater

Behold alle fullstendige returnerte svar, filer og innholdsdeler.

Behold alle innholdsblokker, resonneringssignaturer og faktiske ID-er for verktøybruk. Sett sammen alle SSE-blokkendringer; den første tekstblokken er ikke hele resultatet.

##### Hvis det opprinnelige svaret må kontrolleres

Behold forespørsels-/svar-ID-er og headere. Ingen generell URL for henting av tekstjobber oppgis.

Svarfelter

| Felt | Type |
| --- | --- |
| Felt`id` | Typestring |
| Felt`model` | Typestring |
| Felt`content[]` | Typetext\|thinking\|tool\_use\|other content block |
| Felt`stop_reason` | Typestring\|null |
| Felt`usage` | Typeobject |

Feil og neste trinn

| Svar | Vilkår | Neste trinn |
| --- | --- | --- |
| Svar400 · `invalid_request_error` | VilkårUgyldige påkrevde felter, materialrepresentasjon eller parameterverdi | Neste trinnKorriger de angitte feltene før en ny opprettelsesforespørsel. |

### Aliaser

#### Modellaliaser

**Ailoot Ultra** [`qwen/qwen3-coder-30b-a3b-instruct`](https://ailoot.ai/models/nb/#m=qwen%2Fqwen3-coder-30b-a3b-instruct&route=Ultra&caller=qwen%2Fqwen3-coder-30b-a3b-instruct&fmt=messages)

#### Aliaser for metodestier

Bruk metodestiene som vises ovenfor.

#### Tilknyttede anroper-ID-er

[`qwen/qwen3-coder-30b-a3b-instruct`](https://ailoot.ai/models/nb/#m=qwen%2Fqwen3-coder-30b-a3b-instruct&route=Ultra&caller=qwen%2Fqwen3-coder-30b-a3b-instruct&fmt=messages)

FAQ · Qwen: Qwen3 Coder 30B A3B Instruct

Hvilke inndata og resultater er tilgjengelige?

`POST /v1/chat/completions` · `qwen/qwen3-coder-30b-a3b-instruct`: `text` → `text` `POST /v1/messages` · `qwen/qwen3-coder-30b-a3b-instruct`: `text` → `json`, `sse`

Hvilke felt bruker forespørselen?

`POST /v1/chat/completions` · `qwen/qwen3-coder-30b-a3b-instruct`: `model`, `messages`, `stream`, `modalities`, `provider` `POST /v1/messages` · `qwen/qwen3-coder-30b-a3b-instruct`: `model`, `messages`, `max_tokens`, `stream`

Hvilke grenser gjelder?

`POST /v1/chat/completions` · `qwen/qwen3-coder-30b-a3b-instruct`: `messages.min_items`: `1`

Koble Ailoot til Claude Code, OpenCode, Hermes eller egen applikasjon.

## Selskapet og dets prosjektportefølje

Selskapet og dets prosjektportefølje: millioner av kunder; månedlig salg for milliarder.

## Kjøp tokener med rabatt.

Abonnementsrabatt for jevnlig bruk. Kampanjekoder gir opptil 50% på tokenkjøp.

Abonnement

Velg et rabattabonnement for faste forespørsler.

Kampanjekode opptil 50%

Oppgi kode ved kjøp. Prisen beregnes på nytt etter gjeldende kampanje.

Kostnader i historikken

Modell, tokener og beløp lagres for hver forespørsel.

[Velg abonnement](https://ailoot.ai/docs/nb/billing/subscriptions/) · [Se modellpriser](https://ailoot.ai/models/nb/)

## Koble API-et til produktet du selger.

SaaS, apper og boter etter Ailoots offentlige tilbud og lisensavtale. Be om forhandlerlisens for videresalg.

Kommersiell applikasjon

Bygg tekst-, bilde-, video- og lydgenerering inn i betalte funksjoner i tjenesten.

Forhandlerlisens

Send prosjektbeskrivelse og tilgangsopplegg. Be om skriftlige vilkår for bruk og videresalg.

Dokumenter på nettstedet

Offentlig tilbud, lisensavtale og retningslinjer for databehandling er tilgjengelige før tilkobling.

[Be om forhandlerlisens](mailto:support@ailoot.ai) · [Offentlig tilbud og lisensavtale](https://ailoot.ai/legal/offer?lang=nb)

## Ailoot · Selskapet og dets prosjektportefølje





Ailoot bygger på etablert driftserfaring, en stor kundebase, stabil tjeneste og løpende KPI-kontroll.





Selskapet og dets prosjektportefølje: millioner av kunder; månedlig salg for milliarder.





Ailoot bruker denne driftserfaringen til API-tilgang til AI-funksjoner i kundenes produkter, agenter, applikasjoner og automatiseringer.
