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
400invalid_request_error
401authentication_error
402insufficient_quota
403permission_error
404not_found_error
409conflict_error
413invalid_request_error
422invalid_request_error
429rate_limit_error
500api_error
501api_error
502api_error
503api_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]