Перейти к содержимому
17.7k

Допуск входящих тел запросов

Справочник конфигурации провайдеров описывает maxInboundBodyBytes — максимальный размер декодированного входящего тела JSON. Значение по умолчанию остаётся 256 МиБ; настройка допускает значения от 1 до 512 МиБ. После изменения лимита перезапустите прокси, чтобы слушатель и обработчики чтения одновременно перешли на нужное значение.

Если итоговый лимит превышает 256 МиБ, каждый охватываемый HTTP-запрос резервирует весь настроенный объём из общего для процесса бюджета допуска в 512 МиБ. Поэтому одновременно выполняется не более одного такого запроса, даже если процесс обслуживает несколько слушателей. Небольшое тело тоже резервирует весь объём: ни малый Content-Length, ни сжатие не обходят допуск. Резерв сохраняется до завершения потока ответа, ошибки или окончания отмены, а не только до разбора JSON запроса.

Охватываются POST-эндпоинты /v1/responses, /v1/responses/compact, /v1/chat/completions, /v1/messages, /v1/messages/count_tokens, /v1/images/generations, /v1/images/edits и /v1/alpha/search. Для изображений, поиска и подсчёта токенов сохраняются их настраиваемые лимиты тела. Внутренний прямой перевод запросов и вызовы combo не резервируют второй HTTP-допуск. Лимиты управления, аудио, истории контекста и WebSocket не меняются.

Отсутствующая или нулевая настройка, как и итоговый лимит не выше 256 МиБ, не включает этот дополнительный барьер параллельности. Существующие ограничения числа запросов и других ресурсов продолжают действовать.

Временная нехватка допуска даёт HTTP 503, Retry-After: 1 и код ошибки server_busy ещё до разбора протокола и отправки провайдеру. Клиенты Messages и подсчёта токенов получают ошибку в формате Anthropic с типом overloaded_error; OpenAI-совместимые клиенты — server_error. Повторите запрос после завершения текущего, соблюдая заголовок повтора и задержку клиента. Дальнейшее увеличение лимита тела не устраняет занятый допуск.

Тело, превышающее лимит отдельного запроса, по-прежнему получает HTTP 413. Если превышение заявлено заранее, применяется именно этот путь, а не отказ из-за занятости. При отключении сохраняется прежнее поведение отмены. Проверки аутентификации и источника выполняются до барьера параллельности.

512 МиБ — это сумма допущенных лимитов отдельных запросов, а не гарантия того, что память процесса останется ниже 512 МиБ. Декодирование, строки, графы объектов, копии запросов и другое состояние приложения занимают дополнительную память. Существующие измерения UTF-8 и повторно сериализованного JSON сохраняются: длина входных данных в байтах не подменяет потенциально больший размер нормализованного JSON.

Для параллельных небольших запросов по возможности оставляйте лимит по умолчанию. Увеличивайте его осознанно для сценариев с большой историей, учитывая дополнительное ограничение параллельности.