Klaidos
Kiekvienas klaidos kodas, kuriuo šis API gali atsakyti, jį perduodantis HTTP statusas ir ką su tuo daryti. Apvalkalas atitinka OpenAI formą su vienu papildymu su vardų sritimi.
Apvalkalas
error.message parašytas žmogui, skaitančiam žurnalą, error.type nurodo gedimo klasę, o error.code yra stabilus identifikatorius, pagal kurį šakojama — pranešimo tekstas nėra sutartis. Kai API turi struktūrinę informaciją (kuri politika, kuris galinis taškas, kuris modelis), ji pateikiama error.llmeu ir niekada nepakeičia trijų standartinių laukų.
{
"error": {
"message": "No endpoint satisfies residency eu-owned. Residency is never relaxed silently.",
"type": "conflict_error",
"code": "no_endpoint_for_policy",
"llmeu": { "requested": "llmeu-auto" }
}
}
type atitinka statusą
Toliau pateiktas susiejimas yra tas, kurį taiko API, sugeneruotas iš tos pačios lentelės, kuri sudaro jo atsakymus.
| HTTP | type |
|---|---|
| 400 | invalid_request_error |
| 401 | authentication_error |
| 402 | insufficient_quota |
| 403 | permission_error |
| 404 | not_found_error |
| 409 | conflict_error |
| 413 | invalid_request_error |
| 422 | invalid_request_error |
| 429 | rate_limit_error |
| 500 | api_error |
| 501 | api_error |
| 502 | api_error |
| 503 | api_error |
Kodai
Kiekvienas kodas, galintis pasiekti klientą. Testas peržiūri API išeities kodą ir nepavyksta, kai ši lentelė ir kodas nesutampa kuria nors kryptimi, todėl kodo negalima išgalvoti čia ar pridėti ten jo nedokumentavus.
| HTTP | code | Ką tai reiškia ir ką daryti |
|---|---|---|
| 400 | invalid_request | Užklausos turinys nepraėjo validavimo. |
| 400 | invalid_json | Turinys nebuvo tinkamas JSON. |
| 400 | invalid_llmeu | llmeu objektas nebuvo objektas arba turėjo nežinomą lauką. |
| 400 | invalid_residency | Prašyta duomenų buvimo vieta nėra viena iš keturių talpinimo klasių. |
| 400 | invalid_data_class | Prašyta data_class nėra viena iš keturių klasių. |
| 400 | invalid_retention | Prašytas saugojimo laikas nėra zero, 24h, 7d arba 30d. |
| 400 | invalid_max_tokens | max_tokens nebuvo teigiamas sveikasis skaičius. |
| 400 | invalid_stream | stream nebuvo loginė reikšmė. |
| 400 | invalid_stop | stop nebuvo nei eilutė, nei eilučių masyvas. |
| 400 | invalid_role | Pranešimas turėjo rolę, kuri nėra system, user, assistant ar tool. |
| 400 | invalid_tools | tools arba tool_choice buvo netinkamos formos. |
| 400 | missing_model | Laukas model yra privalomas. |
| 400 | missing_messages | messages yra privalomas ir negali būti tuščias. |
| 400 | missing_input | input yra privalomas įterpiniams. |
| 400 | missing_name | name yra privalomas. |
| 401 | invalid_api_key | Rakto nėra, jis nežinomas, atšauktas arba pasibaigęs. |
| 402 | budget_exceeded | Organizacijos dienos biudžetas išnaudotas. Padidinkite max_usd_per_day arba palaukite, kol pasislinks langas. |
| 403 | api_key_required | Užklausa naudojo konsolės sesiją. Sukurkite API raktą ir siųskite jį vietoj to. |
| 403 | insufficient_scope | Raktas galioja, bet neturi šiam galutiniam taškui reikalingos srities. |
| 403 | no_organization | Kredencialas nėra priskirtas organizacijai. |
| 403 | model_denied | Organizacijos politika draudžia šį modelį arba jo teikėją. |
| 403 | policy_violation | Užklausa pažeidžia organizacijos politikos taisyklę. |
| 403 | retention_exceeds_policy | Prašomas saugojimo laikotarpis ilgesnis, nei leidžia politika. Tai patikrinama prieš visa kita, susijusį su užklausa. |
| 403 | data_class_not_allowed | Užklausos data_class nėra toks, kokį leidžia politika. |
| 404 | model_not_found | Šiai organizacijai tokio modelio nėra. |
| 404 | hosted_unavailable | Modelis yra kataloge, bet nėra talpinamas LLM EU, todėl jo negalima iškviesti. |
| 404 | not_found | Maršrutas egzistuoja, bet objekto nėra. |
| 404 | unknown_route | Šiame kelyje nėra prijungto maršruto. Kiekvienas OpenAI galutinis taškas, nenurodytas skiltyje „Endpoints“, atsako taip. |
| 404 | policy_not_found | policy_id llmeu nepriklauso šiai organizacijai. |
| 409 | no_endpoint_for_policy | Niekas netenkina politikos ir duomenų rezidencijos kartu, ir nė vienas iš jų nėra tyliai sušvelninamas. |
| 409 | not_a_text_model | Nurodytas modelis negali generuoti teksto: tai kalbos atpažinimo, įterpinių arba perrikiavimo modelis. |
| 409 | conflict | Užklausa prieštarauja dabartinei objekto būsenai. |
| 413 | request_too_large | Užklausos turinys viršijo galutinio taško dydžio limitą. |
| 429 | rate_limit_exceeded | Pasiektas limitas iš užklausų dažnio limitų lentelės. Pranešime nurodomas lango atstatymo laikas. |
| 500 | internal_error | Netikėta klaida mūsų pusėje. |
| 501 | not_implemented | Galutinis taškas sąmoningai nesiūlomas, arba prašomos funkcijos šiame diegime nėra. |
| 501 | retention_not_implemented | Politika leidžia kitokį nei nulis saugojimo laikotarpį, o įgyvendintas tik nulis, todėl užklausa atmetama, o ne saugoma. |
| 501 | unsupported_n | n, didesnis nei 1, nepalaikomas. |
| 502 | upstream_error | Po perėjimo prie atsarginio varianto nė vienas galutinis taškas negalėjo aptarnauti užklausos. Pėdsakas fiksuoja kiekvieną bandymą. |
| 502 | stream_failed | Srautas nutrūko jau prasidėjęs. |
no_endpoint_for_policy reiškia, kad produktas veikia taip, kaip numatyta
409 su šiuo kodu reiškia, kad politika ir užklausa kartu neleidžia nė vieno galinio taško, ir maršrutizatorius atsisakė tyliai sušvelninti bet kurį iš jų. Tai nėra laikina: kartojimas nepakeitus užklausos, politikos ar duomenų buvimo vietos nepavyks taip pat. Klaida perduoda prašytą duomenų buvimo vietą, o seka įrašo, kodėl kiekvienas galinis taškas buvo atmestas.
Klaidos srauto viduje
Srautinė užklausa, kuri nepavyksta išsiuntus antraštes, įrašo klaidą kaip paskutinį SSE kadrą ir tada baigiamąją seką, todėl formatą atitinkantis klientas mato klaidą, o ne nutrūkusią sėkmę.
data: {"error":{"message":"No endpoint could start the stream.","type":"api_error","code":"upstream_error"}}
data: [DONE]