Chyby
Každý kód chyby, kterým může toto API odpovědět, HTTP status, který jej nese, a co s tím dělat. Obálka má tvar OpenAI s jedním přídavkem ve jmenném prostoru.
Obálka
error.message je určena pro člověka čtoucího log, error.type pojmenovává třídu selhání a error.code je stabilní identifikátor pro větvení — text zprávy není smlouva. Tam, kde má API strukturovaný detail (která politika, který koncový bod, který model), přichází v error.llmeu a nikdy nenahrazuje tři standardní pole.
{
"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" }
}
}
typ následuje stav
Níže uvedené mapování je to, které API používá; pochází ze stejné tabulky, ze které sestavuje své odpovědi.
| HTTP | typ |
|---|---|
| 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 |
Kódy
Každý kód, který se může dostat ke klientovi. Test prochází zdrojový kód API a selže, když se tato tabulka a kód rozcházejí v kterémkoli směru, takže kód nelze vymyslet zde ani přidat tam, aniž by byl zdokumentován.
| HTTP | code | Co znamená a co dělat |
|---|---|---|
| 400 | invalid_request | Tělo požadavku neprošlo validací. |
| 400 | invalid_json | Tělo nebylo platné JSON. |
| 400 | invalid_llmeu | Objekt llmeu nebyl objektem, nebo obsahoval neznámé pole. |
| 400 | invalid_residency | Požadovaná rezidence není jednou ze čtyř tříd hostování. |
| 400 | invalid_data_class | Požadovaná data_class není jednou ze čtyř tříd. |
| 400 | invalid_retention | Požadovaná retence není zero, 24h, 7d nebo 30d. |
| 400 | invalid_max_tokens | max_tokens nebyl kladné celé číslo. |
| 400 | invalid_stream | stream nebyl boolean. |
| 400 | invalid_stop | stop nebyl ani řetězec, ani pole řetězců. |
| 400 | invalid_role | Zpráva nesla roli mimo system, user, assistant a tool. |
| 400 | invalid_tools | tools nebo tool_choice měly neplatný formát. |
| 400 | missing_model | Pole model je povinné. |
| 400 | missing_messages | messages je povinné a nesmí být prázdné. |
| 400 | missing_input | input je vyžadován pro embeddings. |
| 400 | missing_name | name je povinné. |
| 401 | invalid_api_key | Klíč chybí, je neznámý, odvolaný nebo jeho platnost vypršela. |
| 402 | budget_exceeded | Denní rozpočet organizace je vyčerpán. Zvyšte max_usd_per_day nebo počkejte na posun okna. |
| 403 | api_key_required | Požadavek použil konzolovou relaci. Vytvořte API klíč a pošlete místo toho ten. |
| 403 | insufficient_scope | Klíč je platný, ale nemá rozsah, který tento endpoint vyžaduje. |
| 403 | no_organization | Přihlašovací údaj není přiřazen k organizaci. |
| 403 | model_denied | Politika organizace zakazuje tento model nebo jeho poskytovatele. |
| 403 | policy_violation | Požadavek porušuje pravidlo zásad organizace. |
| 403 | retention_exceeds_policy | Požadovaná retence je delší, než politika povoluje. Toto se kontroluje před čímkoli jiným v požadavku. |
| 403 | data_class_not_allowed | data_class požadavku není politikou povolena. |
| 404 | model_not_found | Pro tuto organizaci neexistuje žádný takový model. |
| 404 | hosted_unavailable | Model je v katalogu, ale není hostován na LLM EU, takže jej nelze volat. |
| 404 | not_found | Trasa existuje, ale objekt ne. |
| 404 | unknown_route | Na této cestě není připojena žádná trasa. Každý endpoint OpenAI, který není uveden pod Endpoints, odpovídá tímto. |
| 404 | policy_not_found | policy_id v llmeu nepatří této organizaci. |
| 409 | no_endpoint_for_policy | Nic nesplňuje politiku a rezidenci společně a ani jedno není tiše uvolněno. |
| 409 | not_a_text_model | Uvedený model nemůže generovat text: jde o model pro rozpoznávání řeči, embedding nebo reranker. |
| 409 | conflict | Požadavek je v konfliktu se současným stavem objektu. |
| 413 | request_too_large | Tělo překročilo velikostní limit endpointu. |
| 429 | rate_limit_exceeded | Byl dosažen limit z tabulky omezení rychlosti. Zpráva uvádí čas resetu okna. |
| 500 | internal_error | Neočekávaná chyba na naší straně. |
| 501 | not_implemented | Endpoint není záměrně nabízen, nebo požadovaná funkce v tomto nasazení neexistuje. |
| 501 | retention_not_implemented | Zásada umožňuje retenci jinou než nula, ale implementována je pouze nula, proto je požadavek odmítnut, místo aby byl uložen. |
| 501 | unsupported_n | n větší než 1 není podporováno. |
| 502 | upstream_error | Žádný endpoint nemohl po failoveru obsloužit požadavek. Trasování zaznamenává každý pokus. |
| 502 | stream_failed | Stream selhal poté, co již začal. |
no_endpoint_for_policy znamená, že produkt funguje
409 s tímto kódem znamená, že politika a požadavek společně nepřipouštějí žádný endpoint a router odmítl tiše uvolnit ani jeden z nich. Není to přechodné: opakování bez změny požadavku, politiky nebo rezidence selže stejným způsobem. Chyba nese požadovanou rezidenci a trace zaznamenává, proč byl každý endpoint odmítnut.
Chyby uvnitř streamu
Streamovací požadavek, který selže po odeslání hlaviček, zapíše chybu jako poslední SSE rámec a poté terminátor, takže klient, který dodržuje formát, vidí selhání místo zkráceného úspěchu.
data: {"error":{"message":"No endpoint could start the stream.","type":"api_error","code":"upstream_error"}}
data: [DONE]