Chyby
Každý kód chyby, kterým toto API může odpovědět, HTTP status, který jej nese, a co s ním dělat. Obálka má tvar OpenAI s jedním přidaným jmenným prostorem.
Obálka
error.message je psáno pro člověka čtoucího log, error.type pojmenovává třídu selhání a error.code je stabilní identifikátor, podle kterého se větví — text zprávy není kontrakt. Kde má API strukturovaný detail (která politika, který endpoint, který model), dorazí 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" }
}
}
type odpovídá statusu
Mapování níže je to, které API uplatňuje, generované ze stejné tabulky, která sestavuje jeho odpovědi.
| 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 |
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 rozejdou 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 objekt, nebo nesl neznámé pole. |
| 400 | invalid_residency | Požadované umístění dat 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ělo neplatný formát. |
| 400 | missing_model | Pole model je povinné. |
| 400 | missing_messages | messages je vyžadováno a nesmí být prázdné. |
| 400 | missing_input | input je vyžadován pro embeddings. |
| 400 | missing_name | name je vyžadováno. |
| 401 | invalid_api_key | Klíč chybí, je neznámý, odvolaný nebo vypršel. |
| 402 | budget_exceeded | Denní rozpočet organizace byl vyčerpán. Zvyšte max_usd_per_day nebo počkejte, až se okno posune. |
| 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 postrádá oprávnění, které tento koncový bod vyžaduje. |
| 403 | no_organization | Přihlašovací údaj není přiřazen k organizaci. |
| 403 | model_denied | Zásada organizace zakazuje tento model nebo jeho poskytovatele. |
| 403 | policy_violation | Požadavek porušuje pravidlo zásad organizace. |
| 403 | retention_exceeds_policy | Požadovaná doba uchování je delší, než zásada povoluje. Toto se kontroluje před čímkoli jiným v požadavku. |
| 403 | data_class_not_allowed | data_class požadavku není zásadou 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 ho nelze volat. |
| 404 | not_found | Trasa existuje, ale objekt ne. |
| 404 | unknown_route | Na této cestě není namontována žádná trasa. Každý koncový bod OpenAI, který není uveden v části Koncové body, odpovídá tímto. |
| 404 | policy_not_found | policy_id v llmeu nepatří této organizaci. |
| 409 | no_endpoint_for_policy | Nic nesplňuje zásadu 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 rozpoznávání řeči, embeddingový nebo rerankerový model. |
| 409 | conflict | Požadavek je v konfliktu s aktuálním stavem objektu. |
| 413 | request_too_large | Tělo požadavku překročilo velikostní limit koncového bodu. |
| 429 | rate_limit_exceeded | Bylo dosaženo limitu z tabulky omezení rychlosti. Zpráva uvádí čas obnovení okna. |
| 500 | internal_error | Neočekávaná chyba na naší straně. |
| 501 | not_implemented | Koncový bod není záměrně nabízen, nebo požadovaná funkce v tomto nasazení neexistuje. |
| 501 | retention_not_implemented | Zásada povoluje jinou dobu uchování než nulu a implementována je pouze nula, takže požadavek je odmítnut, místo aby byl uložen. |
| 501 | unsupported_n | n větší než 1 není podporováno. |
| 502 | upstream_error | Žádný koncový bod nemohl po přepnutí na záložní 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 dohromady nepřipouštějí žádný endpoint a router odmítl tiše uvolnit kterýkoli z nich. Není to přechodné: opakování bez změny požadavku, politiky nebo umístění dat selže stejně. Chyba nese požadované umístění dat a trasování zaznamenává, proč byl každý endpoint odmítnut.
Chyby uvnitř streamu
Streamovaný požadavek, který selže po odeslání hlaviček, zapíše chybu jako poslední SSE rámec a poté zakončení, takže klient, který se drží formátu, 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]