Реклама
Селектел, перетяжка, 22.06
Селектел, перетяжка, 22.06
Селектел, перетяжка, 22.06

Как ограничить расходы на OpenAI API, чтобы ИИ-агенты не сожгли бюджет

Один зациклившийся агент может устроить счёт на тысячи долларов. Рассказываем, как встроенные инструменты OpenAI API помогают остановить неконтролируемые траты до того, как карта уйдёт в минус.

Обложка: Как ограничить расходы на OpenAI API, чтобы ИИ-агенты не сожгли бюджет

Если ваше приложение или агент работает с OpenAI API, один бесконтрольный цикл способен за несколько часов превратить пару долларов в счёт на сотни или тысячи. Хорошая новость: в кабинете разработчика уже есть инструменты, которые не дают бюджету уйти в свободное плавание.

В этой статье разбираем, как работают usage tiers, мягкие и жёсткие лимиты расходов, алерты и rate limits. И главное — что нужно учесть в коде, чтобы приложение корректно обработало отказ API.

Ключевые выводы

OpenAI API делит аккаунты на usage tiers: чем больше суммарно оплачено, тем выше месячный потолок расходов.

В настройках Limits можно задать собственный лимит трат, включить жёсткое ограничение и настроить email-алерты.

Жёсткий лимит отключает API при превышении бюджета: запросы начинают возвращать ошибку 429.

Rate limits ограничивают RPM, RPD, TPM и TPD по моделям; при превышении помогает экспоненциальный бэкофф.

В коде важно перехватывать 429, повторять запросы с задержкой и логировать расход токенов.

Как устроены usage tiers

Usage tiers — это автоматические уровни аккаунта, которые OpenAI выдаёт в зависимости от суммы уже оплаченных API-вызовов. Чем выше tier, тем больше месячный потолок трат и выше rate limits. Для новичка это двойная защита: даже если вы ничего не настраивали, система не даст потратить больше, чем разрешено текущему уровню.

Таблица tiers по состоянию на июль 2026

Данные взяты из документации OpenAI.

  • Free — доступен из разрешённых регионов, лимит $100 / месяц.
  • Tier 1 — нужно оплатить от $5, лимит $100 / месяц.
  • Tier 2 — оплачено от $50, лимит $500 / месяц.
  • Tier 3 — оплачено от $100, лимит $1 000 / месяц.
  • Tier 4 — оплачено от $250, лимит $5 000 / месяц.
  • Tier 5 — оплачено от $1 000, лимит $200 000 / месяц.
Важно:
После Tier 5 потолок резко растёт — именно на этом этапе жёсткий лимит расходов становится критичным. Без него зациклившийся агент теоретически может исчерпать шестизначную сумму до того, как вы заметите.

Лимит расходов: мягкий, жёсткий и алерты

На странице Limits в настройках организации можно задать три вещи: месячный бюджет, уведомления и автопополнение баланса.

  • Spend limit — мягкий потолок. OpenAI показывает предупреждение, но фактические траты могут его немного превысить.
  • Enforce hard limit — жёсткий потолок. При достижении лимита API начинает возвращать ошибку 429 и больше не списывает деньги.
  • Spend alerts — email-уведомление при достижении заданного процента от бюджета.
  • Auto recharge — автоматическое пополнение баланса с привязанной карты. При риске перерасхода его стоит отключить.

Рекомендация простая: для продакшена включайте Enforce hard limit и настраивайте алерты на 50% и 80%. Так у вас будет время разобраться, пока API ещё работает.

Rate limits: почему API отвечает 429

Rate limits — это не про деньги, а про нагрузку. OpenAI ограничивает количество запросов в минуту/день и токенов в минуту/день для каждой модели. Лимиты зависят от tier и модели: например, для gpt-4o и gpt-4o-mini они различаются.

  • RPM — requests per minute, запросы в минуту.
  • RPD — requests per day, запросы в день.
  • TPM — tokens per minute, токены в минуту.
  • TPD — tokens per day, токены в день.
  • IPM — images per minute, изображения в минуту (для моделей генерации картинок).

