modeller

OpenAI: GPT-5.4 Mini

Markdown · JSON

OpenAI: GPT-5.4 Mini

En kompakt GPT-5.4-udgave til programmering, computerbrug og understøttende agentarbejde med stor behandlingsvolumen. Den accepterer tekst og billeder og kan udarbejde en ændring, fortolke et screenshot af en grænseflade eller gennemføre en smallere opgave i en større arbejdsgang.

Om modellen

Denne beskrivelse dækker modellens funktioner. Tilgængelige input, output og indstillinger i Ailoot står nedenfor for den valgte metode.

GPT-5.4 Mini er OpenAI’s kompakte GPT-5.4-udgave til programmering, computerbrug og understøttende agentopgaver. Den bringer familiens funktioner til en model udviklet til fokuseret arbejde med stor behandlingsvolumen. Dens input er tekst og billeder, og dens output er tekst. Producenten beskriver opgaver såsom målrettede ændringer, navigation i kodebasen, fejlfinding og fortolkning af screenshots af grænseflader.

Ved en programmeringsanmodning skal den adfærd, der skal implementeres, beskrives, de relevante filer eller uddrag leveres og de begrænsninger, der skal overleve ændringen, angives. En eksempelopgave er at finde den del af et projekt, der håndterer et bestemt input, foreslå en målrettet ændring og angive, hvordan den ændrede adfærd skal kontrolleres. Hold opgavens omfang tydeligt, så en lokal ændring forbindes med de relevante afhængigheder uden at blive en uvedkommende omskrivning.

Producentens lancering beskriver også Mini som en understøttende model i et større agentsystem. En smallere opgave kan være at søge i en kodebase, gennemgå en stor fil eller behandle understøttende dokumenter, mens en anden fase håndterer koordinering og den endelige vurdering. Giv opgaven sit eget input, kriterium for færdiggørelse og outputformat. Et nyttigt resultat er fundet, dets placering i det leverede materiale og enhver usikkerhed, som næste fase skal afklare.

Ved computerbrug fremhæver lanceringen fortolkning af screenshots af informationstætte grænseflader. Lever den aktuelle visuelle tilstand, brugerens mål og de relevante begrænsninger. Modellen kan foreslå en handling eller forklare, hvad screenshottet viser, mens det tilsluttede miljø udfører operationen og returnerer den resulterende tilstand. Hold det faktiske værktøjsresultat adskilt fra en handling, der kun er foreslået.

OpenAI’s specifikation angiver et kontekstvindue på 400.000 tokens, et maksimalt input på 272.000 tokens og et maksimalt output på 128.000 tokens med en vidensgrænse den 31. august 2025. Valgmulighederne for ræsonneringsindsats er none, low, medium, high og xhigh; none er standard. Modellen angiver grænsefladerne Responses, Chat Completions og Batch, streaming, Structured Outputs, funktionskald, web- og filsøgning, fil- og billedinput samt promptcaching.

Dens værktøjer ifølge producenten omfatter værktøjssøgning, billedgenerering, kodefortolkning, hostede shell- og patchoperationer, skills, computerbrug og MCP-forbindelser. Applikationen leverer de tilgængelige operationer og returnerer deres faktiske resultater. Ved et endeligt svar skal ændringen eller konklusionen, den relevante dokumentation og næste handling efterspørges. En foreslået patch, en fokuseret gennemgang eller en kort forklaring af en grænseflade er et nyttigt resultat, når det er knyttet til den præcise opgave og kan kontrolleres mod den leverede kilde eller skærm.

Praktisk opgave

Praktisk opgave

Teknisk eksempel på engelsk

Locate an inconsistent empty-state branch

Inspect these Python helpers: def has_rows(rows): return rows is not None; def summary(rows): return str(len(rows)) if has_rows(rows) else "No rows". An empty list currently shows "0"; the requirement says None and [] both show "No rows". Identify the responsible branch, propose a focused correction and tests preserving nonempty counts.

Forventet resultat

A location-specific explanation, a minimal code change and tests for None, [], and a nonempty list.

Kontrollér resultatet

Check that both empty cases use the empty message while a two-row list still returns "2".
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions gpt-5.4-mini

gpt-5.4-mini

OpenAI /gpt-5.4-mini
Model-ID
  • gpt-5.4-mini
  • openai/gpt-5.4-mini
  • ~openai/gpt-mini-latest

Start

En kompakt GPT-5.4-udgave til programmering, computerbrug og understøttende agentarbejde med stor behandlingsvolumen. Den accepterer tekst og billeder og kan udarbejde en ændring, fortolke et screenshot af en grænseflade eller gennemføre en smallere opgave i en større arbejdsgang.

Accepterede input
Tekst
Resultater
Tekst

Tilgængelig i Ailoot · input og metoder

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
Inputtyper
text
Outputtyper
text
Outputformat
json eller SSE
FeltTypeKravVærdier og grænserStandard
FeltmodelTypestringKravPåkrævetVærdier og grænser
gpt-5.4-mini
Standard—
FeltmessagesTypemessage[]KravPåkrævetVærdier og grænser
Minimumsantal elementer: 1
Standard—
Feltmessages[].roleTypestringKravPåkrævetVærdier og grænser
Afhænger af modellen
Standard—
Feltmessages[].contentTypestringKravValgfritVærdier og grænser
Gælder når: Tekstsamtale
Standard—
FeltstreamTypebooleanKravValgfritVærdier og grænserStandardfalse
Kombinationer af inputmaterialer

Tekst · UTF8-tekst

messages[].content

Metodeparametre og livscyklus
ParameterKontrakt
Parametercontent_typeKontraktapplication/json
ParameterrequiredKontraktmodel, messages
Parametermaterial_typesKontrakttext
ParametermessagesKontraktbeskedarray med strukturen role/content
Parameterfile_materialKontraktfaktisk UTF-8-dokument indsat som bogstavelig tekst; intet fil-ID udledes
Parameteroptional_controlsKontraktstream
Parametercontrol_scopeKontraktTekstsamtale; stream er en boolesk værdi og er som standard false.
Parameteroutput_modalitiesKontrakttext
Parameterhosted_operationsKontraktfalse
Parametermultimodal_input_bindingKontraktnull

Metodealiaser: /chat/completions

Livscyklus: synchronous_or_streamed

Send det præcise model-ID med messages.

Kontekstlængde er ikke et outputloft.

En tekstfil kan levere bogstavelig tekst; billed-, lyd- og filobjektinput kræver en præcis binding.

