Если API OpenAI выдаёт ошибку превышения лимитов квот (HTTP 429), это означает, что вы исчерпали установленный лимит запросов или расходов за определённый период. Решение зависит от типа лимита: нужно либо повысить квоту в биллинге, либо оптимизировать частоту запросов, либо внедрить механизм повторных попыток с экспоненциальной задержкой.
Причины проблемы
- Превышен лимит использования в месяц (установленный в Account Settings → Billing)
- Достигнут максимум одновременных запросов в секунду (rate limit)
- Исчерпана квота для конкретной модели (GPT-4, GPT-3.5 и т. д.)
- Неправильно настроена обработка ошибок в коде приложения
- Попытка доступа с неактивного или заблокированного ключа API
- Использование пробного периода с истёкшей датой
Пошаговая инструкция по решению
- Откройте личный кабинет OpenAI по адресу
https://platform.openai.com/account/billing/overview. - Перейдите на вкладку
Usageи проверьте текущий расход токенов. - Нажмите на
Limits(в левом меню) и посмотрите установленные лимиты использования и скорости запросов. - Если причина в лимите использования, нажмите
Set usage limitsи увеличьте значение в полеHard limit(максимум расходов в месяц). - Если причина в rate limit, нажмите
Rate limitsи запросите увеличениеRequests per minute (RPM)иTokens per minute (TPM). - Если у вас пробный период, перейдите на
Billing→Overviewи добавьте способ оплаты (кредитную карту). - В коде приложения внедрите механизм повторных попыток с задержкой. Используйте библиотеку
tenacity(Python) или встроенный retry в официальной библиотеке OpenAI. - Добавьте обработчик для ошибки 429: при получении такой ошибки приложение должно ждать время, указанное в заголовке
Retry-After, а затем повторить запрос. - Оптимизируйте запросы: сокращайте количество токенов в промптах, используйте кэширование результатов, группируйте несколько задач в один запрос.
- Если используете батчевую обработку, включите режим
Batch API(более дешёвый и без rate limits). - Проверьте ключ API в переменной окружения
OPENAI_API_KEY— убедитесь, что он актуальный и не скопирован с лишними пробелами. - Перезагрузите приложение или сервис после внесения изменений в конфиг.
Часто задаваемые вопросы
Как узнать точную причину ошибки 429? Проверьте сообщение об ошибке в логах: если там написано «You exceeded your current quota», это лимит использования; если «Rate limit exceeded», это ограничение по скорости запросов.
Сколько времени ждать перед повторной попыткой? Смотрите заголовок ответа Retry-After (время в секундах); если его нет, начните с 1 секунды и увеличивайте экспоненциально (1, 2, 4, 8 секунд).
Можно ли полностью избежать ошибки 429? Да — установите лимиты выше, чем реальное потребление, используйте Batch API для некритичных задач и всегда добавляйте обработку retry в код.