При превышении любого из лимитов API возвращает 429 Too Many Requests. OpenAI рекомендует обрабатывать эту ошибку через экспоненциальный бэкофф: повторять запрос с увеличивающейся паузой.

			import time
from openai import OpenAI, RateLimitError

client = OpenAI()

def chat_with_backoff(messages, max_retries=5):
    for attempt in range(max_retries):
        try:
            return client.chat.completions.create(
                model="gpt-4o-mini",
                messages=messages,
            )
        except RateLimitError:
            time.sleep(2 ** attempt)  # 1, 2, 4, 8, 16 секунд
    raise RuntimeError("Превышен лимит попыток")
		

Что делать в коде

  1. Перехватывайте 429 и различайте причину: rate limit, hard spend limit или квота по токенам.
  2. Используйте экспоненциальный бэкофф с джиттером, чтобы не «дудосить» API своими ретраями.
  3. Логируйте количество токенов и стоимость каждого вызова — лучше всего через поля usage в ответе.
  4. Для агентов добавьте circuit breaker: если бюджет исчерпан или ошибки 429 идут подряд, остановите цикл и уведомите команду.
  5. Не храните API-ключ в клиентском коде: утечка ключа — самый быстрый способ получить чужой счёт.

Пошаговая настройка

Как настроить защиту бюджета в OpenAI
  1. 01
    Откройте страницу Limits

    Войдите в аккаунт OpenAI и перейдите в Settings → Organization → Limits. Там виден текущий usage tier и текущие лимиты.

  2. 02
    Задайте месячный бюджет

    Нажмите Edit Spend Limit и введите сумму, которую готовы тратить за месяц. Рекомендуется начинать с реалистичного минимума.

  3. 03
    Включите жёсткий лимит

    Активируйте переключатель Enforce Hard Limit. После этого API будет отклонять запросы при исчерпании бюджета.

  4. 04
    Настройте алерты

    Добавьте Spend Alerts на 50% и 80% бюджета и укажите email, куда приходят уведомления.

  5. 05
    Проверьте Auto Recharge

    Если не хотите, чтобы баланс пополнялся автоматически, отключите Auto Recharge в настройках биллинга.

  6. 06
    Добавьте обработку 429 в код

    Убедитесь, что ваш клиент умеет спать и повторять запрос при RateLimitError и останавливаться при hard limit.

Часто задаваемые вопросы
1
Что такое usage tier в OpenAI API?

Это автоматический уровень аккаунта, который зависит от суммы уже оплаченных API-вызовов. От tier зависят месячный потолок расходов и rate limits.

2
Может ли OpenAI списать больше, чем установленный лимит?

Если включён только мягкий лимит (spend limit), реальные траты могут немного превысить его. Жёсткий лимит (Enforce Hard Limit) блокирует API и не даёт списать лишнее.

3
Что произойдёт, если агент превысит hard limit?

API начнёт возвращать ошибку 429. Запросы не выполняются, деньги не списываются, но приложение должно корректно обработать отказ.

4
Чем rate limits отличаются от spend limits?

Spend limits ограничивают деньги. Rate limits ограничивают скорость: количество запросов и токенов в минуту или день.

5
Как узнать свой текущий tier и лимиты?

Откройте страницу Limits в настройках организации OpenAI. Там показан tier, месячный потолок и rate limits по моделям.

Выводы

OpenAI API даёт в руки разработчика все нужные рычаги: usage tiers, spend limits, spend alerts, rate limits и жёсткое ограничение. Проблема не в отсутствии инструментов, а в том, что ими редко пользуются до первого «сюрприза» в биллинге.

Минимальный must have для любого проекта: включить Enforce Hard Limit, настроить алерты на 50% и 80%, отключить автопополнение, если бюджет критичен, и добавить в код обработку 429. Так вы защитите не только карту, но и репутацию команды.

Set up spend limits so rogue AIs don't exceed your budget. Rate limits are very easy to configure, making them a no-brainer for protecting your account.
David Gewirtzauthor, ZDNET

Источники:
ZDNET — How I set OpenAI API usage limits to stop agent overspending
OpenAI Docs — Rate limits