Fel
Varje felkod som detta API kan svara med, HTTP-statusen som bär den och vad du kan göra åt den. Svarskuvertet har OpenAI-form med ett tillägg i eget namnområde.
Svarskuvertet
error.message är skrivet för en person som läser en logg, error.type namnger felklassen och error.code är den stabila identifieraren att förgrena på – meddelandetexten är inte ett kontrakt. Där API:et har strukturerad information (vilken policy, vilken slutpunkt, vilken modell) kommer den i error.llmeu och ersätter aldrig de tre standardfälten.
{
"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 följer status
Mappningen nedan är den som API:et tillämpar, renderad från samma tabell som bygger dess svar.
| 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 |
Koder
Varje kod som kan nå en klient. Ett test går igenom API:ets källkod och misslyckas när den här tabellen och koden inte stämmer överens i någon riktning, så en kod kan inte hittas på här eller läggas till där utan att dokumenteras.
| HTTP | code | Vad den betyder, och vad du ska göra |
|---|---|---|
| 400 | invalid_request | Begärans body klarade inte valideringen. |
| 400 | invalid_json | Body var inte giltig JSON. |
| 400 | invalid_llmeu | Objektet llmeu var inte ett objekt, eller innehöll ett okänt fält. |
| 400 | invalid_residency | Den begärda residensen är inte en av de fyra värdklasserna. |
| 400 | invalid_data_class | Den begärda data_class är inte en av de fyra klasserna. |
| 400 | invalid_retention | Den begärda retentionen är inte noll, 24h, 7d eller 30d. |
| 400 | invalid_max_tokens | max_tokens var inte ett positivt heltal. |
| 400 | invalid_stream | stream var inte ett booleskt värde. |
| 400 | invalid_stop | stop var varken en sträng eller en array av strängar. |
| 400 | invalid_role | Ett meddelande innehöll en roll utanför system, user, assistant och tool. |
| 400 | invalid_tools | tools eller tool_choice var felformat. |
| 400 | missing_model | Fältet model är obligatoriskt. |
| 400 | missing_messages | messages är obligatoriskt och får inte vara tomt. |
| 400 | missing_input | input är obligatoriskt för embeddings. |
| 400 | missing_name | name är obligatoriskt. |
| 401 | invalid_api_key | Nyckeln saknas, är okänd, återkallad eller har gått ut. |
| 402 | budget_exceeded | Organisationens dagliga budget är förbrukad. Höj max_usd_per_day eller vänta på att fönstret rullar över. |
| 403 | api_key_required | Begäran använde en konsolsession. Skapa en API-nyckel och skicka den i stället. |
| 403 | insufficient_scope | Nyckeln är giltig men saknar den scope som denna endpoint kräver. |
| 403 | no_organization | Autentiseringsuppgiften är inte kopplad till en organisation. |
| 403 | model_denied | Organisationens policy nekar denna modell eller dess leverantör. |
| 403 | policy_violation | Begäran bryter mot en regel i organisationens policy. |
| 403 | retention_exceeds_policy | Den begärda retentionen är längre än vad policyn tillåter. Detta kontrolleras före allt annat om begäran. |
| 403 | data_class_not_allowed | Begärans data_class är inte en som policyn tillåter. |
| 404 | model_not_found | Det finns ingen sådan modell för den här organisationen. |
| 404 | hosted_unavailable | Modellen finns i katalogen men hostas inte på LLM EU, så den kan inte anropas. |
| 404 | not_found | Rutten finns men objektet gör det inte. |
| 404 | unknown_route | Ingen rutt är monterad på den här sökvägen. Varje OpenAI-endpoint som inte listas under Endpoints svarar med detta. |
| 404 | policy_not_found | policy_id i llmeu tillhör inte den här organisationen. |
| 409 | no_endpoint_for_policy | Inget uppfyller policyn och residensen tillsammans, och ingen av dem mildras i tysthet. |
| 409 | not_a_text_model | Den angivna modellen kan inte generera text: den är en taligenkännings-, embedding- eller reranker-modell. |
| 409 | conflict | Begäran står i konflikt med objektets aktuella tillstånd. |
| 413 | request_too_large | Kroppen överskred slutpunktens storleksgräns. |
| 429 | rate_limit_exceeded | En gräns från hastighetsbegränsningstabellen har nåtts. Meddelandet anger när fönstret nollställs. |
| 500 | internal_error | Ett oväntat fel på vår sida. |
| 501 | not_implemented | Slutpunkten erbjuds avsiktligt inte, eller så finns den begärda funktionen inte i denna driftsättning. |
| 501 | retention_not_implemented | Policyn tillåter en annan lagringstid än noll och endast noll är implementerad, så begäran avvisas i stället för att lagras. |
| 501 | unsupported_n | n större än 1 stöds inte. |
| 502 | upstream_error | Ingen slutpunkt kunde hantera begäran efter redundansväxling. Spårningen registrerar varje försök. |
| 502 | stream_failed | Strömmen misslyckades efter att den redan hade startat. |
no_endpoint_for_policy är att produkten fungerar
En 409 med den här koden betyder att policyn och begäran tillsammans inte tillåter någon endpoint, och att routern vägrade att lätta på någon av dem i tysthet. Det är inte övergående: att försöka igen utan att ändra begäran, policyn eller residensen misslyckas på samma sätt. Felet innehåller den begärda residensen, och spårningen registrerar varför varje endpoint avvisades.
Fel i en ström
En strömmande begäran som misslyckas efter att rubrikerna har skickats skriver felet som en sista SSE-ram och sedan terminatorn, så en klient som följer formatet ser ett misslyckande i stället för en avkortad framgång.
data: {"error":{"message":"No endpoint could start the stream.","type":"api_error","code":"upstream_error"}}
data: [DONE]