Priser

Tarifoplysninger tilføjer ikke anmodningsmuligheder. Understøttede parametre står ved den valgte metode.

Hurtig tilstand
Standardpris Når hurtig tilstand er valgt
flex-tilstand
Standardpris Når flex-tilstanden er valgt
Maksimal ræsonneringsindsats
Standardpris Når default-justeringen anvendes ved maksimal ræsonneringsindsats
Ræsonneringsindsats · high
Standardpris Når ræsonneringsindsatsen er sat til high
Ræsonneringsindsats · low
Standardpris Når ræsonneringsindsatsen er sat til low
Ræsonneringsindsats · medium
Standardpris Når ræsonneringsindsatsen er sat til medium
Ræsonneringsindsats · none
Standardpris Når ræsonneringsindsatsen er sat til none
Ræsonneringsindsats · xhigh
Standardpris Når ræsonneringsindsatsen er sat til xhigh

Ailoot-takster

Priser efter konfiguration

Knyt hver omkostning til de viste betingelser. Brug én takst for hver gruppe af alternative konfigurationer.

KonfigurationTakstplanKonteksttokens, mere endKonteksttokens, op til og medBeløb
KonfigurationGrundtakster for tokensTakstplanGrundtakstKonteksttokens, mere end—Konteksttokens, op til og medIngen øvre grænseBeløb
Input · Inputtokens $0.0015 / 1K tokens
Output · Outputtokens $0.009 / 1K tokens
Input · Cachelæsning $0.00015 / 1K tokens
Input · Cacheskrivning $0 / 1K tokens
Input · Cacheskrivning, 1 time — / 1K tokens
KonfigurationAnmodningslængde · niveau 1Takstplan—Konteksttokens, mere end0Konteksttokens, op til og medIngen øvre grænseBeløb
Input · Inputtokens $0.0015 / 1K tokens
Output · Outputtokens $0.009 / 1K tokens
Input · Cachelæsning $0.00015 / 1K tokens
Input · Cacheskrivning $0 / 1K tokens
Input · Cacheskrivning, 1 time — / 1K tokens

Ailoot reserverer et estimeret beløb før en anmodning. Efter resultatet afregnes det endelige beløb ud fra det målte forbrug. Ved streaming bruges den endelige forbrugsregistrering til afregningen. Sådan fungerer reservation og afregning →

Eksempelanmodninger

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":"gpt-5.4-mini","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="gpt-5.4-mini", 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"))

Hent og gem resultater

Ailoot Ultra · OpenAI Chat

json eller SSE

Behold alle færdige resultater

Gem hvert fuldstændigt returneret svar, hver fil og hver indholdsdel.

Bevar hvert valg og dets indhold, værktøjskald og ræsonnement. Saml i SSE deltaer efter valg-/værktøjsindeks, og bevar den endelige afslutningsårsag og forbrugsoplysningerne.

Hvis det oprindelige svar skal kontrolleres

Bevar anmodnings-/svar-ID’er og headere. Der leveres ingen generel URL til at hente tekstjob.

Svarfelter
FeltType
Feltchoices[].indexTypeinteger
Feltchoices[].message.contentTypestring|null
Feltchoices[].message.tool_callsTypetool_call[]
Feltchoices[].message.reasoning_contentTypestring
Feltchoices[].message.reasoning_detailsTypeobject|array
Feltchoices[].finish_reasonTypestring|null
FeltusageTypeobject
Fejl og næste trin
SvarBetingelseNæste trin
Svar400 · invalid_request_errorBetingelseUgyldige obligatoriske felter, materialerepræsentation eller parameterværdiNæste trinRet de angivne felter før en ny oprettelsesanmodning.

Aliaser

Modelaliaser

Ailoot Ultra gpt-5.4-mini, openai/gpt-5.4-mini, ~openai/gpt-mini-latest

Aliaser for metodestier

/chat/completions

Relaterede kalder-ID’er

openai/gpt-5.4-mini, ~openai/gpt-mini-latest, gpt-5.4-mini

Ailoot Ultra · Anthropic Messages POST /v1/messages gpt-5.4-mini

gpt-5.4-mini

OpenAI /gpt-5.4-mini
Model-ID
  • gpt-5.4-mini
  • openai/gpt-5.4-mini
  • ~openai/gpt-mini-latest

Start

En kompakt GPT-5.4-udgave til programmering, computerbrug og understøttende agentarbejde med stor behandlingsvolumen. Den accepterer tekst og billeder og kan udarbejde en ændring, fortolke et screenshot af en grænseflade eller gennemføre en smallere opgave i en større arbejdsgang.

Accepterede input
Tekst
Resultater
json · sse

Tilgængelig i Ailoot · input og metoder

Ailoot Ultra · Anthropic Messages POST /v1/messages
Inputtyper
text
Outputtyper
json, sse
Outputformat
JSON eller SSE
FeltTypeKravVærdier og grænserStandard
FeltmodelTypestringKravPåkrævetVærdier og grænser
gpt-5.4-mini
Standard—
FeltmessagesTypemessage[]KravPåkrævetVærdier og grænserStandard—
Feltmessages[].roleTypestringKravPåkrævetVærdier og grænser
user, assistant
Standard—
Feltmessages[].contentTypestringKravPåkrævetVærdier og grænserStandard—
Feltmax_tokensTypeintegerKravPåkrævetVærdier og grænserStandard—
FeltstreamTypebooleanKravValgfritVærdier og grænserStandardfalse
Kombinationer af inputmaterialer

Tekst · UTF-8-tekst

messages[].content som streng

Metodeparametre og livscyklus
ParameterKontrakt
Parametercontent_typeKontraktapplication/json
ParameterrequiredKontraktmodel, messages, max_tokens
Parameteroptional_controlsKontraktstream
Parametermaterial_typesKontrakttext
Parametertext_file_materialKontraktLæs det faktiske UTF-8-dokument, og indsæt teksten i det angivne input eller beskedens indholdsstreng.

Livscyklus: synchronous_or_streamed

Priser

Tarifoplysninger tilføjer ikke anmodningsmuligheder. Understøttede parametre står ved den valgte metode.

