Napake in omejitve
MarkdownKode 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.codeinerror.reason– razred napake iz spodnje tabele; vrednosti se ujemata.error.type– standardna vrednost formata (na primer,invalid_request_erroraliserver_error).error.request_id(pri Anthropic –request_idna najvišji ravni), glavaX-Request-IDin 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 vRequestInfo.requestId. - Pri formatu Gemini napaka 5xx, ki je ni dovoljeno samodejno ponoviti, in
result_pending_checkprispeta s statusom 409 instatusABORTED: tako ju Gemini SDK in CLI ne ponovita sama. Razred napake je vErrorInfo.reason(na primer,MODEL_TIMEOUTaliRESULT_PENDING_CHECK). - Odgovor v formatu OpenAI vsebuje še polji na najvišji ravni
codeinmessage– 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. …"
}{
"type": "error",
"error": {
"type": "authentication_error",
"code": "invalid_api_key",
"reason": "invalid_api_key",
"message": "… Nothing was charged. … Request ID: 94ed3e31-4373-41ce-bf8a-0d1ed3f7235e."
},
"request_id": "94ed3e31-4373-41ce-bf8a-0d1ed3f7235e"
}{
"error": {
"code": 401,
"status": "UNAUTHENTICATED",
"message": "The API key is not valid. Nothing was charged. … Request ID: e7aa743b-9d0d-4064-b206-2562609f545b.",
"details": [
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"reason": "INVALID_API_KEY",
"domain": "ailoot.ai",
"metadata": {
"code": "invalid_api_key",
"reason": "invalid_api_key",
"request_id": "e7aa743b-9d0d-4064-b206-2562609f545b"
}
},
{
"@type": "type.googleapis.com/google.rpc.RequestInfo",
"requestId": "e7aa743b-9d0d-4064-b206-2562609f545b"
}
]
}
}Kode napak
| HTTP | Razred (reason) | Kaj se je zgodilo | Kaj storiti |
|---|---|---|---|
| 400 | invalid_request | Zahteva 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 |
| 400 | context_length_exceeded | Zahteva presega kontekst modela | Skrajšajte zgodovino ali izberite model z večjim kontekstom |
| 400 | content_policy_violation | Zahteva je zavrnjena zaradi pravil modela | Preoblikujte zahtevo |
| 401 | invalid_api_key | Ključ manjka ali je napačen | Preverite, ali je ključ poslan v celoti |
| 401 | api_key_disabled | Ključ je izklopljen | Vklopite ključ ali ustvarite novega |
| 402 | insufficient_balance, insufficient_quota | Prostih 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 |
| 402 | api_key_quota_exhausted | Skupna omejitev porabe ključa je izčrpana | Na nadzorni plošči zvišajte omejitev ključa |
| 402 | payment_disputed | Na računu je dolg zaradi izpodbijanega plačila | Nove zahteve so začasno ustavljene do poravnave – pišite podpori |
| 403 | api_key_expired | Veljavnost ključa je potekla | Ustvarite nov ključ |
| 403 | account_inactive | Vaš račun je izklopljen | Pišite podpori |
| 403 | permission_denied | Ta zahteva s ključem ni dovoljena (na primer zaradi IP) | Preverite omejitve ključa |
| 404 | model_not_found | Takšen model ne obstaja | ID primerjajte z /v1/models |
| 404 | unsupported_endpoint | Model ne deluje v tem formatu | Izberite drug format ali model |
| 404 | not_found | Takšna pot ali objekt (na primer opravilo) ne obstaja | Preverite naslov in identifikator |
| 409 | duplicate_request | Operacija z istim ključem idempotentnosti je že sprejeta in morda tudi končana | Preverite rezultat prve operacije; nove ne pošiljajte |
| 409 | not_ready, video_not_ready | Video ali drugo opravilo še ni pripravljeno | Stanje zahtevajte pozneje |
| 409, 503 | result_pending_check | Preverjamo rezultat zahteve. Pri videoopravilu je to zastavica result_pending_check: true v odgovoru o stanju; samo opravilo ostane in_progress | Zahteve 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} |
| 410 | model_retired | Model ni več v uporabi | Novo različico izberite v GET /v1/models |
| 413 | request_too_large | Telo zahteve je preveliko | Zmanjšajte datoteke ali skrajšajte zgodovino |
| 429 | rate_limit_exceeded, gateway_concurrency_limit, gateway_queue_full | Preveč zahtev ali sočasnih zahtev z vašega računa | Počakajte (glava Retry-After, običajno 10 s) in ponovite |
| 429 | usage_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 |
| 500 | internal_error | Napaka Ailoot | Pišite podpori z Request ID |
| 502 | invalid_model_response, empty_response, incomplete_response | Model je vrnil neveljaven, prazen ali nepopoln odgovor | Poišč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. |
| 502 | result_not_delivered | Rezultat ni dostavljen po krivdi Ailoot; rezervacija je sproščena ali je bremenitev povrnjena | Zahtevo lahko pošljete ponovno |
| 503 | model_overloaded | Model 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 |
| 503 | model_unavailable | Model je začasno nedostopen | Izberite 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 |
| 503 | service_unavailable | Zač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 |
| 503 | charge_not_confirmed | Odgovor 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 |
| 504 | model_timeout | Model ni odgovoril pravočasno; rezultat se lahko še pojavi | Zahteve 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_checkalimodel_timeoutne 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-Aftersekund. 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