Личный кабинет проверки баланса, пополнения и переноса токенов
Спасибо, что пользуетесь NeuroZal! Мы нашли ошибку в тарификации части запросов и вернули списанные токены в ваш пакет — остаток в кабинете обновлён.

⏱ Как избежать обрывов при работе с длинными запросами

При работе с современными языковыми моделями через API — особенно если вы отправляете контекст больше 50 000 токенов — запрос иногда обрывается, а ответ так и не приходит. Ниже разобраны причины и точные настройки, которые убирают такие обрывы.

Главная причина: ваш HTTP-клиент закрывает соединение по внутреннему таймауту (обычно 30 или 60 секунд) раньше, чем модель успевает обработать большой промпт и вернуть первое слово. Время до первого токена (TTFT) растёт вместе с объёмом входа: для промптов 70 000–100 000 токенов это 30–50 секунд. При дефолтном таймауте 30 секунд соединение разрывает ваш же скрипт.

1. Увеличьте read timeout

Python, библиотека requests:

import requests

# НЕПРАВИЛЬНО: дефолтный или слишком маленький таймаут
# response = requests.post(url, headers=headers, json=data, timeout=30)

# ПРАВИЛЬНО: явно задаём увеличенный таймаут — 120 или 180 секунд
response = requests.post(url, headers=headers, json=data, timeout=120)

Python, официальный SDK OpenAI:

from openai import OpenAI
import httpx

client = OpenAI(
    api_key="sk-ваш-ключ",
    base_url="https://api.neurozal.ru/v1",
    timeout=httpx.Timeout(180.0, read=180.0),   # 3 минуты
)

Node.js / JavaScript, axios:

const axios = require('axios');

axios.post(url, data, {
  headers: headers,
  timeout: 120000          // 120 секунд в миллисекундах
});

2. Всегда используйте потоковый вывод (stream)

Если отправлять большой запрос монолитом (stream: false), балансировщики и прокси-серверы на пути трафика могут расценить долгое молчание как зависшее соединение (dead connection) и принудительно его разорвать.

Правило: если входной промпт больше 10 000 токенов — всегда stream: true.

При потоковом выводе первый же сгенерированный токен мгновенно отправляется вам и держит TCP-соединение активным. Это исключает обрывы со стороны промежуточных узлов связи.

3. Как работает тарификация при обрывах

4. Обработка SSE-комментариев (keep-alive пинги)

Чтобы удержать соединение во время долгого ожидания первого токена, шлюз может отправлять в потоке пустые комментарии в стандарте Server-Sent Events (SSE). Выглядит это так:

: PING
data: {"choices":[{"delta":{"content":"Привет"}}]}
Важно для самописных парсеров. Если вы не используете официальные SDK (OpenAI, LangChain), а разбираете ответ вручную — например через split("\n\n") — ваш код обязан игнорировать строки, начинающиеся с двоеточия (:). Попытка скормить строку : PING в JSON.parse() вызовет фатальную ошибку и оборвёт запрос. Официальные SDK обрабатывают это автоматически.

NEUROZAL API Support  •  api.neurozal.ru  •  2026