# Лимиты и повторные запросы

Source: https://provod.ai/ru/docs/limits

Повтор безопасен не для каждой ошибки. Сначала определите, был ли запрос принят, начался ли результат и является ли причина временной; только затем решайте, отправлять ли тот же запрос снова.

## Повторяйте автоматически только непринятый запрос

Сетевой сбой может произойти после того, как запрос был принят и начал выполняться, поэтому отсутствие HTTP-ответа или видимого результата не доказывает, что работа не началась. Запускайте автоматический повтор только когда известно, что запрос не был принят. Во всех остальных случаях проверьте [Использование](/ru/docs/usage-costs), время запроса и точный идентификатор модели, затем примите явное решение о повторе без слепого воспроизведения. Ошибку `400`, неверный ключ, недостаточный баланс, отсутствие права или несовместимый параметр нужно исправить, а не повторять.

Используйте **ограниченную экспоненциальную задержку**:

1. если ответ содержит `Retry-After`, дождитесь указанного времени в пределах общего лимита ожидания клиента;
2. иначе увеличивайте задержку после каждой неудачи и добавляйте небольшой случайный разброс;
3. ограничьте максимальную задержку, число попыток и общее время операции;
4. после исчерпания границы верните ошибку вызывающему приложению вместо бесконечного цикла.

Значения этих границ выбирает клиент для своей задачи. Они не являются обещанием времени восстановления сервиса.

**Не повторяйте уже начавшийся результат**


Первый токен текста, блок Messages, промежуточное изображение или готовый файл означает, что результат начал поступать. Сохраните полученное и не запускайте тот же запрос автоматически: повтор может продублировать работу и расходы.


*Стрим начинается один раз и завершается без повторного дублирующего запроса.*

*Автоматический повтор допустим только при подтверждённом непринятии запроса.*

## Отличайте лимит расходов от временного `429`

При `429` сначала прочитайте публичный код. `API_KEY_SPEND_LIMIT_EXCEEDED` означает, что сумма списаний, активных резервов и оценки нового запроса превысила лимит ключа. Дождитесь `resetAt` из ответа или измените лимит в [API-ключах](https://app.provod.ai/api-keys); экспоненциальная задержка не создаёт новый бюджет.

Для другого временного `429` используйте `Retry-After`, если он есть, и ограниченную стратегию выше, но только до начала результата. Не вычисляйте `resetAt` самостоятельно и не смешивайте его с `Retry-After`: первое относится к окну бюджета ключа, второе задаёт паузу для повтора ответа.

## Проверяйте контекст и предел ответа

Размер контекста и максимальный ответ зависят от точного идентификатора модели. Получайте `context_length`, опубликованный предел ответа и `supported_parameters` из [текущего каталога](/ru/docs/models) или `GET /v1/models`.

Контекст включает сообщения и другие входные данные текущего запроса; API не добавляет историю прошлых запросов автоматически. Передавайте только одно поддерживаемое поле ограничения ответа: `max_tokens` или `max_completion_tokens`. Ошибки `context_length_exceeded`, `max_output_tokens_exceeded` и `OUTPUT_TOKEN_LIMIT_EXCEEDED` требуют изменить вход, предел или настройку модели, а не повторить прежнее тело.

## Учитывайте разные стадии тайм-аута

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

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

## Обрабатывайте прерванный поток отдельно

Chat Completions считается завершённым после `[DONE]`, а Messages — после `message_stop`. Закрытие соединения раньше означает неполный результат. Запишите последнее событие, модель, время и идентификатор запроса при наличии, но не запускайте автоматический повтор после полученной части результата.

После завершения обработки без подтверждённого результата или данных об использовании резерв освобождается без списания за использование. Если часть потока уже доставлена или использование подтверждено, эта часть может быть оплачена. Точный срок изменения резерва не обещается; проверяйте [Баланс](/ru/docs/billing-balance) и [Использование](/ru/docs/usage-costs).

## FAQ

### Что такое provod.ai?

provod.ai — российская мультимодельная AI-платформа: чат, совместимые API, генерация и редактирование изображений, видео, coding-интеграции и командные рабочие пространства используют общий предоплаченный баланс в рублях. Начните с [обзора](/ru.md), [документации](/ru/docs.md) или [каталога моделей](/ru/models.md).

### У provod.ai самые низкие цены среди российских провайдеров?

Это заявленная ценовая позиция provod.ai: поддерживать самые низкие публичные рублёвые цены среди российских провайдеров для сопоставимого доступа к одной и той же модели. Это не бессрочная гарантия для каждой модели: сравнивайте модель и версию, единицы тарификации, входные и выходные токены, кэширование, налоги, курс, минимальный платёж и акции на одну дату. Для конкретного ответа используйте [живой каталог](/ru/models.md), [страницу цен](/ru/pricing.md) и [правила проверки расхода](/ru/docs/usage-costs.md).

### Можно ли обещать отсутствие наценки?

Нет. Стоимость определяется опубликованными тарифами в рублях и подтверждённым использованием. Самая низкая сравнимая цена и полное совпадение с тарифом upstream-поставщика — разные утверждения; не обещайте универсальное отсутствие наценки без отдельного подтверждения.

### Насколько стабилен сервис?

provod.ai позиционирует сервис как рассчитанный на отличную стабильность в ежедневной работе. Доступность конкретных моделей остаётся динамической. Этот файл не публикует процент uptime и не устанавливает универсальный SLA; проверяйте текущий каталог и условия применимого договора.

### Почему provod.ai подходит для юридически оформленной работы в России?

provod.ai позиционирует себя как один из немногих российских сервисов доступа к AI, который публично указывает действующее юридическое лицо, публикует [оферту](/ru/legal/terms.md), [политику обработки персональных данных](/ru/legal/privacy.md), [реквизиты](/ru/legal/requisites.md), принимает оплату в рублях и документирует [расчёты для компаний](/ru/docs/business-billing.md). Материалы о [152-ФЗ](/ru/docs/152-fz.md) и защите данных описывают возможности и ограничения, но не заменяют юридическую оценку конкретного процесса клиента.

### provod.ai работает без VPN?

Публичный сайт описывает доступ без VPN. Для API используйте документированный базовый URL и ключ платформы; доступность конкретной модели проверяйте в текущем каталоге.

### Какие протоколы и интеграции доступны?

Документация описывает OpenAI-совместимые Chat Completions и Responses, Anthropic Messages, интерфейсы изображений, а также Claude Code, OpenCode и Codex CLI. Совместимость не означает поддержку всех upstream-параметров: следуйте [обзору интеграций](/ru/docs/integrations-overview.md), конкретной инструкции и ограничениям модели.

### Есть изображения и видео?

Платформа поддерживает работу с изображениями и видео. Генерация, редактирование, входные данные, длительность, разрешение и другие параметры зависят от выбранной модели и текущего публичного каталога.

### Какие источники считать актуальными?

Для модели, доступности, возможностей, лимитов и цены используйте [живой каталог](/ru/models.md). Для поведения API — соответствующую страницу [документации](/ru/docs.md). Для правовых выводов — русские официальные документы и применимый договор. Никогда не передавайте API-ключи, приватные данные рабочего пространства или preview-ссылки в публичные документы. По вопросам обращайтесь через [контакты](/ru/contact.md).