Hurtig tilstand
Standardpris Når hurtig tilstand er valgt
flex-tilstand
Standardpris Når flex-tilstanden er valgt
Maksimal ræsonneringsindsats
Standardpris Når default-justeringen anvendes ved maksimal ræsonneringsindsats
Ræsonneringsindsats · high
Standardpris Når ræsonneringsindsatsen er sat til high
Ræsonneringsindsats · low
Standardpris Når ræsonneringsindsatsen er sat til low
Ræsonneringsindsats · medium
Standardpris Når ræsonneringsindsatsen er sat til medium
Ræsonneringsindsats · none
Standardpris Når ræsonneringsindsatsen er sat til none
Ræsonneringsindsats · xhigh
Standardpris Når ræsonneringsindsatsen er sat til xhigh

Ailoot-takster

Priser efter konfiguration

Knyt hver omkostning til de viste betingelser. Brug én takst for hver gruppe af alternative konfigurationer.

KonfigurationTakstplanKonteksttokens, mere endKonteksttokens, op til og medBeløb
KonfigurationGrundtakster for tokensTakstplanGrundtakstKonteksttokens, mere end—Konteksttokens, op til og medIngen øvre grænseBeløb
Input · Inputtokens $0.0015 / 1K tokens
Output · Outputtokens $0.009 / 1K tokens
Input · Cachelæsning $0.00015 / 1K tokens
Input · Cacheskrivning $0 / 1K tokens
Input · Cacheskrivning, 1 time — / 1K tokens
KonfigurationAnmodningslængde · niveau 1Takstplan—Konteksttokens, mere end0Konteksttokens, op til og medIngen øvre grænseBeløb
Input · Inputtokens $0.0015 / 1K tokens
Output · Outputtokens $0.009 / 1K tokens
Input · Cachelæsning $0.00015 / 1K tokens
Input · Cacheskrivning $0 / 1K tokens
Input · Cacheskrivning, 1 time — / 1K tokens

Ailoot reserverer et estimeret beløb før en anmodning. Efter resultatet afregnes det endelige beløb ud fra det målte forbrug. Ved streaming bruges den endelige forbrugsregistrering til afregningen. Sådan fungerer reservation og afregning →

Eksempelanmodninger

Ailoot Ultra · Anthropic Messages

