docs
Pagalba

Klaidos ir limitai

Markdown

Atsakymų kodai, jų reikšmė ir ką daryti. Visos klaidos — JSON formatu ir su Request ID.

Visas vadovas

Klaidos formatas

Klaida pateikiama iškviesto API formatu: objektas error OpenAI atveju, {"type": "error", "error": {...}} Anthropic atveju ir error su laukais status ir details Gemini atveju. Todėl SDK jas atpažįsta kaip įprastas API klaidas.

  • error.code ir error.reason — klaidos klasė iš toliau pateiktos lentelės; jie sutampa. error.type — standartinė formato reikšmė (pavyzdžiui, invalid_request_error arba server_error).
  • error.request_id (Anthropic atveju — request_id aukščiausiame lygyje), antraštė X-Request-ID ir pranešimo teksto pabaiga — užklausos identifikatorius.
  • Gemini atveju klasė yra lauke error.details: ErrorInfo.reason — tas pats kodas didžiosiomis raidėmis (pavyzdžiui, MODEL_OVERLOADED), domain — ailoot.ai; užklausos identifikatorius — lauke RequestInfo.requestId.
  • Gemini formatu 5xx klaida, kurios negalima automatiškai kartoti, ir result_pending_check pateikiamos su būsena 409 ir status ABORTED: taip Gemini SDK ir CLI patys jų nekartoja. Klaidos klasė — lauke ErrorInfo.reason (pavyzdžiui, MODEL_TIMEOUT arba RESULT_PENDING_CHECK).
  • OpenAI formato atsakyme taip pat yra aukščiausio lygio laukai code ir message — senesniems klientams.
{
  "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. …"
}

Klaidų kodai

