dokumentacija
Pomoč

Napake in omejitve

Markdown

Kode odgovorov, njihov pomen in kako ukrepati. Vse napake so v JSON in vsebujejo Request ID.

Celoten vodnik

Format napake

Napaka prispe v formatu API-ja, ki ste ga poklicali: objekt error pri OpenAI, {"type": "error", "error": {...}} pri Anthropic in error s poljema status in details pri Gemini. Zato jih SDK prepoznajo kot običajne napake API-ja.

  • error.code in error.reason – razred napake iz spodnje tabele; vrednosti se ujemata. error.type – standardna vrednost formata (na primer, invalid_request_error ali server_error).
  • error.request_id (pri Anthropic – request_id na najvišji ravni), glava X-Request-ID in konec besedila sporočila – identifikator zahteve.
  • Pri Gemini je razred v error.details: ErrorInfo.reason – ista koda z velikimi črkami (na primer, MODEL_OVERLOADED), domain – ailoot.ai; identifikator zahteve je v RequestInfo.requestId.
  • Pri formatu Gemini napaka 5xx, ki je ni dovoljeno samodejno ponoviti, in result_pending_check prispeta s statusom 409 in status ABORTED: tako ju Gemini SDK in CLI ne ponovita sama. Razred napake je v ErrorInfo.reason (na primer, MODEL_TIMEOUT ali RESULT_PENDING_CHECK).
  • Odgovor v formatu OpenAI vsebuje še polji na najvišji ravni code in message – za starejše odjemalce.
{
  "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. …"
}

Kode napak