Komplet minimalt requestbody i JSONcurl · brug dit UTF-8-dokumentPython · gem hele resultatet
{
  "model": "gpt-5.4-mini",
  "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': 'gpt-5.4-mini', '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': 'gpt-5.4-mini', '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))

Hent og gem resultater

Ailoot Ultra · Anthropic Messages

JSON eller SSE

Behold alle færdige resultater

Gem hvert fuldstændigt returneret svar, hver fil og hver indholdsdel.

Bevar alle indholdsblokke, ræsonnementssignaturer og faktiske værktøjsbrugs-ID’er. Saml alle SSE-blokdeltaer; den første tekstblok er ikke hele outputtet.

Hvis det oprindelige svar skal kontrolleres

Bevar anmodnings-/svar-ID’er og headere. Der leveres ingen generel URL til at hente tekstjob.

Svarfelter
FeltType
FeltidTypestring
FeltmodelTypestring
Feltcontent[]Typetext|thinking|tool_use|other content block
Feltstop_reasonTypestring|null
FeltusageTypeobject
Fejl og næste trin
SvarBetingelseNæste trin
Svar400 · invalid_request_errorBetingelseUgyldige obligatoriske felter, materialerepræsentation eller parameterværdiNæste trinRet de angivne felter før en ny oprettelsesanmodning.

Aliaser

Modelaliaser

Ailoot Ultra gpt-5.4-mini, openai/gpt-5.4-mini, ~openai/gpt-mini-latest

Aliaser for metodestier

/chat/completions

Relaterede kalder-ID’er

openai/gpt-5.4-mini, ~openai/gpt-mini-latest, gpt-5.4-mini

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions openai/gpt-5.4-mini

openai/gpt-5.4-mini

OpenAI /openai/gpt-5.4-mini
Model-ID
  • gpt-5.4-mini
  • openai/gpt-5.4-mini
  • ~openai/gpt-mini-latest

Start

En kompakt GPT-5.4-udgave til programmering, computerbrug og understøttende agentarbejde med stor behandlingsvolumen. Den accepterer tekst og billeder og kan udarbejde en ændring, fortolke et screenshot af en grænseflade eller gennemføre en smallere opgave i en større arbejdsgang.

Accepterede input
Tekst
Resultater
Tekst

Tilgængelig i Ailoot · input og metoder

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
Inputtyper
text
Outputtyper
text
Outputformat
json eller SSE
FeltTypeKravVærdier og grænserStandard
FeltmodelTypestringKravPåkrævetVærdier og grænser
openai/gpt-5.4-mini
Standard—
FeltmessagesTypemessage[]KravPåkrævetVærdier og grænser
Minimumsantal elementer: 1
Standard—
Feltmessages[].roleTypestringKravPåkrævetVærdier og grænser
Eksempler: system, user, assistant, tool, function
Betingelser: Disse roller er eksplicit repræsenteret i kildekodens kompatibilitetstyper; modellens præcise rollesæt er fortsat modelspecifikt.
Afhænger af modellen
Standard—
Feltmessages[].contentTypestring|content_part[]|nullKravValgfritVærdier og grænserStandard—
Feltmessages[].tool_callsTypetool_call[]KravValgfritVærdier og grænserStandard—
Feltmessages[].tool_call_idTypestringKravValgfritVærdier og grænser
Gælder når: role=tool; brug det faktisk returnerede ID
Standard—
Feltmessages[].nameTypestringKravValgfritVærdier og grænserStandard—
Feltmessages[].reasoning_contentTypestringKravValgfritVærdier og grænser
Gælder når: Send det faktisk returnerede ræsonnement tilbage, når modellen bruger det
Standard—
Feltmessages[].reasoning_detailsTypeobject|arrayKravValgfritVærdier og grænser
Afhænger af modellen
Standard—
Feltmax_tokensTypeintegerKravValgfritVærdier og grænser
Minimum: 1
Afhænger af modellen
Standard—
Feltmax_completion_tokensTypeintegerKravValgfritVærdier og grænser
Minimum: 1
Afhænger af modellen
Standard—
FeltstreamTypebooleanKravValgfritVærdier og grænserStandardfalse
Feltstream_options.include_usageTypebooleanKravValgfritVærdier og grænser
Afhænger af modellen
Standard—
FelttemperatureTypenumberKravValgfritVærdier og grænser
Afhænger af modellen
Standard—
Felttop_pTypenumberKravValgfritVærdier og grænser
Afhænger af modellen
Standard—
FeltstopTypestring|string[]KravValgfritVærdier og grænser
Afhænger af modellen
Standard—
FelttoolsTypefunction_tool[]KravValgfritVærdier og grænser
Afhænger af modellen
Standard—
Felttools[].typeTypestringKravValgfritVærdier og grænser
function
Afhænger af modellen
Standard—
Felttools[].function.nameTypestringKravPåkrævetVærdier og grænser
Gælder når: funktionsværktøj angivet
Standard—
Felttools[].function.descriptionTypestringKravValgfritVærdier og grænserStandard—
Felttools[].function.parametersTypeJSON_schemaKravValgfritVærdier og grænserStandard—
Felttool_choiceTypestring|objectKravValgfritVærdier og grænser
Afhænger af modellen
Standard—
Feltparallel_tool_callsTypebooleanKravValgfritVærdier og grænser
Afhænger af modellen
Standard—
Feltresponse_formatTypeobjectKravValgfritVærdier og grænser
Afhænger af modellen
Standard—
Feltreasoning_effortTypestringKravValgfritVærdier og grænser
Afhænger af modellen
Standard—
FeltreasoningTypeobjectKravValgfritVærdier og grænser
Afhænger af modellen
Standard—
Feltservice_tierTypestringKravValgfritVærdier og grænser
Afhænger af modellen
Standard—
FeltinstructionsTypestringKravValgfritVærdier og grænser
Kompatibilitetsfelt
Standard—
FeltfunctionsTypefunction[]KravValgfritVærdier og grænser
Afhænger af modellen
Standard—
Feltfunction_callTypestring|objectKravValgfritVærdier og grænser
Afhænger af modellen
Standard—
Feltprompt_cache_optionsTypeobjectKravValgfritVærdier og grænser
Afhænger af modellen
Standard—
FeltmodalitiesTypestring[]KravValgfritVærdier og grænser
text
Standard—
FeltproviderTypeobjectKravValgfritVærdier og grænser
Betingelser: provider.options afvises på denne Ultra-tekstrute
Standard—
Feltcache_control.ttlTypestringKravValgfritVærdier og grænser
Betingelser: 1h afvises på de faktiske placeringer for promptcaching
Standard—
Kombinationer af inputmaterialer

Tekst · UTF8-tekst

messages[].content

Metodeparametre og livscyklus
ParameterKontrakt
Parametercontent_typeKontraktapplication/json
ParameterrequiredKontraktmodel, messages
Parametermaterial_typesKontrakttext
ParametermessagesKontraktbeskedarray med strukturen role/content
Parameterfile_materialKontraktfaktisk UTF-8-dokument indsat som bogstavelig tekst; intet fil-ID udledes
Parameteroptional_controlsKontraktstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice
Parametercontrol_scopeKontraktmodelspecifikt; brugerens funktionsværktøjer er forskellige fra hostede værktøjer
Parameteroutput_modalitiesKontrakttext
Parameterhosted_operationsKontraktfalse
Parametermultimodal_input_bindingKontraktnull

Livscyklus: synchronous_or_streamed

Send det præcise model-ID med messages.

Kontekstlængde er ikke et outputloft.

En tekstfil kan levere bogstavelig tekst; billed-, lyd- og filobjektinput kræver en præcis binding.

Priser

Tarifoplysninger tilføjer ikke anmodningsmuligheder. Understøttede parametre står ved den valgte metode.

Hurtig tilstand
Standardpris Når hurtig tilstand er valgt
flex-tilstand
Standardpris Når flex-tilstanden er valgt
Maksimal ræsonneringsindsats
Standardpris Når default-justeringen anvendes ved maksimal ræsonneringsindsats
Ræsonneringsindsats · high
Standardpris Når ræsonneringsindsatsen er sat til high
Ræsonneringsindsats · low
Standardpris Når ræsonneringsindsatsen er sat til low
Ræsonneringsindsats · medium
Standardpris Når ræsonneringsindsatsen er sat til medium
Ræsonneringsindsats · none
Standardpris Når ræsonneringsindsatsen er sat til none
Ræsonneringsindsats · xhigh
Standardpris Når ræsonneringsindsatsen er sat til xhigh

Ailoot-takster

Priser efter konfiguration

Knyt hver omkostning til de viste betingelser. Brug én takst for hver gruppe af alternative konfigurationer.

KonfigurationTakstplanKonteksttokens, mere endKonteksttokens, op til og medBeløb
KonfigurationGrundtakster for tokensTakstplanGrundtakstKonteksttokens, mere end—Konteksttokens, op til og medIngen øvre grænseBeløb
Input · Inputtokens $0.0015 / 1K tokens
Output · Outputtokens $0.009 / 1K tokens
Input · Cachelæsning $0.00015 / 1K tokens
Input · Cacheskrivning $0 / 1K tokens
Input · Cacheskrivning, 1 time — / 1K tokens
KonfigurationAnmodningslængde · niveau 1Takstplan—Konteksttokens, mere end0Konteksttokens, op til og medIngen øvre grænseBeløb
Input · Inputtokens $0.0015 / 1K tokens
Output · Outputtokens $0.009 / 1K tokens
Input · Cachelæsning $0.00015 / 1K tokens
Input · Cacheskrivning $0 / 1K tokens
Input · Cacheskrivning, 1 time — / 1K tokens

Ailoot reserverer et estimeret beløb før en anmodning. Efter resultatet afregnes det endelige beløb ud fra det målte forbrug. Ved streaming bruges den endelige forbrugsregistrering til afregningen. Sådan fungerer reservation og afregning →

Eksempelanmodninger

Ailoot Ultra · OpenAI Chat

curlPython SDKPython-stream
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "openai/gpt-5.4-mini", "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='openai/gpt-5.4-mini',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='openai/gpt-5.4-mini',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")

Hent og gem resultater

Ailoot Ultra · OpenAI Chat

json eller SSE

Behold alle færdige resultater

Gem hvert fuldstændigt returneret svar, hver fil og hver indholdsdel.

Bevar hvert valg og dets indhold, værktøjskald og ræsonnement. Saml i SSE deltaer efter valg-/værktøjsindeks, og bevar den endelige afslutningsårsag og forbrugsoplysningerne.

Hvis det oprindelige svar skal kontrolleres

Bevar anmodnings-/svar-ID’er og headere. Der leveres ingen generel URL til at hente tekstjob.