HTTPKlasė (reason)Kas nutikoKą daryti
400invalid_requestUžklausa netaisyklinga: netinkamas turinys ar parametras; modelis nepalaiko užklausos lauko, priedo ar įrankio; raktas perduotas adrese Pataisykite užklausą pagal klaidos tekstą: pašalinkite nepalaikomą lauką, priedą ar įrankį; raktą perduokite antraštėje. Atmetimas dėl nepalaikomo lauko, priedo ar įrankio įvyksta prieš rezervuojant lėšas — nieko nenurašyta
400context_length_exceededUžklausa ilgesnė už modelio kontekstąSutrumpinkite istoriją arba pasirinkite didesnio konteksto modelį
400content_policy_violationUžklausa atmesta pagal modelio taisyklesPerformuluokite užklausą
401invalid_api_keyRakto nėra arba jis neteisingasPatikrinkite, ar perduotas visas raktas
401api_key_disabledRaktas išjungtasĮjunkite arba sukurkite naują raktą
402insufficient_balance, insufficient_quotaNepakanka laisvo balanso net minimaliam rezervui (insufficient_quota — tas pats atvejis OpenAI SDK įprasta forma)Papildykite balansą arba sumažinkite max_tokens
402api_key_quota_exhaustedIšnaudotas bendras rakto išlaidų limitasPadidinkite rakto limitą paskyroje
402payment_disputedPaskyroje yra skola dėl ginčijamo mokėjimoNaujos užklausos sustabdytos, kol skola padengiama — rašykite pagalbos tarnybai
403api_key_expiredRakto galiojimo laikas baigėsiSukurkite naują raktą
403account_inactiveJūsų paskyra išjungtaRašykite pagalbos tarnybai
403permission_deniedŠi užklausa raktui draudžiama (pavyzdžiui, pagal IP)Patikrinkite rakto apribojimus
404model_not_foundTokio modelio nėraPatikrinkite ID pagal /v1/models
404unsupported_endpointModelis neveikia šiuo formatuPasirinkite kitą formatą arba modelį
404not_foundTokio kelio ar objekto nėra (pavyzdžiui, užduoties)Patikrinkite adresą ir identifikatorių
409duplicate_requestOperacija su tuo pačiu idempotentiškumo raktu jau priimta ir galbūt užbaigtaPatikrinkite pirmos operacijos rezultatą, naujos nesiųskite
409not_ready, video_not_readyVaizdo įrašas ar kita užduotis dar neparuoštaBūseną patikrinkite vėliau
409, 503result_pending_checkTiksliname užklausos rezultatą. Vaizdo užduoties atveju tai žyma result_pending_check: true būsenos atsakyme, pati užduotis lieka in_progressNesiųskite užklausos pakartotinai — būsena atsiras istorijoje (GET https://ailoot.ai/api/v1/usage). Vaizdo užduoties nekurkite iš naujo: patikrinkite ją vėliau per GET /v1/videos/{id}
410model_retiredModelis nebeteikiamasPasirinkite naują versiją per GET /v1/models
413request_too_largeUžklausos turinys per didelisSumažinkite failus arba istoriją
429rate_limit_exceeded, gateway_concurrency_limit, gateway_queue_fullPer daug užklausų arba vienalaikių užklausų iš jūsų paskyrosPalaukite (antraštė Retry-After, paprastai 10 s) ir bandykite dar kartą
429usage_limit_reachedIšnaudotas rakto išlaidų langas (5 valandos, 1 diena arba 7 dienos)Palaukite, kol langas atsinaujins, arba padidinkite rakto limitą
500internal_errorAiloot klaidaRašykite pagalbos tarnybai, nurodydami Request ID
502invalid_model_response, empty_response, incomplete_responseModelis grąžino netaisyklingą, tuščią arba nepilną atsakymąRaskite Request ID paskyros istorijoje. Jei ten yra rezultatas ar nurašymas, pakartojimas sukurs antrą mokamą užklausą. Įrašo nebuvimas nepatvirtina, kad užklausa nebuvo išsiųsta arba nebuvo įvykdyta: nekartokite siuntimo, kurio būsena nežinoma; kreipkitės į pagalbos tarnybą nurodydami Request ID.
502result_not_deliveredRezultatas nepristatytas dėl Ailoot kaltės, rezervas arba nurašytos lėšos grąžintiUžklausą galima siųsti iš naujo
503model_overloadedModelis laikinai perkrautasJei X-Should-Retry: true — bandykite dar kartą po Retry-After nurodyto sekundžių skaičiaus; jei false — pirmiausia patikrinkite Request ID istorijoje
503model_unavailableModelis laikinai neprieinamasPasirinkite kitą modelį. Jei X-Should-Retry: true — bandykite dar kartą po Retry-After nurodyto sekundžių skaičiaus; jei false — pirmiausia patikrinkite Request ID istorijoje
503service_unavailableLaikinas sutrikimas Ailoot pusėjeJei X-Should-Retry: true — bandykite dar kartą po Retry-After nurodyto sekundžių skaičiaus; jei false — pirmiausia patikrinkite Request ID istorijoje
503charge_not_confirmedAtsakymas nepateiktas: nepavyko patvirtinti nurašymo; rezervas grąžintas, lėšos nenurašytosJei X-Should-Retry: true — bandykite dar kartą po Retry-After nurodyto sekundžių skaičiaus; jei false — pirmiausia patikrinkite Request ID istorijoje
504model_timeoutModelis laiku neatsakė, rezultatas dar gali atsirastiNesiųskite užklausos iš naujo, kol nepatikrinsite Request ID istorijoje

Modelio atsakymų ir rezultato patikros kodai (502, 503 ir 504) dabar įvardija modelį arba užklausą: model_unavailable, model_timeout, invalid_model_response, incomplete_response, charge_not_confirmed ir result_pending_check. Jei jūsų kodas lygina error.code su ankstesnėmis reikšmėmis, pakeiskite jas lentelės kodais; ankstesnių ir naujų kodų atitikmenis nurodys pagalbos tarnyba.

Kada kartoti užklausą

  • Pirmiausia pažiūrėkite į X-Should-Retry: kai false, result_pending_check arba model_timeout nekartokite automatiškai. Raskite Request ID paskyros istorijoje: ten matomas rezultatas ir nurašymas.
  • Kartoti saugu gavus X-Should-Retry: true: palaukite Retry-After sekundžių. 5xx atveju vien kodo nepakanka: rezultatas jau galėjo atsirasti. Pirmiausia patikrinkite paskyros istoriją arba rašykite pagalbos tarnybai, nurodydami Request ID. Tai ypač svarbu vaizdams, vaizdo įrašams, muzikai ir ilgiems agentų žingsniams.
  • Pakartojimas nepadės: 400, 401, 402, 403, 404 — pirmiausia pataisykite užklausą, raktą arba balansą.

Limitai

Dažnis ir vienalaikių užklausų skaičius ribojami visai jūsų paskyrai, o ne atskiram raktui. Viršijus grąžinama 429 rate_limit_exceeded su antrašte Retry-After: 10. Jei perkrautas pats modelis — 503 model_overloaded su Retry-After: 30. Jei reikia didesnės apkrovos, kreipkitės į pagalbos tarnybą.

Išlaidų limitai nustatomi raktui: bendras limitas — 402 api_key_quota_exhausted, 5 valandų, 1 dienos ir 7 dienų langai — 429 usage_limit_reached. Plačiau — Raktai ir API adresas.

NVIDIA modeliai: eilė

Modelių sąrašo galima prašyti ir esant nuliniam balansui; generavimui reikia lėšų rezervui. NVIDIA modeliai (Nemotron ir kiti) veikia per bendrą eilę: esant didelei apkrovai atsakymas gali vėluoti arba bus grąžinta klaida „modelis laikinai perkrautas“ su Retry-After antrašte — kartokite praėjus nurodytam laikui. Kainos pateiktos kataloge, nurašymas vyksta kaip kitų modelių.

Dydžio limitus nustato modelis: kontekstą (kiek žetonų galima siųsti) ir didžiausią atsakymo ilgį. Jie nurodyti kataloge.

Istorija ir išlaidos

Istorija ir išlaidos · GET https://ailoot.ai/api/v1/usage · JWT · Authorization: Bearer $TOKEN

JWT ≠ sk-… · Prisijungimas ir seansai

Liko klausimų? Atsiųskite Request ID ir aprašymą — padėsime išsiaiškinti.Rašyti pagalbos tarnybai