error.code, формирующая ошибку запроса, если:
- Ваш первоначальный запрос недействителен.
- У вашего API-ключа/учетной записи закончились кредиты
Коды ошибок
- : неверный запрос (неверные или отсутствующие параметры, CORS)
- : неверные учетные данные (истёк срок сеанса OAuth, отключен/недействителен ключ API)
- : в вашей учетной записи или ключе API недостаточно средств. Добавьте больше кредитов и повторите запрос.
- : запрещено (недостаточно разрешений, блокировка ограждения или флаг модерации)
- : время ожидания вашего запроса истекло.
- : ваша скорость ограничена.
- : выбранная вами модель не работает или мы получили от нее неверный ответ.
- : нет доступного поставщика модели, соответствующего вашим требованиям маршрутизации.
Заголовок Retry-After
Вкл. и Параметры ответов, LLMSTORE может включать стандартный HTTP-ответ.Retry-After заголовок ответа, указывающий, сколько секунд нужно подождать перед повторной попыткой.
fetch напрямую, соблюдайте его перед повторной попыткой:
Ошибки модерации
Если ваш ввод был помечен,error.metadata будет содержать информацию о проблеме. Форма метаданных следующая:
Ошибки ограждения
По эндпоинтам вывода (/chat/completions, /responses, /messages), запрос может быть заблокирован до того, как он достигнет провайдера — например, фильтром контента или детектором промпт-инъекций. Когда это происходит, ответом является 403 с сообщением о причине блокировки:
Ошибки провайдера
LLMSTORE нормализует каждую ошибку восходящего провайдера в стабильный, типизированныйerror_type словарь, описанный в разделе Типизированные коды ошибок.
То же самое Значения error_type описывают, что пошло не так, если провайдер Ошибка
поступает в тело ответа, не связанное с потоковой передачей, или как событие SSE в середине потока.
Коды нативных протоколов (Anthropic error.type, Responses error.code)
предоставляются по принципу best effort и могут различаться в зависимости от формата — поле error_type —
то, на которое стоит полагаться во всех форматах.
Для chat completions ошибка провайдера, прерывающая генерацию, переносит
error_type внутри error.metadata:
Маскирование и необработанные сведения о поставщике
Когда запрос завершается неудачей с500, message заменяется общей
строкой, а provider_code опускается, но
error_type все еще присутствует (server).
Для ошибок, отличных от 500, собственный код ошибки вышестоящего провайдера отображается в
error.metadata.provider_code, когда доступно.
Когда контент не генерируется
Иногда модель может не генерировать контент. Обычно это происходит, когда:- Модель прогревается с холодного старта
- Система масштабируется для обработки большего количества запросов.
Форматы ошибок потоковой передачи
При использовании режима потоковой передачи (stream: true), ошибки обрабатываются по-разному в зависимости от того, когда они возникли:
Ошибки перед потоковой передачей
Ошибки, возникающие перед отправкой токенов, соответствуют стандартному формату ошибок, указанному выше, с соответствующими кодами состояния HTTP. На этом этапе HTTP-ответ еще не зафиксирован, поэтому LLMSTORE может:- Возвращает правильный статус ошибки HTTP (4xx/5xx). — повторная попытка с использованием эндпоинта другого поставщика в автоматическом режиме, если резервная маршрутизация включено
- Применяйте ограничение скорости или проверку подлинности перед началом любой работы.
Ошибки среднего потока
Как только первый токен будет записан клиенту, HTTP Статус200 OK и заголовки уже зафиксированы — их нельзя изменить. Если на этом этапе у поставщика произойдет сбой, LLMSTORE не сможет автоматически переключиться на другого поставщика, поскольку часть содержимого уже доставлена в ваше приложение. Ошибка должна прийти внутриполосно как событие SSE.
Распространенные причины ошибок в середине потока:
- Отключение провайдера — восходящее соединение разрывается после частичного вывода (проблема с сетью, сбой провайдера, тайм-аут балансировщика нагрузки)
- Тайм-аут поставщика — модель перестает отвечать в середине поколения, и срок чтения истекает.
- Предел токена достигнут во время генерации — модель достигает
max_tokensили контекстное окно заполняется при выводе данных - Фильтр выходного контента — система модерации контента помечает сгенерированный текст после того, как часть его уже была передана в потоковом режиме.
- Перегрузка поставщика — восходящий поток возвращает ошибку ограничения скорости или емкости после начала потоковой передачи.
Если ошибка возникает до записи каких-либо токенов — даже при потоковом запросе — LLMSTORE все равно может прозрачно повторить попытку с резервным поставщиком. Ошибки в середине потока возникают только в том случае, если часть контента уже зафиксирована в вашем потоке, что делает аварийное переключение невозможным.
- Ошибка появляется на верхнем уровне рядом со стандартными полями ответа.
error.metadata.error_typeсодержит введенный код, который можно включить программно — см. Введенные коды ошибок для полного списка- А Массив
choicesвключен в составfinish_reason: "error", чтобы правильно завершить поток - Статус HTTP остается 200 OK, поскольку заголовки уже отправлены.
- Поток прекращается после этого события.
- При ошибках класса 500,
error.messageзаменяется общей строкой иprovider_codeопущен во избежание утечки данных восходящего потока.
Введённые коды ошибок
Когда ошибка провайдера достигает вашего приложения, LLMSTORE помечает ее тегом канонический Строкаerror_type — как в теле ответа, не связанного с потоковой передачей, так и в
о промежуточных мероприятиях SSE. Используйте это значение, а не только код состояния HTTP, чтобы
программно различать категории ошибок. Он стабилен во всех трех
Оболочки API, даже если код собственного протокола содержит потери.
Где появляется error_type, зависит от формы API и пути:
- Chat Completions:
error.metadata.error_type— об ошибке в середине потока чанк (см. Ошибки в середине потока) и на непотоковом режиме ответ, когда ошибка провайдера прерывает генерацию. - Anthropic Messages:
error.error_typeна SSE Событиеerrorи конверт ошибки отсутствия потоковой передачи. - Ответы: верхний уровень
error_typeв случае неудачного ответа, как для потоковая передача Событиеresponse.failedи непотоковое тело JSON.
error_type соответствует указан в таблицах ниже.
Токен и ограничения на длину
Аутентификация и авторизация
Ограничение скорости и доступность
Запросить проверку
Политика в отношении контента
Ошибки изображения
Общий
Форматы ошибок для каждой формы API
LLMSTORE предоставляет три оболочки API. Каждый из них преобразует одни и те же типы ошибок внутреннего поставщика в свой собственный формат передачи, как для непотоковых ответов, так и для внутрипотоковых ошибок. В каждом случаеerror_type – стабильное поле; Расположение проволоки зависит от кожи.
Chat Completions (/v1/chat/completions)
Ошибки Mid-stream отображаются в виде chat.completion.chunk с высшим уровнем error объект (форма показана выше). Поле error.metadata.error_type содержит введенный код.
Для непотоковых запросов, в которых возникает ошибка поставщика, ошибка встраивается в окончательный ответ вместе с любым частичным содержимым:
Responses API (/v1/responses)
API Responses сопоставляет внутренние типы ошибок с набором кодов ошибок OpenAI Responses. Отображение более узкое — многие отдельные внутренние типы схлопываются в server_error — поэтому точная причина сохраняется в файле верхнего уровня. Поле error_type в ответе, за пределами родного error объект:
И событие потокового терминала, и тело непотокового JSON несут канонический
error_type на верхнем уровне объекта ответа. Например, ошибка аутентификации сворачивается в собственный server_error код, но сохраняется error_type: "authentication":
-
response.failed— терминальное событие, когда ответ не может быть завершен: -
response.error— ошибка при формировании ответа: -
error— событие простой ошибки (соответствует поведению исходного OpenAI):
Преобразования кодов ошибок
Определенные ошибки токена/длины преобразуются в успешные завершения, а не в неудачи:
Это позволяет корректно обрабатывать ошибки, связанные с ограничениями, не рассматривая их как сбои.
Anthropic Messages (/v1/messages)
Оболочка Anthropic Messages сопоставляет внутренние типы со строками типов ошибок Anthropic:
Потому что родной
error.type имеет потери (многие внутренние типы сворачиваются в api_error), канонический error_type добавляется внутри error объект рядом с ним. Это справедливо как для конверта непотоковой ошибки, так и для SSE в промежуточном потоке. error событий.
Конверт ошибки отсутствия потоковой передачи:
error событие такой же формы:
Отладка
LLMSTORE предоставляет Опцияdebug , которая позволяет вам проверить точное тело запроса, отправленное вышестоящему поставщику. Это работает как с API завершения чата (/v1/chat/completions) и Responses API (/v1/responses). Полезно для понимания того, как LLMSTORE преобразует параметры вашего запроса для разных поставщиков.
Форма опции отладки
Параметр отладки представляет собой объект следующей формы:Использование
Чтобы включить отладочный вывод, включите Параметрdebug в вашем запросе:
Chat Completions
Responses API
Формат ответа отладчика
Chat Completions
Когдаdebug.echo_upstream_body установлено на true, LLMSTORE отправляет фрагмент отладки в качестве первого фрагмента в потоковом ответе. Этот чанк имеет пустой массив choices и включает в себя Поле debug с преобразованным телом запроса:
Responses API
В Responses API отладочные данные поступают в видеresponse.debug Мероприятие SSE:
Важные примечания
Варианты использования
Отладочный вывод особенно полезен для:-
Понимание преобразований параметров. Узнайте, как LLMSTORE сопоставляет ваши параметры с форматами, специфичными для поставщика (например, как
max_tokensустановлен, какtemperatureобрабатывается). - Проверка форматирования сообщений: проверьте, как LLMSTORE объединяет и форматирует ваши сообщения для разных поставщиков (например, как объединяются системные сообщения, как объединяются пользовательские сообщения).
- Проверка примененных значений по умолчанию: посмотрите, какие значения по умолчанию применяются LLMSTORE, когда параметры не указаны в вашем запросе.
- Отладка резервных провайдеров: при использовании резервных провайдеров блок отладки будет отправлен для каждого провайдера, который пытался использовать, что позволит вам увидеть, какие провайдеры были опробованы и какие параметры были отправлены каждому.