Svarfelter
FeltType
Feltchoices[].indexTypeinteger
Feltchoices[].message.contentTypestring|null
Feltchoices[].message.tool_callsTypetool_call[]
Feltchoices[].message.reasoning_contentTypestring
Feltchoices[].message.reasoning_detailsTypeobject|array
Feltchoices[].finish_reasonTypestring|null
FeltusageTypeobject
Fejl og næste trin
SvarBetingelseNæste trin
Svar400 · invalid_request_errorBetingelseUgyldige obligatoriske felter, materialerepræsentation eller parameterværdiNæste trinRet de angivne felter før en ny oprettelsesanmodning.

Aliaser

Modelaliaser

Ailoot Ultra gpt-5.4-mini, openai/gpt-5.4-mini, ~openai/gpt-mini-latest

Aliaser for metodestier

/chat/completions

Relaterede kalder-ID’er

openai/gpt-5.4-mini, ~openai/gpt-mini-latest, gpt-5.4-mini

Ailoot Ultra · Anthropic Messages POST /v1/messages openai/gpt-5.4-mini

openai/gpt-5.4-mini

OpenAI /openai/gpt-5.4-mini
Model-ID
  • gpt-5.4-mini
  • openai/gpt-5.4-mini
  • ~openai/gpt-mini-latest

Start

En kompakt GPT-5.4-udgave til programmering, computerbrug og understøttende agentarbejde med stor behandlingsvolumen. Den accepterer tekst og billeder og kan udarbejde en ændring, fortolke et screenshot af en grænseflade eller gennemføre en smallere opgave i en større arbejdsgang.

Accepterede input
Tekst
Resultater
json · sse

Tilgængelig i Ailoot · input og metoder

Ailoot Ultra · Anthropic Messages POST /v1/messages
Inputtyper
text
Outputtyper
json, sse
Outputformat
JSON eller SSE
FeltTypeKravVærdier og grænserStandard
FeltmodelTypestringKravPåkrævetVærdier og grænser
openai/gpt-5.4-mini
Standard—
FeltmessagesTypemessage[]KravPåkrævetVærdier og grænserStandard—
Feltmessages[].roleTypestringKravPåkrævetVærdier og grænser
user, assistant
Standard—
Feltmessages[].contentTypestringKravPåkrævetVærdier og grænserStandard—
Feltmax_tokensTypeintegerKravPåkrævetVærdier og grænserStandard—
FeltstreamTypebooleanKravValgfritVærdier og grænserStandardfalse
Kombinationer af inputmaterialer

Tekst · UTF-8-tekst

messages[].content som streng

Metodeparametre og livscyklus
ParameterKontrakt
Parametercontent_typeKontraktapplication/json
ParameterrequiredKontraktmodel, messages, max_tokens
Parameteroptional_controlsKontraktstream
Parametermaterial_typesKontrakttext
Parametertext_file_materialKontraktLæs det faktiske UTF-8-dokument, og indsæt teksten i det angivne input eller beskedens indholdsstreng.

Livscyklus: synchronous_or_streamed

Priser

Tarifoplysninger tilføjer ikke anmodningsmuligheder. Understøttede parametre står ved den valgte metode.

Hurtig tilstand
Standardpris Når hurtig tilstand er valgt
flex-tilstand
Standardpris Når flex-tilstanden er valgt
Maksimal ræsonneringsindsats
Standardpris Når default-justeringen anvendes ved maksimal ræsonneringsindsats
Ræsonneringsindsats · high
Standardpris Når ræsonneringsindsatsen er sat til high
Ræsonneringsindsats · low
Standardpris Når ræsonneringsindsatsen er sat til low
Ræsonneringsindsats · medium
Standardpris Når ræsonneringsindsatsen er sat til medium
Ræsonneringsindsats · none
Standardpris Når ræsonneringsindsatsen er sat til none
Ræsonneringsindsats · xhigh
Standardpris Når ræsonneringsindsatsen er sat til xhigh

Ailoot-takster

Priser efter konfiguration

Knyt hver omkostning til de viste betingelser. Brug én takst for hver gruppe af alternative konfigurationer.

KonfigurationTakstplanKonteksttokens, mere endKonteksttokens, op til og medBeløb
KonfigurationGrundtakster for tokensTakstplanGrundtakstKonteksttokens, mere end—Konteksttokens, op til og medIngen øvre grænseBeløb
Input · Inputtokens $0.0015 / 1K tokens
Output · Outputtokens $0.009 / 1K tokens
Input · Cachelæsning $0.00015 / 1K tokens
Input · Cacheskrivning $0 / 1K tokens
Input · Cacheskrivning, 1 time — / 1K tokens
KonfigurationAnmodningslængde · niveau 1Takstplan—Konteksttokens, mere end0Konteksttokens, op til og medIngen øvre grænseBeløb
Input · Inputtokens $0.0015 / 1K tokens
Output · Outputtokens $0.009 / 1K tokens
Input · Cachelæsning $0.00015 / 1K tokens
Input · Cacheskrivning $0 / 1K tokens
Input · Cacheskrivning, 1 time — / 1K tokens

Ailoot reserverer et estimeret beløb før en anmodning. Efter resultatet afregnes det endelige beløb ud fra det målte forbrug. Ved streaming bruges den endelige forbrugsregistrering til afregningen. Sådan fungerer reservation og afregning →

Eksempelanmodninger

Ailoot Ultra · Anthropic Messages

