Klaidos
Kiekvienas klaidos kodas, kuriuo ši API gali atsakyti, jį perduodantis HTTP statusas ir ką su tuo daryti. Apvalkalas yra OpenAI formos su vienu vardų erdvės papildymu.
Apvalkalas
error.message parašytas žmogui, skaitančiam žurnalą, error.type įvardija gedimo klasę, o error.code yra stabilus identifikatorius, pagal kurį šakotis — pranešimo tekstas nėra sutartis. Kai API turi struktūrizuotų detalių (kuri politika, kuris galinis taškas, kuris modelis), jos pateikiamos 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" }
}
}
tipas seka statusą
Žemiau pateiktas susiejimas yra tas, kurį taiko API, atvaizduotas iš tos pačios lentelės, kuri sudaro jo atsakymus.
| HTTP | tipas |
|---|---|
| 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, kuris gali pasiekti klientą. Testas pereina API šaltinį ir nepavyksta, kai ši lentelė ir kodas nesutampa bet kuria kryptimi, todėl kodas negali būti išgalvotas čia arba pridėtas ten be dokumentavimo.
| HTTP | code | Ką tai reiškia ir ką daryti |
|---|---|---|
| 400 | invalid_request | Užklausos turinys nepraėjo validacijos. |
| 400 | invalid_json | Turinys nebuvo galiojantis JSON. |
| 400 | invalid_llmeu | llmeu objektas nebuvo objektas arba turėjo nežinomą lauką. |
| 400 | invalid_residency | Prašyta rezidencija nėra viena iš keturių prieglobos klasių. |
| 400 | invalid_data_class | Prašyta data_class nėra viena iš keturių klasių. |
| 400 | invalid_retention | Prašyta saugojimo trukmė 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 viena iš system, user, assistant ir tool. |
| 400 | invalid_tools | tools arba tool_choice buvo netaisyklingi. |
| 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 embeddingams. |
| 400 | missing_name | name yra privalomas. |
| 401 | invalid_api_key | Raktas yra trūkstamas, nežinomas, atšauktas arba pasibaigęs. |
| 402 | budget_exceeded | Organizacijos dienos biudžetas išnaudotas. Padidinkite max_usd_per_day arba palaukite, kol pasibaigs 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 šio galinio taško reikalaujamos apimties. |
| 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šyta saugojimo trukmė yra ilgesnė, nei leidžia politika. Tai tikrinama prieš bet ką kita apie užklausą. |
| 403 | data_class_not_allowed | Užklausos data_class nėra viena iš politikos leidžiamų. |
| 404 | model_not_found | Šiai organizacijai nėra tokio modelio. |
| 404 | hosted_unavailable | Modelis yra kataloge, bet nėra prieglobos 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 galinis taškas, kuris nėra išvardytas skiltyje Endpoints, atsako šitaip. |
| 404 | policy_not_found | policy_id llmeu objekte nepriklauso šiai organizacijai. |
| 409 | no_endpoint_for_policy | Niekas netenkina politikos ir rezidencijos kartu, ir nė vienas nėra tyliai sušvelninamas. |
| 409 | not_a_text_model | Nurodytas modelis negali generuoti teksto: tai kalbos atpažinimo, embeddingų arba perrikiuotojo modelis. |
| 409 | conflict | Užklausa konfliktuoja su dabartine objekto būsena. |
| 413 | request_too_large | Užklausos turinys viršijo galinio taško dydžio limitą. |
| 429 | rate_limit_exceeded | Pasiektas limitas iš spartos limitų lentelės. Pranešime nurodomas lango atstatymo laikas. |
| 500 | internal_error | Netikėta klaida mūsų pusėje. |
| 501 | not_implemented | Galinis taškas sąmoningai nesiūlomas, arba prašoma galimybė neegzistuoja šiame diegime. |
| 501 | retention_not_implemented | Politika leidžia saugojimo trukmę, kuri nėra nulis, 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ėmimo joks galinis taškas negalėjo apdoroti užklausos. Sekimo įrašas fiksuoja kiekvieną bandymą. |
| 502 | stream_failed | Srautas nutrūko po to, kai jau buvo pradėtas. |
no_endpoint_for_policy – produktas veikia
409 su šiuo kodu reiškia, kad politika ir užklausa kartu nepriima nė vieno galinio taško, ir maršrutizatorius atsisakė tyliai sušvelninti bet kurį iš jų. Tai nėra laikina: bandant iš naujo nekeičiant užklausos, politikos ar rezidencijos, nepavyksta taip pat. Klaida perduoda prašytą rezidenciją, o pėdsakas įrašo, kodėl kiekvienas galinis taškas buvo atmestas.
Klaidos srauto viduje
Srautinė užklausa, kuri nepavyksta po to, kai antraštės išsiųstos, įrašo klaidą kaip paskutinį SSE kadrą ir tada terminatorių, todėl klientas, kuris laikosi formato, mato nesėkmę, o ne sutrumpintą sėkmę.
data: {"error":{"message":"No endpoint could start the stream.","type":"api_error","code":"upstream_error"}}
data: [DONE]