Kaip tai veikia
MarkdownKas vyksta su užklausa tarp jūsų programos ir modelio.
Visas vadovas
Užklausą į Ailoot API siunčiate taip pat, kaip siųstumėte tiesiogiai į OpenAI, Anthropic ar Google. Ailoot patikrina raktą ir balansą, perduoda užklausą modeliui, grąžina atsakymą tuo pačiu formatu ir nurašo lėšas pagal faktinį naudojimą.
Vienas raktas — trys formatai
Formatą lemia užklausos kelias, o ne modelis. Tą patį Claude modelį galima iškviesti per OpenAI Chat, OpenAI Responses arba Anthropic Messages — atsakymas bus pateiktas iškviesto kelio formatu.
| Formatas | Kelias | Kas jį naudoja |
|---|---|---|
| OpenAI Chat Completions | /v1/chat/completions | OpenAI SDK, dauguma pokalbių programų ir redaktorių, n8n, LangChain |
| OpenAI Responses | /v1/responses | Codex CLI, OpenAI Agents SDK, naujos SDK versijos |
| Anthropic Messages | /v1/messages | Claude Code, Anthropic SDK, Zed, Cline |
| Gemini | /v1beta/models/{model}:generateContent | Gemini CLI, Google GenAI SDK |
Lėšos: rezervas ir vienas nurašymas
- Prieš siųsdama naują tekstinę užklausą Ailoot rezervuoja įvesties ir tipinio atsakymo įvertį, atsižvelgdama į limitą (
max_tokens) ir konkretaus modelio sąlygas. Jei rezervas netelpa į laisvą balansą ar rakto limitą, siunčiamą limitą galima mažinti tik tada, kai modelis ir metodas jo iš tiesų laikosi, tačiau ne žemiau 256 žetonų ir nustatyto atsakymo minimumo. Vaizdų, vaizdo įrašų ir garso išvesčiai išlaikomas visas rezultato kainos rezervas. - Gavus atsakymą — vienas nurašymas pagal faktinį naudojimą. Nepanaudotas rezervas iškart grąžinamas į balansą.
- Jei atsakymas brangesnis už rezervą, skirtumas padengiamas iš laisvo balanso. Balansas niekada netampa neigiamas.
- Jei lėšų nepakanka net minimaliam rezervui, užklausa nesiunčiama: gausite aiškią 402 klaidą, nieko nenurašoma.
- Klaida, po kurios nėra rezultato, neapmokestinama.
Išsami informacija ir skaičiavimo pavyzdys pateikti puslapyje Rezervavimas ir nurašymas.
Klaidos su Request ID
Kiekvienas atsakymas gauna užklausos identifikatorių: antraštėje X-Request-ID ir klaidos tekste. Klaidos pateikiamos iškviesto formato JSON, todėl SDK jas atpažįsta teisingai. Jei kas nors nepavyko, atsiųskite Request ID į pagalbos tarnybą — taip užklausą rasime per minutę.
{
"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. …"
}Srautas ir laukimo laikas
Srautiniai atsakymai (stream: true) pateikiami kaip Server-Sent Events. Mokamą tekstinį atsakymą Ailoot pateikia apskaičiavusi kainą. Todėl su stream: true formatas lieka srautinis (SSE), tačiau tekstas pateikiamas vienu bloku modeliui baigus, o ne po žodį. Jei atsakymas ruošiamas ilgiau nei maždaug 15 sekundžių, Chat Completions, Responses ir Messages srautuose pirmiausia siunčiamos tarnybinės eilutės : ping (maždaug kas 10 sekundžių), tada eilutė : ailoot-charged-usd … su nurašymo suma ir patys duomenys. SDK tokias eilutes praleidžia.
Gemini formatu tarnybinių eilučių nėra: atsakymas :streamGenerateContent pateikiamas visas apskaičiavus kainą. Samprotavimo modeliams nustatykite pakankamai ilgą kliento laukimo laiką: kelios minutės yra įprasta.
Atsakymo antraštės
X-Request-ID pateikiamas kiekviename atsakyme. Kitas antraštes Ailoot prideda prie apmokėtų tekstinių atsakymų:
| Antraštė | Kas joje |
|---|---|
X-Request-ID | Užklausos identifikatorius — jo prašo pagalbos tarnyba |
X-Ailoot-Charged-USD | Kiek doleriais nurašyta už šią užklausą |
X-Ailoot-Output-Tokens | Kiek atsakymo žetonų apmokėta |
X-Ailoot-Max-Tokens-Capped | Atsakymo limitas, iki kurio jis sumažintas, nes balanso nepakako visam rezervui |
X-Ailoot-Notice-Code, X-Ailoot-Notice | Paaiškinimas, jei atsakymas sustojo pasiekęs ilgio limitą |
Jei srautas jau prasidėjo tarnybinėmis eilutėmis, ši informacija pateikiama komentaro eilute prieš duomenis, o ne antrašte.
Užklausų podėlis
Jei modelis palaiko podėlį, pakartotinai siunčiamas ilgas prefiksas (sistemos instrukcija, dokumentai) gali kainuoti mažiau. Skaitymo iš podėlio ir įrašymo į jį kainos pateiktos modelio kortelėje kataloge. Patekimą į podėlį nustato modelio kūrėjas, Ailoot jo negarantuoja.