Komplet minimalt requestbody i JSONcurl · brug dit UTF-8-dokumentPython · gem hele resultatet
{
  "model": "openai/gpt-5.4-mini",
  "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': 'openai/gpt-5.4-mini', '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': 'openai/gpt-5.4-mini', '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))

Hent og gem resultater

Ailoot Ultra · Anthropic Messages

JSON eller SSE

Behold alle færdige resultater

Gem hvert fuldstændigt returneret svar, hver fil og hver indholdsdel.

Bevar alle indholdsblokke, ræsonnementssignaturer og faktiske værktøjsbrugs-ID’er. Saml alle SSE-blokdeltaer; den første tekstblok er ikke hele outputtet.

Hvis det oprindelige svar skal kontrolleres

Bevar anmodnings-/svar-ID’er og headere. Der leveres ingen generel URL til at hente tekstjob.

Svarfelter
FeltType
FeltidTypestring
FeltmodelTypestring
Feltcontent[]Typetext|thinking|tool_use|other content block
Feltstop_reasonTypestring|null
FeltusageTypeobject
Fejl og næste trin
SvarBetingelseNæste trin
Svar400 · invalid_request_errorBetingelseUgyldige obligatoriske felter, materialerepræsentation eller parameterværdiNæste trinRet de angivne felter før en ny oprettelsesanmodning.

Aliaser

Modelaliaser

Ailoot Ultra gpt-5.4-mini, openai/gpt-5.4-mini, ~openai/gpt-mini-latest

Aliaser for metodestier

/chat/completions

Relaterede kalder-ID’er

openai/gpt-5.4-mini, ~openai/gpt-mini-latest, gpt-5.4-mini

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions ~openai/gpt-mini-latest

~openai/gpt-mini-latest

OpenAI /~openai/gpt-mini-latest
Model-ID
  • gpt-5.4-mini
  • openai/gpt-5.4-mini
  • ~openai/gpt-mini-latest

Start

En kompakt GPT-5.4-udgave til programmering, computerbrug og understøttende agentarbejde med stor behandlingsvolumen. Den accepterer tekst og billeder og kan udarbejde en ændring, fortolke et screenshot af en grænseflade eller gennemføre en smallere opgave i en større arbejdsgang.

Accepterede input
Tekst
Resultater
Tekst

Tilgængelig i Ailoot · input og metoder

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
Inputtyper
text
Outputtyper
text
Outputformat
json eller SSE
FeltTypeKravVærdier og grænserStandard
FeltmodelTypestringKravPåkrævetVærdier og grænser
~openai/gpt-mini-latest
Standard—
FeltmessagesTypemessage[]KravPåkrævetVærdier og grænser
Minimumsantal elementer: 1
Standard—
Feltmessages[].roleTypestringKravPåkrævetVærdier og grænser
Eksempler: system, user, assistant, tool, function
Betingelser: Disse roller er eksplicit repræsenteret i kildekodens kompatibilitetstyper; modellens præcise rollesæt er fortsat modelspecifikt.
Afhænger af modellen
Standard—
Feltmessages[].contentTypestring|content_part[]|nullKravValgfritVærdier og grænserStandard—
Feltmessages[].tool_callsTypetool_call[]KravValgfritVærdier og grænserStandard—
Feltmessages[].tool_call_idTypestringKravValgfritVærdier og grænser
Gælder når: role=tool; brug det faktisk returnerede ID
Standard—
Feltmessages[].nameTypestringKravValgfritVærdier og grænserStandard—
Feltmessages[].reasoning_contentTypestringKravValgfritVærdier og grænser
Gælder når: Send det faktisk returnerede ræsonnement tilbage, når modellen bruger det
Standard—
Feltmessages[].reasoning_detailsTypeobject|arrayKravValgfritVærdier og grænser
Afhænger af modellen
Standard—
Feltmax_tokensTypeintegerKravValgfritVærdier og grænser
Minimum: 1
Afhænger af modellen
Standard—
Feltmax_completion_tokensTypeintegerKravValgfritVærdier og grænser
Minimum: 1
Afhænger af modellen
Standard—
FeltstreamTypebooleanKravValgfritVærdier og grænserStandardfalse
Feltstream_options.include_usageTypebooleanKravValgfritVærdier og grænser
Afhænger af modellen
Standard—
FelttemperatureTypenumberKravValgfritVærdier og grænser
Afhænger af modellen
Standard—
Felttop_pTypenumberKravValgfritVærdier og grænser
Afhænger af modellen
Standard—
FeltstopTypestring|string[]KravValgfritVærdier og grænser
Afhænger af modellen
Standard—
FelttoolsTypefunction_tool[]KravValgfritVærdier og grænser
Afhænger af modellen
Standard—
Felttools[].typeTypestringKravValgfritVærdier og grænser
function
Afhænger af modellen
Standard—
Felttools[].function.nameTypestringKravPåkrævetVærdier og grænser
Gælder når: funktionsværktøj angivet
Standard—
Felttools[].function.descriptionTypestringKravValgfritVærdier og grænserStandard—
Felttools[].function.parametersTypeJSON_schemaKravValgfritVærdier og grænserStandard—
Felttool_choiceTypestring|objectKravValgfritVærdier og grænser
Afhænger af modellen
Standard—
Feltparallel_tool_callsTypebooleanKravValgfritVærdier og grænser
Afhænger af modellen
Standard—
Feltresponse_formatTypeobjectKravValgfritVærdier og grænser
Afhænger af modellen
Standard—
Feltreasoning_effortTypestringKravValgfritVærdier og grænser
Afhænger af modellen
Standard—
FeltreasoningTypeobjectKravValgfritVærdier og grænser
Afhænger af modellen
Standard—
Feltservice_tierTypestringKravValgfritVærdier og grænser
Afhænger af modellen
Standard—
FeltinstructionsTypestringKravValgfritVærdier og grænser
Kompatibilitetsfelt
Standard—
FeltfunctionsTypefunction[]KravValgfritVærdier og grænser
Afhænger af modellen
Standard—
Feltfunction_callTypestring|objectKravValgfritVærdier og grænser
Afhænger af modellen
Standard—
Feltprompt_cache_optionsTypeobjectKravValgfritVærdier og grænser
Afhænger af modellen
Standard—
FeltmodalitiesTypestring[]KravValgfritVærdier og grænser
text
Standard—
FeltproviderTypeobjectKravValgfritVærdier og grænser
Betingelser: provider.options afvises på denne Ultra-tekstrute
Standard—
Feltcache_control.ttlTypestringKravValgfritVærdier og grænser
Betingelser: 1h afvises på de faktiske placeringer for promptcaching
Standard—
Kombinationer af inputmaterialer

Tekst · UTF8-tekst

messages[].content

Metodeparametre og livscyklus
ParameterKontrakt
Parametercontent_typeKontraktapplication/json
ParameterrequiredKontraktmodel, messages
Parametermaterial_typesKontrakttext
ParametermessagesKontraktbeskedarray med strukturen role/content
Parameterfile_materialKontraktfaktisk UTF-8-dokument indsat som bogstavelig tekst; intet fil-ID udledes
Parameteroptional_controlsKontraktstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice
Parametercontrol_scopeKontraktmodelspecifikt; brugerens funktionsværktøjer er forskellige fra hostede værktøjer
Parameteroutput_modalitiesKontrakttext
Parameterhosted_operationsKontraktfalse
Parametermultimodal_input_bindingKontraktnull

Livscyklus: synchronous_or_streamed

Send det præcise model-ID med messages.

Kontekstlængde er ikke et outputloft.

En tekstfil kan levere bogstavelig tekst; billed-, lyd- og filobjektinput kræver en præcis binding.

Priser

Tarifoplysninger tilføjer ikke anmodningsmuligheder. Understøttede parametre står ved den valgte metode.

Hurtig tilstand
Standardpris Når hurtig tilstand er valgt
flex-tilstand
Standardpris Når flex-tilstanden er valgt
Maksimal ræsonneringsindsats
Standardpris Når default-justeringen anvendes ved maksimal ræsonneringsindsats
Ræsonneringsindsats · high
Standardpris Når ræsonneringsindsatsen er sat til high
Ræsonneringsindsats · low
Standardpris Når ræsonneringsindsatsen er sat til low
Ræsonneringsindsats · medium
Standardpris Når ræsonneringsindsatsen er sat til medium
Ræsonneringsindsats · none
Standardpris Når ræsonneringsindsatsen er sat til none
Ræsonneringsindsats · xhigh
Standardpris Når ræsonneringsindsatsen er sat til xhigh

Ailoot-takster

Priser efter konfiguration

Knyt hver omkostning til de viste betingelser. Brug én takst for hver gruppe af alternative konfigurationer.

KonfigurationTakstplanKonteksttokens, mere endKonteksttokens, op til og medBeløb
KonfigurationGrundtakster for tokensTakstplanGrundtakstKonteksttokens, mere end—Konteksttokens, op til og medIngen øvre grænseBeløb
Input · Inputtokens $0.0015 / 1K tokens
Output · Outputtokens $0.009 / 1K tokens
Input · Cachelæsning $0.00015 / 1K tokens
Input · Cacheskrivning $0 / 1K tokens
Input · Cacheskrivning, 1 time — / 1K tokens
KonfigurationAnmodningslængde · niveau 1Takstplan—Konteksttokens, mere end0Konteksttokens, op til og medIngen øvre grænseBeløb
Input · Inputtokens $0.0015 / 1K tokens
Output · Outputtokens $0.009 / 1K tokens
Input · Cachelæsning $0.00015 / 1K tokens
Input · Cacheskrivning $0 / 1K tokens
Input · Cacheskrivning, 1 time — / 1K tokens

Ailoot reserverer et estimeret beløb før en anmodning. Efter resultatet afregnes det endelige beløb ud fra det målte forbrug. Ved streaming bruges den endelige forbrugsregistrering til afregningen. Sådan fungerer reservation og afregning →

Eksempelanmodninger

Ailoot Ultra · OpenAI Chat

curlPython SDKPython-stream
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "~openai/gpt-mini-latest", "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='~openai/gpt-mini-latest',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='~openai/gpt-mini-latest',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")

