Qwen3 8B
Qwen3-8B tilbyr flerspråklig tekstgenerering, kodearbeid og to svarmoduser i en tett modell med 8,2 milliarder parametere. Bruk direkte svar til daglig dialog og tenkemodus til problemer som trenger nærmere analyse.
- Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionsqwen3-8b - Ailoot Ultra · Anthropic Messages
POST /v1/messagesqwen3-8b
Om modellen
Denne beskrivelsen dekker modellens funksjoner. Tilgjengelige inndata, utdata og alternativer i Ailoot er oppført nedenfor for den valgte metoden.
Qwen3-8B er en tett Qwen3-språkmodell som kombinerer resonnering med vanlig tekstgenerering. De annonserte styrkene omfatter matematikk, logisk problemløsning, kode, kreativ skriving, rollebasert dialog og instruksjonsfølging over flere turer. Familien støtter mer enn 100 språk og dialekter. Et praktisk bruksområde er en flerspråklig kundestøtteassistent som gjør kundens melding og et oppgitt regelutdrag om til et nyttig svar, med produktnavn og den ønskede tonen bevart.
Denne utgivelsen har 8.2 milliarder parametere, inkludert 6.95 milliarder utenfor embeddingene, og 36 lag. Den bruker gruppert spørringsoppmerksomhet med 32 spørringshoder og åtte nøkkel/verdi-hoder. Det er en separat tett modell, ikke 235B-modellen med en blanding av eksperter som kjører med færre eksperter. Arbeidsinndataene og det genererte resultatet er tekst: en oversettelse, forklaring, revidert dokument, plan eller et program. Velg en tydelig oppgave før kontekst legges til. For et kundestøttesvar gir du kundens melding, gjeldende regler, godkjent terminologi og handlingen leseren skal utføre; be om et svar og en separat liste over fakta som fortsatt mangler.
Produsentens startflyt bruker en sekvens av chatmeldinger og en eksplisitt chatmal. For kodeassistanse tar du med relevant funksjon, en inngang som avdekker problemet, de faktiske utdataene og forventet resultat. Be om en korrigert funksjon med eksempler, med en separat forklaring av den endrede oppførselen. For oversettelse identifiserer du kilde- og målspråk, lesere og termer som skal bevares. Disse inndataene gjør den resulterende teksten enklere å sammenligne med det opprinnelige kravet. Den publiserte integrasjonen forventer et kjøremiljø som kjenner Qwen3; kortet advarer om at Transformers-versjoner under 4.51.0 ikke gjenkjenner den nødvendige arkitekturen.
Den samme modellen støtter tenking og ikke-tenking. Tenking er aktivert som standard i den oppgitte malen. Hard deaktivering fjerner resonneringsdelen; når tenking forblir aktivert, kan /think og /no_think endre valget mellom turer. Den siste slike instruksen har forrang, og disse bryterne på promptnivå kan ikke overstyre en hard deaktivering. I en produktarbeidsflyt bruker du direkte modus til en kort omskriving av en godkjent melding og velger resonnering for et avvik som trenger forklaring. Hold sluttsvaret adskilt fra mellomliggende resonnering, og behold bare sluttsvaret i senere samtalehistorikk. Når tenking er aktivert, beholder også en myk forespørsel uten tenking en resonneringsblokk; innholdet kan være tomt. Hard deaktivering fjerner denne blokken.
Produsenten beskriver verktøykall og anbefaler Qwen-Agent til å håndtere maler og parsing. En applikasjon kan gi verktøydefinisjoner, utføre forespurte kall og returnere resultatene. For en kundestøtteassistent kan et avgrenset, skrivebeskyttet ordreoppslag gi en bekreftet forsendelsesstatus før modellen lager et svarutkast. Angi tillatte oppslagsfelter og hvordan en manglende post skal rapporteres. Den nyttige sluttleveransen er et svar forankret i den returnerte informasjonen, ikke en udokumentert påstand om at en ekstern operasjon lyktes. Qwen3-veiledningen beskriver også parallelle verktøykall og kall over flere trinn, med argumenter representert som objekter og resultater levert tilbake til samtalen.
Modellkortet oppgir 32,768 opprinnelige konteksttokener og 131,072 med YaRN-utvidelse. Oppførsel ved lang kontekst avhenger derfor av den faktiske konfigurasjonen. Statisk YaRN kan påvirke kortere forespørsler, så kortet anbefaler å aktivere den når lang kontekst trengs. Inndata, samtalehistorikk og genererte utdata bruker et felles kontekstbudsjett. Merk lange kildedeler, fjern uvedkommende gjentakelser og la det være plass til det forespurte svaret. Det publiserte genereringseksemplet og utdataanbefalingene er konfigurasjonsveiledning, ikke et uavhengig hardt utdatamaksimum. Qwen3-dokumentasjonen drøfter assistentmeldinger på 38,912 tokener i tenkemodus og 16,384 i ikke-tenkemodus i forklaringen av treningslengde og anbefaler å evaluere kvaliteten på lengre generering. Disse tallene er adskilt fra det samlede kontekstvinduet og er ikke en endepunktspesifikk hard grense. Kortet forklarer også standardfordelingen på 40,960 tokenposisjoner som 8,192 til typiske prompter pluss 32,768 til utdata. Dette er produsentveiledning for konfigurasjon, adskilt fra den opprinnelige treningskonteksten og eventuelle endepunktgrenser.
For tenkemodus er de anbefalte samplingsverdiene temperature 0.6, top-p 0.95, top-k 20 og min-p 0; uten tenking er de 0.7, 0.8, 20 og 0. Produsenten advarer om at grådig resonnering kan gi gjentatt tekst. Høyere tilstedeværelsesstraff kan redusere gjentakelser, men kan noen ganger gi språkblanding. Definer sluttformatet eksplisitt, for eksempel et svar fulgt av et JSON-objekt med uavklarte felter, og valider objektet før en applikasjon bruker det. Kontroller foreslått kode med de oppgitte tilfellene, og gjennomgå oversettelser for bevart terminologi.
Praktisk oppgave
Praktisk oppgave
Teknisk eksempel på engelsk
A bilingual reply grounded in a return policy
Draft a German reply to this customer: 'Can I return my unused Aero Cup after ten days?' Policy P1: unused products can be returned within 14 days; the customer must provide the order reference. Keep Aero Cup unchanged and ask for the missing reference. Follow the reply with a short English note naming the facts used.Forventet resultat
A polite German customer reply and a brief English source-fact note.Kontroller resultatet
The reply preserves the unused condition and 14-day window, asks for the reference and does not invent refund timing.Ailoot Ultra · OpenAI Chat POST /v1/chat/completions qwen3-8b
qwen3-8bStart
Qwen3-8B tilbyr flerspråklig tekstgenerering, kodearbeid og to svarmoduser i en tett modell med 8,2 milliarder parametere. Bruk direkte svar til daglig dialog og tenkemodus til problemer som trenger nærmere analyse.
- 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 |
|---|---|---|---|---|
Feltmodel | Typestring | KravPåkrevd | Verdier & grenser qwen3-8b | Standard— |
Feltmessages | Typemessage[] | KravPåkrevd | Verdier & grenser Minste antall elementer: 1 | Standard— |
Feltmessages[].role | Typestring | 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— |
Feltmessages[].content | Typestring|content_part[]|null | KravValgfritt | Verdier & grenser | Standard— |
Feltmessages[].tool_calls | Typetool_call[] | KravValgfritt | Verdier & grenser | Standard— |
Feltmessages[].tool_call_id | Typestring | KravValgfritt | Verdier & grenser Gjelder når: role=tool; bruk faktisk returnert ID | Standard— |
Feltmessages[].name | Typestring | KravValgfritt | Verdier & grenser | Standard— |
Feltmessages[].reasoning_content | Typestring | KravValgfritt | Verdier & grenser Gjelder når: Send den faktisk returnerte resonneringen tilbake der denne modellen bruker den | Standard— |
Feltmessages[].reasoning_details | Typeobject|array | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltmax_tokens | Typeinteger | KravValgfritt | Verdier & grenser Minimum: 1 Avhenger av modellen | Standard— |
Feltmax_completion_tokens | Typeinteger | KravValgfritt | Verdier & grenser Minimum: 1 Avhenger av modellen | Standard— |
Feltstream | Typeboolean | KravValgfritt | Verdier & grenser | Standardfalse |
Feltstream_options.include_usage | Typeboolean | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Felttemperature | Typenumber | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Felttop_p | Typenumber | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltstop | Typestring|string[] | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Felttools | Typefunction_tool[] | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Felttools[].type | Typestring | KravValgfritt | Verdier & grenser function Avhenger av modellen | Standard— |
Felttools[].function.name | Typestring | KravPåkrevd | Verdier & grenser Gjelder når: funksjonsverktøy oppgitt | Standard— |
Felttools[].function.description | Typestring | KravValgfritt | Verdier & grenser | Standard— |
Felttools[].function.parameters | TypeJSON_schema | KravValgfritt | Verdier & grenser | Standard— |
Felttool_choice | Typestring|object | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltparallel_tool_calls | Typeboolean | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltresponse_format | Typeobject | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltreasoning_effort | Typestring | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltreasoning | Typeobject | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltservice_tier | Typestring | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltinstructions | Typestring | KravValgfritt | Verdier & grenser Kompatibilitetsfelt | Standard— |
Feltfunctions | Typefunction[] | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltfunction_call | Typestring|object | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltprompt_cache_options | Typeobject | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltmodalities | Typestring[] | KravValgfritt | Verdier & grenser text | Standard— |
Feltprovider | Typeobject | KravValgfritt | Verdier & grenser Vilkår: provider.options avvises på denne Ultra-tekstruten | Standard— |
Feltcache_control.ttl | Typestring | 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 |
|---|---|
Parametercontent_type | Avtaleapplication/json |
Parameterrequired | Avtalemodel, messages |
Parametermaterial_types | Avtaletext |
Parametermessages | Avtalemeldingstabell med role/content-struktur |
Parameterfile_material | Avtalefaktisk UTF-8-dokument satt inn som bokstavelig tekst; ingen fil-ID utledes |
Parameteroptional_controls | Avtalestream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice |
Parametercontrol_scope | Avtalemodellspesifikt; brukerens funksjonsverktøy skiller seg fra driftede verktøy |
Parameteroutput_modalities | Avtaletext |
Parameterhosted_operations | Avtalefalse |
Parametermultimodal_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
- Ikke angitt Når hurtigmodus er valgt
- Flex-modus
- Ikke angitt Når flex-modus er valgt
- Maksimal resonneringsinnsats
- Ikke angitt Når justeringen «default» brukes for maksimal resonneringsinnsats
Ailoot-satser
Priser etter konfigurasjon
| Konfigurasjon | Prisplan | Kostnad |
|---|---|---|
| KonfigurasjonGrunnpriser for tokener | PrisplanGrunnsats | Kostnad Inndata · Inngående tokener $0.000144 / 1K tokener Utdata · Utgående tokener $0.00144 / 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 →
Eksempelforespørsler
Ailoot Ultra · OpenAI Chat
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-8b", "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='qwen3-8b',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='qwen3-8b',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 |
|---|---|
Feltchoices[].index | Typeinteger |
Feltchoices[].message.content | Typestring|null |
Feltchoices[].message.tool_calls | Typetool_call[] |
Feltchoices[].message.reasoning_content | Typestring |
Feltchoices[].message.reasoning_details | Typeobject|array |
Feltchoices[].finish_reason | Typestring|null |
Feltusage | 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 qwen3-8b
Aliaser for metodestier
Bruk metodestiene som vises ovenfor.
Tilknyttede anroper-ID-er
Ailoot Ultra · Anthropic Messages POST /v1/messages qwen3-8b
qwen3-8bStart
Qwen3-8B tilbyr flerspråklig tekstgenerering, kodearbeid og to svarmoduser i en tett modell med 8,2 milliarder parametere. Bruk direkte svar til daglig dialog og tenkemodus til problemer som trenger nærmere analyse.
- 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 |
|---|---|---|---|---|
Feltmodel | Typestring | KravPåkrevd | Verdier & grenser qwen3-8b | Standard— |
Feltmessages | Typemessage[] | KravPåkrevd | Verdier & grenser | Standard— |
Feltmessages[].role | Typestring | KravPåkrevd | Verdier & grenser user, assistant | Standard— |
Feltmessages[].content | Typestring | KravPåkrevd | Verdier & grenser | Standard— |
Feltmax_tokens | Typeinteger | KravPåkrevd | Verdier & grenser | Standard— |
Feltstream | Typeboolean | KravValgfritt | Verdier & grenser | Standardfalse |
Kombinasjoner av inngående materialer
Tekst · UTF-8-tekst
messages[].content-streng
Metodeparametere og livssyklus
| Parameter | Avtale |
|---|---|
Parametercontent_type | Avtaleapplication/json |
Parameterrequired | Avtalemodel, messages, max_tokens |
Parameteroptional_controls | Avtalestream |
Parametermaterial_types | Avtaletext |
Parametertext_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
- Ikke angitt Når hurtigmodus er valgt
- Flex-modus
- Ikke angitt Når flex-modus er valgt
- Maksimal resonneringsinnsats
- Ikke angitt Når justeringen «default» brukes for maksimal resonneringsinnsats
Ailoot-satser
Priser etter konfigurasjon
| Konfigurasjon | Prisplan | Kostnad |
|---|---|---|
| KonfigurasjonGrunnpriser for tokener | PrisplanGrunnsats | Kostnad Inndata · Inngående tokener $0.000144 / 1K tokener Utdata · Utgående tokener $0.00144 / 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 →
Eksempelforespørsler
Ailoot Ultra · Anthropic Messages
{
"model": "qwen3-8b",
"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-8b', '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-8b', '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 |
|---|---|
Feltid | Typestring |
Feltmodel | Typestring |
Feltcontent[] | Typetext|thinking|tool_use|other content block |
Feltstop_reason | Typestring|null |
Feltusage | 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 qwen3-8b
Aliaser for metodestier
Bruk metodestiene som vises ovenfor.
Tilknyttede anroper-ID-er
FAQ · Qwen/Qwen3-8B
- Hvilke inndata og resultater er tilgjengelige?
POST /v1/chat/completions·qwen3-8b:text→textPOST /v1/messages·qwen3-8b:text→json,sse- Hvilke felt bruker forespørselen?
POST /v1/chat/completions·qwen3-8b:model,messages,stream,modalities,providerPOST /v1/messages·qwen3-8b:model,messages,max_tokens,stream- Hvilke grenser gjelder?
POST /v1/chat/completions·qwen3-8b:messages.min_items:1