Перейти к содержанию

Rate limits#

Боевые ключи (orb_live_)#

Лимит Дефолт Где смотреть
Per-key RPM 60 req/min /limits в боте
Per-user RPM 120 req/min (суммарно по всем live-ключам)
Per-key daily $ cap (не задан) /limits
Минимальный баланс $0.10 для старта запроса

Все RPM-лимиты — fixed-window per-minute через Redis INCR. Минута сбрасывается на UTC-границе.

При превышении — 429:

json { "error": { "message": "Rate limit exceeded: 61/60 req/min", "type": "rate_limit" } }

Sandbox-ключи (orb_test_)#

См. отдельную страницу: Sandbox-ключи.

Как видеть текущее использование#

В боте: /limits

``` Лимиты (сутки в UTC)

• default · orb_live_a1b2c3 RPM: 60 · daily: ∞ · потрачено сегодня: $0.0234

• ci · orb_test_x9y8z7 hard cap: 30 req/min · 1000 req/day · сегодня: 142 запроса ```

Reservation pattern#

Перед каждым запросом мы резервируем (hold) оценочный максимум стоимости (max_tokens × $50/1M токенов — верхняя оценка под самые дорогие модели) против твоего баланса. Это значит:

  • Параллельные запросы сериализуются на уровне баланса.
  • Если 60 параллельных стримов на дорогую модель попытаются запуститься с балансом $0.10 — пройдут только те, что суммарно укладываются.
  • После окончания запроса hold освобождается, фактическая стоимость списывается.

В обычной работе это незаметно. Влияет только при попытке параллелить дорогие запросы на низком балансе — увидишь 402 insufficient_funds.

Что делать если упёрся#

  1. 429 rate_limit — снизь частоту (экспоненциальная задержка), либо распредели запросы по нескольким ключам (но per-user RPM всё равно действует).
  2. 429 daily_limit — жди UTC-полночи или напиши @Byffee — поднимем дневной лимит на ключе.
  3. 402 insufficient_funds — пополни через /topup в боте.