Диагностика разрывов соединения
Генерация изображений — это длительный запрос (10–60 секунд), и разрывы соединения в большинстве случаев вызваны таймаутом клиента или промежуточного слоя. Проверяйте по порядку ниже.
Список проверок
-
Таймаут HTTP-клиента: у requests / axios / fetch значение по умолчанию обычно составляет 30 секунд, что меньше времени генерации, поэтому соединение обязательно оборвётся. Унифицируйте и установите ≥120 секунд:
client = OpenAI(base_url="...", api_key="...", timeout=180) -
Таймаут собственного обратного прокси: у nginx по умолчанию
proxy_read_timeout 60s, это тоже нужно увеличить:proxy_read_timeout 180s;proxy_send_timeout 180s; -
Ограничение размера тела ответа: при возврате base64 объём ответа может достигать нескольких МБ, проверьте у прокси и шлюза
client_max_body_size/ верхний предел body; -
Корпоративная сеть/прокси: некоторые корпоративные прокси обрывают долгие соединения, сравните с прямым подключением;
-
Слишком высокая параллельность: при большом числе одновременных запросов часть из них ставится в очередь, и после увеличения общего времени выполнения срабатывает таймаут — уменьшите параллельность или добавьте очередь.
Правильная обработка после разрыва
- Неудачные запросы не списывают оплату (предварительная блокировка автоматически возвращается), их можно безопасно повторить;
- Используйте повторные попытки с экспоненциальной задержкой (5s → 15s → 45s), не отправляйте сразу много повторов;
- Случайные 5xx в часы пик — это колебания на стороне вышестоящего сервиса; обычно восстановление происходит после 1–2 повторов, см. Коды ошибок и повторные попытки.
Если всё ещё не решено
В консоли в «Журнале» проверьте статус этого запроса; приложите время запроса и имя модели, чтобы служба поддержки могла проверить проблему на стороне канала.