Hibák és korlátok
MarkdownVálaszkódok, jelentésük és a teendők. Minden hiba JSON-ban, Request ID-val érkezik.
Teljes útmutató
Hibaformátum
A hiba a meghívott API formátumában érkezik: az error objektum OpenAI esetén, a {"type": "error", "error": {...}} Anthropic esetén, az error objektum a status és details mezőkkel Gemini esetén. Ezért az SDK-k szokásos API-hibaként ismerik fel őket.
error.codeéserror.reason— az alábbi táblázat szerinti hibaosztály; a két érték megegyezik.error.type— a formátum szabványos értéke (példáulinvalid_request_errorvagyserver_error).error.request_id(Anthropic esetén arequest_idlegfelső szinten), aX-Request-IDfejléc és az üzenetszöveg vége — a kérés azonosítója.- Gemini esetén az osztály ebben található:
error.details:ErrorInfo.reason— ugyanaz a kód nagybetűkkel (példáulMODEL_OVERLOADED),domain—ailoot.ai; a kérés azonosítója pedig ebben:RequestInfo.requestId. - Gemini formátumban az automatikusan nem ismételhető 5xx hiba és a
result_pending_check409-es státusszal ésstatusABORTEDértékkel érkezik: így a Gemini SDK és CLI nem ismétli meg őket automatikusan. A hibaosztály ebben található:ErrorInfo.reason(példáulMODEL_TIMEOUTvagyRESULT_PENDING_CHECK). - Az OpenAI formátumú válaszban további legfelső szintű mezők is szerepelnek:
codeésmessage— a régebbi kliensek számára.
{
"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"
}
]
}
}Hibakódok
| HTTP | Osztály (reason) | Mi történt? | Teendő |
|---|---|---|---|
| 400 | invalid_request | Hibás kérés: érvénytelen törzs vagy paraméter; a modell nem támogatja a kérés egyik mezőjét, mellékletét vagy eszközét; a kulcs az URL-ben szerepel | Javítsa a kérést a hiba szövege alapján: távolítsa el a nem támogatott mezőt, mellékletet vagy eszközt; a kulcsot fejlécben adja meg. A nem támogatott mező, melléklet vagy eszköz miatti elutasítás a zárolás előtt történik — terhelés nincs |
| 400 | context_length_exceeded | A kérés hosszabb a modell kontextusánál | Rövidítse az előzményeket, vagy válasszon nagyobb kontextusú modellt |
| 400 | content_policy_violation | A kérést a modell szabályai elutasították | Fogalmazza át a kérést |
| 401 | invalid_api_key | A kulcs hiányzik vagy hibás | Ellenőrizze, hogy a teljes kulcsot küldi-e el |
| 401 | api_key_disabled | A kulcs le van tiltva | Engedélyezze a kulcsot, vagy hozzon létre újat |
| 402 | insufficient_balance, insufficient_quota | A szabad egyenleg még a minimális zárolást sem fedezi (insufficient_quota — ugyanez az eset az OpenAI SDK számára szokásos formában) | Töltse fel az egyenleget, vagy csökkentse a max_tokens értékét |
| 402 | api_key_quota_exhausted | A kulcs teljes költési kerete kimerült | Növelje a kulcs korlátját a fiókban |
| 402 | payment_disputed | A fiókon vitatott fizetésből származó tartozás van | Az új kérések a tartozás rendezéséig szünetelnek — írjon a támogatásnak |
| 403 | api_key_expired | A kulcs érvényessége lejárt | Hozzon létre új kulcsot |
| 403 | account_inactive | A fiókja le van tiltva | Írjon a támogatásnak |
| 403 | permission_denied | A kulcs számára ez a kérés tiltott (például IP alapján) | Ellenőrizze a kulcs korlátozásait |
| 404 | model_not_found | Nincs ilyen modell | Vesse össze az azonosítót a /v1/models listájával |
| 404 | unsupported_endpoint | A modell nem működik ebben a formátumban | Válasszon másik formátumot vagy modellt |
| 404 | not_found | Nincs ilyen útvonal vagy objektum (például feladat) | Ellenőrizze a címet és az azonosítót |
| 409 | duplicate_request | Az azonos idempotenciakulcsú műveletet már elfogadtuk, és esetleg be is fejeződött | Ellenőrizze az első művelet eredményét, ne küldjön újabbat |
| 409 | not_ready, video_not_ready | A videó vagy más feladat még nem készült el | Kérje le később az állapotot |
| 409, 503 | result_pending_check | A kérés eredményét tisztázzuk. Videófeladatnál ezt a result_pending_check: true jelző mutatja az állapotválaszban, maga a feladat továbbra is in_progress | Ne küldje újra a kérést — az állapot megjelenik az előzményekben (GET https://ailoot.ai/api/v1/usage). A videófeladatot ne hozza létre újra: később ellenőrizze a GET /v1/videos/{id} útvonalon |
| 410 | model_retired | A modell kiszolgálását megszüntették | Válasszon új verziót a GET /v1/models listájából |
| 413 | request_too_large | A kérés törzse túl nagy | Csökkentse a fájlok vagy az előzmények méretét |
| 429 | rate_limit_exceeded, gateway_concurrency_limit, gateway_queue_full | Túl sok kérés vagy egyidejű kérés a fiókjából | Várjon (a Retry-Afterfejléc szerint, általában 10 másodpercet), majd próbálja újra |
| 429 | usage_limit_reached | A kulcs költési időablaka kimerült (5 óra, 1 nap vagy 7 nap) | Várjon az időablak megújulásáig, vagy növelje a kulcs korlátját |
| 500 | internal_error | Ailoot-hiba | Írjon a támogatásnak a Request ID megadásával |
| 502 | invalid_model_response, empty_response, incomplete_response | A modell hibás, üres vagy hiányos választ adott | Keresse meg a Request ID-t a fiók előzményeiben. Ha van eredmény vagy terhelés, az ismétlés egy második díjköteles kérést hoz létre. A bejegyzés hiánya nem igazolja, hogy a kérés nem lett elküldve vagy végrehajtva: ismeretlen állapotú küldést ne ismételjen meg; forduljon az ügyfélszolgálathoz a Request ID megadásával. |
| 502 | result_not_delivered | Az eredményt az Ailoot hibájából nem kézbesítettük, a zárolt vagy terhelt összeget visszaadtuk | A kérés újra elküldhető |
| 503 | model_overloaded | A modell átmenetileg túlterhelt | Ha X-Should-Retry: true — próbálja újra a Retry-After fejlécben megadott számú másodperc elteltével; ha false — előbb ellenőrizze a Request ID-t az előzményekben |
| 503 | model_unavailable | A modell átmenetileg nem érhető el | Válasszon másik modellt. Ha X-Should-Retry: true — próbálja újra a Retry-After fejlécben megadott számú másodperc elteltével; ha false — előbb ellenőrizze a Request ID-t az előzményekben |
| 503 | service_unavailable | Átmeneti hiba az Ailoot oldalán | Ha X-Should-Retry: true — próbálja újra a Retry-After fejlécben megadott számú másodperc elteltével; ha false — előbb ellenőrizze a Request ID-t az előzményekben |
| 503 | charge_not_confirmed | A választ nem adtuk át: a terhelést nem sikerült megerősíteni; a zárolást feloldottuk, terhelés nem történt | Ha X-Should-Retry: true — próbálja újra a Retry-After fejlécben megadott számú másodperc elteltével; ha false — előbb ellenőrizze a Request ID-t az előzményekben |
| 504 | model_timeout | A modell nem válaszolt időben, az eredmény még megjelenhet | Ne küldje újra a kérést, amíg nem ellenőrizte a Request ID-t az előzményekben |
A modellválaszok és az eredményellenőrzés kódjai (502, 503 és 504) most a modellre vagy a kérésre hivatkoznak: model_unavailable, model_timeout, invalid_model_response, incomplete_response, charge_not_confirmed és result_pending_check. Ha a kódja az error.code értékét korábbi értékekkel hasonlítja össze, cserélje azokat a táblázat kódjaira; a régi és új kódok megfeleltetésében segít a támogatás.
Mikor ismételhető meg a kérés?
- Először ellenőrizze az X-Should-Retry értékét: ha
false,result_pending_checkvagymodel_timeoutérkezett, ne ismételje meg automatikusan. Keresse meg a Request ID-t a fiók előzményeiben: ott látható az eredmény és a terhelés. - Az ismétlés akkor biztonságos, ha X-Should-Retry: true érkezett: várjon a
Retry-Afterfejlécben megadott számú másodpercig. Az 5xx kód önmagában nem elég: az eredmény már megjelenhetett. Előbb ellenőrizze a fiók előzményeit, vagy írjon a támogatásnak a Request ID megadásával. Ez különösen fontos képek, videók, zene és hosszú ügynöklépések esetén. - Az ismétlés nem segít: 400, 401, 402, 403, 404 — előbb javítsa a kérést, a kulcsot vagy az egyenleget.
Korlátok
A gyakoriság és az egyidejű kérések száma a teljes fiókjára korlátozott, nem egyes kulcsokra. Túllépéskor 429-es rate_limit_exceeded a következő fejléccel: Retry-After: 10. Ha maga a modell túlterhelt — 503-as model_overloaded a következővel: Retry-After: 30. Nagyobb terhelési igény esetén írjon a támogatásnak.
A költési korlátokat a kulcsnál kell megadni: a teljes keret — 402 api_key_quota_exhausted, az 5 órás, 1 napos és 7 napos időablakok — 429 usage_limit_reached. Részletek — Kulcsok és az API címe.
NVIDIA modellek: várakozási sor
A modelllista nulla egyenlegnél is lekérhető; generáláshoz a zárolást fedező egyenleg szükséges. Az NVIDIA modellek (Nemotron és mások) közös várakozási soron keresztül működnek: nagy terhelésnél a válasz később érkezhet, vagy „a modell átmenetileg túlterhelt” hiba érkezik Retry-After fejléccel — a megadott idő után próbálja újra. Az árak a katalógusban találhatók, a terhelés a többi modellhez hasonlóan történik.
A méretkorlátokat a modell határozza meg: a kontextust (hány token küldhető el) és a válasz maximális hosszát. Ezek a katalógusban találhatók.
Előzmények és költségek
Előzmények és költségek · GET https://ailoot.ai/api/v1/usage · JWT · Authorization: Bearer $TOKEN
JWT ≠ sk-… · Bejelentkezés és munkamenetek