Hent og gem resultater

Ailoot Ultra · OpenAI Chat

json eller SSE

Behold alle færdige resultater

Gem hvert fuldstændigt returneret svar, hver fil og hver indholdsdel.

Bevar hvert valg og dets indhold, værktøjskald og ræsonnement. Saml i SSE deltaer efter valg-/værktøjsindeks, og bevar den endelige afslutningsårsag og forbrugsoplysningerne.

Hvis det oprindelige svar skal kontrolleres

Bevar anmodnings-/svar-ID’er og headere. Der leveres ingen generel URL til at hente tekstjob.

Svarfelter
FeltType
Feltchoices[].indexTypeinteger
Feltchoices[].message.contentTypestring|null
Feltchoices[].message.tool_callsTypetool_call[]
Feltchoices[].message.reasoning_contentTypestring
Feltchoices[].message.reasoning_detailsTypeobject|array
Feltchoices[].finish_reasonTypestring|null
FeltusageTypeobject
Fejl og næste trin
SvarBetingelseNæste trin
Svar400 · invalid_request_errorBetingelseUgyldige obligatoriske felter, materialerepræsentation eller parameterværdiNæste trinRet de angivne felter før en ny oprettelsesanmodning.

Aliaser

Modelaliaser

Ailoot Ultra gpt-5.4-mini, openai/gpt-5.4-mini, ~openai/gpt-mini-latest

Aliaser for metodestier

/chat/completions

Relaterede kalder-ID’er

openai/gpt-5.4-mini, ~openai/gpt-mini-latest, gpt-5.4-mini

Ailoot Ultra · Anthropic Messages POST /v1/messages ~openai/gpt-mini-latest

~openai/gpt-mini-latest

OpenAI /~openai/gpt-mini-latest
Model-ID
  • gpt-5.4-mini
  • openai/gpt-5.4-mini
  • ~openai/gpt-mini-latest

Start

En kompakt GPT-5.4-udgave til programmering, computerbrug og understøttende agentarbejde med stor behandlingsvolumen. Den accepterer tekst og billeder og kan udarbejde en ændring, fortolke et screenshot af en grænseflade eller gennemføre en smallere opgave i en større arbejdsgang.

Accepterede input
Tekst
Resultater
json · sse

Tilgængelig i Ailoot · input og metoder

Ailoot Ultra · Anthropic Messages POST /v1/messages
Inputtyper
text
Outputtyper
json, sse
Outputformat
JSON eller SSE
FeltTypeKravVærdier og grænserStandard
FeltmodelTypestringKravPåkrævetVærdier og grænser
~openai/gpt-mini-latest
Standard—
FeltmessagesTypemessage[]KravPåkrævetVærdier og grænserStandard—
Feltmessages[].roleTypestringKravPåkrævetVærdier og grænser
user, assistant
Standard—
Feltmessages[].contentTypestringKravPåkrævetVærdier og grænserStandard—
Feltmax_tokensTypeintegerKravPåkrævetVærdier og grænserStandard—
FeltstreamTypebooleanKravValgfritVærdier og grænserStandardfalse
Kombinationer af inputmaterialer

Tekst · UTF-8-tekst

messages[].content som streng

Metodeparametre og livscyklus
ParameterKontrakt
Parametercontent_typeKontraktapplication/json
ParameterrequiredKontraktmodel, messages, max_tokens
Parameteroptional_controlsKontraktstream
Parametermaterial_typesKontrakttext
Parametertext_file_materialKontraktLæs det faktiske UTF-8-dokument, og indsæt teksten i det angivne input eller beskedens indholdsstreng.

Livscyklus: synchronous_or_streamed

Priser

Tarifoplysninger tilføjer ikke anmodningsmuligheder. Understøttede parametre står ved den valgte metode.

