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

Проверка ответов и большие ответы

OpenCodex ограничивает объём сохраняемой диагностики ответов, не ограничивая тем самым объём данных, доставляемых клиенту. Другие ограничения провайдера, запроса и транспорта действуют независимо.

При проверке JSON сохраняется не более 32 МиБ исходных данных. Если тело превышает этот предел, журнал отбрасывает сохранённую копию, а исходный ответ продолжает передаваться клиенту. Усечённый префикс не разбирается как достоверный источник сведений о расходе токенов или модели. Данные о расходе из другого доверенного источника сохраняются; отсутствующие данные не заменяются выдуманным нулём. Для обычных ошибок вне JSON сохраняются только первые 8 КиБ диагностики, к которым применяется существующая очистка.

Клиент получает части ответа по мере чтения, не дожидаясь проверки всего тела для диагностики. Ошибка чтения записывается в историю запросов как 502, отмена — как 499; эти диагностические результаты не меняют уже отправленные заголовки HTTP. Запись в журнал завершается один раз.

Проверка нативного SSE приостанавливается, если слишком опережает чтение клиента. Допуск составляет 32 МиБ плюс накладные данные исходных частей и предварительного чтения; это не предел размера всего ответа и не предел всей памяти процесса. Более длинный ответ всё равно проверяется вплоть до фактического события завершения, включая итоговый расход и состояние продолжения.

После отключения клиента существующая ограниченная дочитка ещё может обнаружить позднее завершение: не более 15 секунд или 32 МиБ дополнительной проверки. Принудительная остановка ведёт себя иначе: незавершённые кандидаты отбрасываются, а не записываются как завершённый ответ. Выбор транспорта и ограничения памяти WebSocket не меняются. Новая настройка не требуется.