Slik fungerer det
MarkdownHva som skjer med forespørselen mellom programmet ditt og modellen.
Fullstendig guide
Du sender en forespørsel til Ailoot API på samme måte som direkte til OpenAI, Anthropic eller Google. Ailoot kontrollerer nøkkel og saldo, sender forespørselen videre til modellen, returnerer svaret i samme format og belaster etter faktisk forbruk.
Én nøkkel — tre formater
Formatet bestemmes av forespørselens endepunkt, ikke av modellen. Den samme Claude-modellen kan kalles via OpenAI Chat, OpenAI Responses eller Anthropic Messages — svaret kommer i formatet til endepunktet du kalte.
| Format | Endepunkt | Hvem som bruker det |
|---|---|---|
| OpenAI Chat Completions | /v1/chat/completions | OpenAI SDK, de fleste chatter og redigeringsverktøy, n8n, LangChain |
| OpenAI Responses | /v1/responses | Codex CLI, OpenAI Agents SDK, nye SDK-versjoner |
| Anthropic Messages | /v1/messages | Claude Code, Anthropic SDK, Zed, Cline |
| Gemini | /v1beta/models/{model}:generateContent | Gemini CLI, Google GenAI SDK |
Økonomi: reservasjon og én belastning
- Før en ny tekstforespørsel sendes, reserverer Ailoot et beløp basert på anslått inndata og et typisk svar, med hensyn til grensen (
max_tokens) og vilkårene for den konkrete modellen. Hvis reservasjonen ikke dekkes av fri saldo eller nøkkelgrensen, kan grensen som sendes til modellen bare reduseres for en modell og metode som faktisk følger den, og aldri under 256 tokener eller et høyere, fastsatt svarminimum. For bilder, video og lyd som utdata beholdes full reservasjon for resultatkostnaden. - Etter svaret — én belastning etter faktisk forbruk. Ubrukt reservasjon frigjøres til saldoen umiddelbart.
- Hvis svaret koster mer enn reservasjonen, tas differansen fra tilgjengelig saldo. Saldoen blir aldri negativ.
- Hvis saldoen ikke engang dekker minimumsreservasjonen, sendes ikke forespørselen: du får en forståelig feil 402, og ingenting belastes.
- Feil uten resultat belastes ikke.
Detaljer og et beregningseksempel finnes på siden Reservasjon og belastning.
Feil med Request ID
Hvert svar får en forespørselsidentifikator: i headeren X-Request-ID og i feilmeldingen. Feil returneres i JSON-formatet du kalte, slik at SDK-ene gjenkjenner dem riktig. Hvis noe går galt, sender du Request ID til brukerstøtte — slik finner vi forespørselen på ett minutt.
{
"code": "API_KEY_REQUIRED",
"error": {
"code": "invalid_api_key",
"message": "No API key was sent with the request. Nothing was charged. Please check that the full key is sent in the Authorization header as \"Bearer <key>\". Request ID: 3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6.",
"param": null,
"reason": "invalid_api_key",
"request_id": "3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6",
"type": "invalid_request_error"
},
"message": "No API key was sent with the request. Nothing was charged. …"
}Strømming og tidsgrenser
Strømmede svar (stream: true) leveres som Server-Sent Events. Ailoot leverer betalte tekstsvar etter at kostnaden er beregnet. Med stream: true er formatet derfor fortsatt strømmet (SSE), men teksten kommer som én blokk når modellen er ferdig, ikke ord for ord. Hvis svaret tar mer enn omtrent 15 sekunder, begynner Chat Completions-, Responses- og Messages-strømmer med kontrollinjene : ping (omtrent hvert 10. sekund), deretter linjen : ailoot-charged-usd … med belastningsbeløpet og selve dataene. SDK-ene ignorerer slike linjer.
Gemini-formatet har ingen kontrollinjer: svaret :streamGenerateContent leveres i sin helhet etter beregningen. Gi klienten god tidsmargin for resonnerende modeller: flere minutter er normalt.
Svarheadere
X-Request-ID kommer i hvert svar. Ailoot legger de andre headerne til betalte tekstsvar:
| Header | Hva den inneholder |
|---|---|
X-Request-ID | Forespørselsidentifikator — denne ber brukerstøtte om |
X-Ailoot-Charged-USD | Beløpet som er belastet for denne forespørselen, i dollar |
X-Ailoot-Output-Tokens | Antall svartokener som er betalt |
X-Ailoot-Max-Tokens-Capped | Den nye, reduserte svargrensen, satt fordi saldoen ikke dekket hele reservasjonen |
X-Ailoot-Notice-Code, X-Ailoot-Notice | Forklaring hvis svaret stoppet ved lengdegrensen |
Hvis strømmen allerede har begynt med kontrollinjer, kommer disse opplysningene som en kommentarlinje før dataene, ikke som en header.
Prompt-cache
Hvis modellen støtter caching, kan et langt prefiks som sendes på nytt (systeminstruksjon, dokumenter) koste mindre. Prisene for lesing og skriving til cache vises på modellens oppføring i katalogen. Modellutvikleren avgjør om forespørselen treffer cachen; Ailoot garanterer det ikke.