Hurtig tilstand
Standardpris Når hurtig tilstand er valgt
flex-tilstand
Standardpris Når flex-tilstanden er valgt
Maksimal ræsonneringsindsats
Standardpris Når default-justeringen anvendes ved maksimal ræsonneringsindsats
Ræsonneringsindsats · high
Standardpris Når ræsonneringsindsatsen er sat til high
Ræsonneringsindsats · low
Standardpris Når ræsonneringsindsatsen er sat til low
Ræsonneringsindsats · medium
Standardpris Når ræsonneringsindsatsen er sat til medium
Ræsonneringsindsats · none
Standardpris Når ræsonneringsindsatsen er sat til none
Ræsonneringsindsats · xhigh
Standardpris Når ræsonneringsindsatsen er sat til xhigh

Ailoot-takster

Priser efter konfiguration

Knyt hver omkostning til de viste betingelser. Brug én takst for hver gruppe af alternative konfigurationer.

KonfigurationTakstplanKonteksttokens, mere endKonteksttokens, op til og medBeløb
KonfigurationGrundtakster for tokensTakstplanGrundtakstKonteksttokens, mere end—Konteksttokens, op til og medIngen øvre grænseBeløb
Input · Inputtokens $0.0015 / 1K tokens
Output · Outputtokens $0.009 / 1K tokens
Input · Cachelæsning $0.00015 / 1K tokens
Input · Cacheskrivning $0 / 1K tokens
Input · Cacheskrivning, 1 time — / 1K tokens
KonfigurationAnmodningslængde · niveau 1Takstplan—Konteksttokens, mere end0Konteksttokens, op til og medIngen øvre grænseBeløb
Input · Inputtokens $0.0015 / 1K tokens
Output · Outputtokens $0.009 / 1K tokens
Input · Cachelæsning $0.00015 / 1K tokens
Input · Cacheskrivning $0 / 1K tokens
Input · Cacheskrivning, 1 time — / 1K tokens

Ailoot reserverer et estimeret beløb før en anmodning. Efter resultatet afregnes det endelige beløb ud fra det målte forbrug. Ved streaming bruges den endelige forbrugsregistrering til afregningen. Sådan fungerer reservation og afregning →

Eksempelanmodninger

Ailoot Ultra · Anthropic Messages

Komplet minimalt requestbody i JSONcurl · brug dit UTF-8-dokumentPython · gem hele resultatet
{
  "model": "~openai/gpt-mini-latest",
  "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': '~openai/gpt-mini-latest', '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': '~openai/gpt-mini-latest', '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))

Hent og gem resultater

Ailoot Ultra · Anthropic Messages

JSON eller SSE

Behold alle færdige resultater

Gem hvert fuldstændigt returneret svar, hver fil og hver indholdsdel.

Bevar alle indholdsblokke, ræsonnementssignaturer og faktiske værktøjsbrugs-ID’er. Saml alle SSE-blokdeltaer; den første tekstblok er ikke hele outputtet.

Hvis det oprindelige svar skal kontrolleres

Bevar anmodnings-/svar-ID’er og headere. Der leveres ingen generel URL til at hente tekstjob.

Svarfelter
FeltType
FeltidTypestring
FeltmodelTypestring
Feltcontent[]Typetext|thinking|tool_use|other content block
Feltstop_reasonTypestring|null
FeltusageTypeobject
Fejl og næste trin
SvarBetingelseNæste trin
Svar400 · invalid_request_errorBetingelseUgyldige obligatoriske felter, materialerepræsentation eller parameterværdiNæste trinRet de angivne felter før en ny oprettelsesanmodning.

Aliaser

Modelaliaser

Ailoot Ultra gpt-5.4-mini, openai/gpt-5.4-mini, ~openai/gpt-mini-latest

Aliaser for metodestier

/chat/completions

Relaterede kalder-ID’er

openai/gpt-5.4-mini, ~openai/gpt-mini-latest, gpt-5.4-mini

FAQ · OpenAI: GPT-5.4 Mini
Hvilke input og resultater er tilgængelige?

POST /v1/chat/completions · gpt-5.4-mini: text → text

POST /v1/messages · gpt-5.4-mini: text → json, sse

POST /v1/chat/completions · openai/gpt-5.4-mini: text → text

POST /v1/messages · openai/gpt-5.4-mini: text → json, sse

POST /v1/chat/completions · ~openai/gpt-mini-latest: text → text

POST /v1/messages · ~openai/gpt-mini-latest: text → json, sse

Hvilke felter bruger anmodningen?

POST /v1/chat/completions · gpt-5.4-mini: model, messages, stream

POST /v1/messages · gpt-5.4-mini: model, messages, max_tokens, stream

POST /v1/chat/completions · openai/gpt-5.4-mini: model, messages, stream, modalities, provider

POST /v1/messages · openai/gpt-5.4-mini: model, messages, max_tokens, stream

POST /v1/chat/completions · ~openai/gpt-mini-latest: model, messages, stream, modalities, provider

POST /v1/messages · ~openai/gpt-mini-latest: model, messages, max_tokens, stream

Hvilke grænser gælder?

POST /v1/chat/completions · gpt-5.4-mini: messages.min_items: 1

POST /v1/chat/completions · openai/gpt-5.4-mini: messages.min_items: 1

POST /v1/chat/completions · ~openai/gpt-mini-latest: messages.min_items: 1

Flere oplysninger

Tilslut Ailoot til Claude Code, OpenCode, Hermes eller din egen applikation.

Virksomheden og dens projektportefølje

Virksomheden og dens projektportefølje: millioner af kunder; månedligt salg for milliarder.

Køb tokens med rabat.

Abonnementsrabat til regelmæssigt arbejde. Rabatkoder giver op til 50% på tokenkøb.

Abonnement
Vælg et abonnement med rabat til dine regelmæssige anmodninger.
Rabatkode på op til 50%
Indtast koden ved købet. Prisen genberegnes efter den aktuelle kampagne.
Udgifter i historikken
Model, tokens og beløb gemmes for hver anmodning.

Vælg abonnement · Se modelpriser

Tilslut API’et til produktet, du sælger.

SaaS, apps og bots efter Ailoots tilbudsvilkår og licensaftale. Anmod om en forhandlerlicens til videresalg.

Kommerciel applikation
Byg generering af tekst, billeder, video og lyd ind i tjenestens betalte funktioner.
Licens til forhandlere
Send projektbeskrivelse og adgangsmodel. Bed om skriftlige vilkår for anvendelse og videresalg.
Dokumenter på websitet
Tilbudsvilkår, licensaftale og politik for behandling af data kan læses før tilslutning.

Anmod om forhandlerlicens · Tilbudsvilkår og licensaftale