Лимиты и тарифы
Минимумы и максимумы
- Минимальное пополнение: 100 ₽.
- Максимальное пополнение за раз: 50 000 ₽.
- Welcome-бонус: +150 ₽ при первом пополнении ≥ 1000 ₽.
- Email-триал: +30 ₽ при подтверждении почты (нельзя использовать на дорогих моделях).
Курс
Курс обновляется раз в час из API ЦБ РФ. К курсу добавляется спред (по умолчанию 3% из env, можно переопределить в админке → Система → «Курс USD/RUB»).
Администратор может задать ручной USD/RUB — он применяется по всей системе (прайсинг, списания, лимиты ключей в LiteLLM). Если ручной курс пуст — используется ЦБ + спред.
Лимиты ключей и LiteLLM
Лимиты ключа в рублях (дневной / месячный) при создании и обновлении пересчитываются в USD и передаются в LiteLLM как max_budget + budget_duration (1d / 30d). Формула: usd = rub / (курс × (1 + markup%)), где markup — DEFAULT_MARKUP_PCT. Приоритет: дневной лимит, затем месячный.
Наценка
Базовая политика: розница = ×2 к цене OpenRouter.
- в
pricing_rulesполеbase_*_usdсинхронизируется с каталогом OpenRouter (Celery, при старте API, CLIsync-openrouter-pricing); markup_pctпо умолчанию 100% (DEFAULT_MARKUP_PCT=100), то есть итог в USD =base × 2;- в рублях:
base × 2 × курс ЦБ со спредом— см. каталогGET /api/v1/pricing.
Списание
LiteLLM-прокси считает usage в USD по фактическим ценам OpenRouter. После каждого успешного запроса LiteLLM шлёт webhook в FastAPI (/webhooks/litellm/usage), баланс списывается сразу и UI получает обновление по SSE.
Дополнительно каждые 30 секунд Celery reconcile подтягивает /spend/logs как fallback. Формула списания:
rub = usd × (1 + markup_pct / 100) × (cbr_usd_rub × (1 + spread_pct / 100))Списание — append-only в журнал баланса. Идемпотентность гарантируется по LiteLLM request_id.
Что происходит при нулевом балансе
При очередном reconcile, если balance ≤ 0, все активные ключи юзера получают статус insufficient_funds (LiteLLM block_key). После любого успешного пополнения они автоматически разблокируются.
RPM / TPM
По умолчанию ключ без указанных RPM/TPM-лимитов уважает лимиты OpenRouter. Установите явные лимиты в настройках ключа, чтобы защититься от утечек или ошибочного цикла в коде.