Грешки

Всеки код за грешка, с който този API може да отговори, HTTP статусът, който го носи, и какво да правите с него. Обвивката е с формата на OpenAI с едно допълнение в пространство от имена.

Обвивката

error.message е написано за човек, който чете лог, error.type посочва класа на неизправността, а error.code е стабилният идентификатор, по който да се разклонявате — текстът на съобщението не е договор. Когато API има структурирани подробности (коя политика, коя крайна точка, кой модел), те пристигат в error.llmeu и никога не заместват трите стандартни полета.

{
  "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" }
  }
}

Типът следва статуса

Съпоставянето по-долу е това, което API прилага, изведено от същата таблица, която изгражда отговорите му.

HTTP тип
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

Кодове

Всеки код, който може да достигне до клиент. Тест обхожда изходния код на API и се проваля, когато тази таблица и кодът се разминават в едната или другата посока, така че код не може да бъде измислен тук или добавен там, без да бъде документиран.

HTTP code Какво означава и какво да правите
400 invalid_request Тялото на заявката не премина валидация.
400 invalid_json Тялото не беше валиден JSON.
400 invalid_llmeu Обектът llmeu не беше обект или съдържаше непознато поле.
400 invalid_residency Заявената резидентност не е един от четирите класа за хостване.
400 invalid_data_class Заявеният data_class не е един от четирите класа.
400 invalid_retention Заявеният retention не е zero, 24h, 7d или 30d.
400 invalid_max_tokens max_tokens не беше положително цяло число.
400 invalid_stream stream не беше булева стойност.
400 invalid_stop stop не беше нито низ, нито масив от низове.
400 invalid_role Съобщение съдържаше роля извън system, user, assistant и tool.
400 invalid_tools tools или tool_choice бяха с неправилен формат.
400 missing_model Полето model е задължително.
400 missing_messages messages е задължително и не трябва да бъде празно.
400 missing_input input е задължително за ембeдинги.
400 missing_name name е задължително.
401 invalid_api_key Ключът липсва, е неизвестен, отменен или изтекъл.
402 budget_exceeded Дневният бюджет на организацията е изразходван. Увеличете max_usd_per_day или изчакайте прозорецът да се презареди.
403 api_key_required Заявката използва сесия от конзолата. Създайте API ключ и изпратете него вместо това.
403 insufficient_scope Ключът е валиден, но му липсва обхватът, който изисква тази крайна точка.
403 no_organization Удостоверението не е свързано с организация.
403 model_denied Политиката на организацията забранява този модел или неговия доставчик.
403 policy_violation Заявката нарушава правило от политиката на организацията.
403 retention_exceeds_policy Заявеното задържане е по-дълго от разрешеното от политиката. Това се проверява преди всичко останало за заявката.
403 data_class_not_allowed data_class на заявката не е от разрешените от политиката.
404 model_not_found Няма такъв модел за тази организация.
404 hosted_unavailable Моделът е в каталога, но не е хостван на LLM EU, така че не може да бъде извикан.
404 not_found Маршрутът съществува, но обектът не.
404 unknown_route На този път не е монтиран маршрут. Всяка крайна точка на OpenAI, която не е посочена в Endpoints, отговаря с това.
404 policy_not_found policy_id в llmeu не принадлежи на тази организация.
409 no_endpoint_for_policy Нищо не удовлетворява едновременно политиката и резидентността и нито едно от двете не се отпуска безшумно.
409 not_a_text_model Посоченият модел не може да генерира текст: той е модел за разпознаване на реч, за ембeдинги или за преподреждане.
409 conflict Заявката е в конфликт с текущото състояние на обекта.
413 request_too_large Тялото надвиши ограничението за размер на крайната точка.
429 rate_limit_exceeded Достигнат е лимит от таблицата с ограничения на скоростта. Съобщението посочва времето за нулиране на прозореца.
500 internal_error Неочакван провал от наша страна.
501 not_implemented Крайната точка умишлено не се предлага или заявената възможност не съществува в тази инсталация.
501 retention_not_implemented Политиката позволява задържане, различно от нула, а е реализирано само нулево, така че заявката се отказва, вместо да бъде съхранена.
501 unsupported_n n по-голямо от 1 не се поддържа.
502 upstream_error Никоя крайна точка не можа да обслужи заявката след превключване при отказ. Проследяването записва всеки опит.
502 stream_failed Потокът се провали, след като вече беше започнал.

no_endpoint_for_policy означава, че продуктът работи

409 с този код означава, че политиката и заявката заедно не допускат никаква крайна точка и маршрутизаторът отказа да разхлаби което и да е от двете тихо. Това не е преходно: повторението без промяна на заявката, политиката или резидентността се проваля по същия начин. Грешката носи заявената резидентност, а проследяването записва защо всяка крайна точка е била отхвърлена.

Грешки в поток

Заявка за поток, която се провали след изпращането на заглавките, записва грешката като последен SSE кадър и след това терминатора, така че клиент, който следва формата, вижда провал вместо отрязан успех.

data: {"error":{"message":"No endpoint could start the stream.","type":"api_error","code":"upstream_error"}}

data: [DONE]