HTTPRazred (reason)Kaj se je zgodiloKaj storiti
400invalid_requestZahteva je neveljavna: napačno telo ali parameter; model ne podpira polja, priloge ali orodja iz zahteve; ključ je poslan v naslovu Zahtevo popravite glede na besedilo napake: odstranite nepodprto polje, prilogo ali orodje; ključ pošljite v glavi. Zavrnitev zaradi nepodprtega polja, priloge ali orodja se zgodi pred rezervacijo – nič ni bremenjeno
400context_length_exceededZahteva presega kontekst modelaSkrajšajte zgodovino ali izberite model z večjim kontekstom
400content_policy_violationZahteva je zavrnjena zaradi pravil modelaPreoblikujte zahtevo
401invalid_api_keyKljuč manjka ali je napačenPreverite, ali je ključ poslan v celoti
401api_key_disabledKljuč je izklopljenVklopite ključ ali ustvarite novega
402insufficient_balance, insufficient_quotaProstih sredstev ni dovolj niti za najmanjšo rezervacijo (insufficient_quota – isti primer v obliki, ki jo običajno uporablja OpenAI SDK)Dodajte sredstva ali znižajte max_tokens
402api_key_quota_exhaustedSkupna omejitev porabe ključa je izčrpanaNa nadzorni plošči zvišajte omejitev ključa
402payment_disputedNa računu je dolg zaradi izpodbijanega plačilaNove zahteve so začasno ustavljene do poravnave – pišite podpori
403api_key_expiredVeljavnost ključa je poteklaUstvarite nov ključ
403account_inactiveVaš račun je izklopljenPišite podpori
403permission_deniedTa zahteva s ključem ni dovoljena (na primer zaradi IP)Preverite omejitve ključa
404model_not_foundTakšen model ne obstajaID primerjajte z /v1/models
404unsupported_endpointModel ne deluje v tem formatuIzberite drug format ali model
404not_foundTakšna pot ali objekt (na primer opravilo) ne obstajaPreverite naslov in identifikator
409duplicate_requestOperacija z istim ključem idempotentnosti je že sprejeta in morda tudi končanaPreverite rezultat prve operacije; nove ne pošiljajte
409not_ready, video_not_readyVideo ali drugo opravilo še ni pripravljenoStanje zahtevajte pozneje
409, 503result_pending_checkPreverjamo rezultat zahteve. Pri videoopravilu je to zastavica result_pending_check: true v odgovoru o stanju; samo opravilo ostane in_progressZahteve ne pošljite ponovno – stanje bo prikazano v zgodovini (GET https://ailoot.ai/api/v1/usage). Videoopravila ne ustvarjajte ponovno: pozneje ga preverite prek GET /v1/videos/{id}
410model_retiredModel ni več v uporabiNovo različico izberite v GET /v1/models
413request_too_largeTelo zahteve je prevelikoZmanjšajte datoteke ali skrajšajte zgodovino
429rate_limit_exceeded, gateway_concurrency_limit, gateway_queue_fullPreveč zahtev ali sočasnih zahtev z vašega računaPočakajte (glava Retry-After, običajno 10 s) in ponovite
429usage_limit_reachedČasovno okno porabe ključa je izčrpano (5 ur, 1 dan ali 7 dni)Počakajte, da se okno obnovi, ali zvišajte omejitev ključa
500internal_errorNapaka AilootPišite podpori z Request ID
502invalid_model_response, empty_response, incomplete_responseModel je vrnil neveljaven, prazen ali nepopoln odgovorPoiščite Request ID v zgodovini uporabniškega računa. Če je tam rezultat ali obremenitev, bo ponovitev ustvarila drugo plačljivo zahtevo. Odsotnost zapisa ne potrjuje, da zahteva ni bila poslana ali izvedena: ne ponavljajte pošiljanja z neznanim stanjem; obrnite se na podporo in navedite Request ID.
502result_not_deliveredRezultat ni dostavljen po krivdi Ailoot; rezervacija je sproščena ali je bremenitev povrnjenaZahtevo lahko pošljete ponovno
503model_overloadedModel je začasno preobremenjenČe je X-Should-Retry: true – ponovite po številu sekund, navedenem v Retry-After; če je false – najprej preverite Request ID v zgodovini
503model_unavailableModel je začasno nedostopenIzberite drug model. Če je X-Should-Retry: true – ponovite po številu sekund, navedenem v Retry-After; če je false – najprej preverite Request ID v zgodovini
503service_unavailableZačasna napaka na strani AilootČe je X-Should-Retry: true – ponovite po številu sekund, navedenem v Retry-After; če je false – najprej preverite Request ID v zgodovini
503charge_not_confirmedOdgovor ni izdan: bremenitve ni bilo mogoče potrditi; rezervacija je sproščena, sredstva niso bremenjenaČe je X-Should-Retry: true – ponovite po številu sekund, navedenem v Retry-After; če je false – najprej preverite Request ID v zgodovini
504model_timeoutModel ni odgovoril pravočasno; rezultat se lahko še pojaviZahteve ne pošljite ponovno, dokler ne preverite Request ID v zgodovini

Kode za odgovore modela in preverjanje rezultata (502, 503 in 504) zdaj poimenujejo model ali zahtevo: model_unavailable, model_timeout, invalid_model_response, incomplete_response, charge_not_confirmed in result_pending_check. Če vaša koda primerja error.code s prejšnjimi vrednostmi, jih zamenjajte s kodami iz tabele; pri povezovanju starih kod z novimi vam pomaga podpora.

Kdaj ponoviti zahtevo

  • Najprej preverite X-Should-Retry: pri false, result_pending_check ali model_timeout ne ponavljajte samodejno. Poiščite Request ID v zgodovini nadzorne plošče: tam sta prikazana rezultat in bremenitev.
  • Ponovitev je varna, ko prejmete X-Should-Retry: true: počakajte Retry-After sekund. Pri 5xx sama koda ni dovolj: rezultat se je morda že pojavil. Najprej preverite zgodovino na nadzorni plošči ali pišite podpori z Request ID. To je posebej pomembno pri slikah, videu, glasbi in dolgih korakih agentov.
  • Ponovitev ne pomaga: 400, 401, 402, 403, 404 – najprej popravite zahtevo, ključ ali stanje.

Omejitve

Pogostost in število sočasnih zahtev sta omejena za celotni račun, ne za posamezni ključ. Ob prekoračitvi prejmete 429 rate_limit_exceeded z glavo Retry-After: 10. Če je preobremenjen sam model – 503 model_overloaded z Retry-After: 30. Če potrebujete večjo obremenitev, pišite podpori.

Omejitve porabe se določijo pri ključu: skupna omejitev – 402 api_key_quota_exhausted, okna 5 ur, 1 dan in 7 dni – 429 usage_limit_reached. Več informacij – Ključi in naslov API-ja.

Modeli NVIDIA: čakalna vrsta

Seznam modelov lahko zahtevate tudi pri ničelnem stanju; za generiranje potrebujete sredstva za rezervacijo. Modeli NVIDIA (Nemotron in drugi) delujejo prek skupne čakalne vrste: pri visoki obremenitvi odgovor lahko prispe pozneje ali prejmete napako »model je začasno preobremenjen« z glavo Retry-After – ponovite po navedenem času. Cene so v katalogu, bremenitev pa poteka enako kot pri drugih modelih.

Omejitve velikosti določa model: kontekst (koliko žetonov lahko pošljete) in največja dolžina odgovora. Navedene so v katalogu.

Zgodovina in stroški

Zgodovina in stroški · GET https://ailoot.ai/api/v1/usage · JWT · Authorization: Bearer $TOKEN

JWT ≠ sk-… · Prijava in seje

Imate še vprašanja? Pošljite Request ID in opis – pomagali vam bomo razjasniti težavo.Pišite podpori