Документация

Система кредитов

Управляйте использованием AI-функций через кредиты с поддержкой бонуса за регистрацию, ежедневных начислений, подписочных начислений и отдельной покупки

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

Включить кредиты

Добавьте в .env:

VITE_CREDIT_ENABLE=true

Или включите в панели конфигурации в админке.

Источники кредитов

Пользователь может получать кредиты следующими способами:

ИсточникОписание
Бонус за регистрациюВыдается автоматически новым пользователям, можно задать количество и срок действия
Ежедневное начислениеАвтоматически начисляется каждый день после входа, добавляется к балансу
Начисление по подпискеВыдается при активации или продлении подписки, настраивается в payment-config.ts
Покупка кредитного пакетаПользователь покупает отдельный пакет в магазине кредитов, пакет управляется из админки
Выдача администраторомАдмин вручную добавляет кредиты выбранному пользователю

Бонус за регистрацию

VITE_CREDIT_SIGNUP_BONUS_ENABLED=true
VITE_CREDIT_SIGNUP_BONUS_AMOUNT=100
VITE_CREDIT_SIGNUP_BONUS_EXPIRE_DAYS=30

Новый пользователь автоматически получает 100 кредитов, которые сгорают через 30 дней. Если EXPIRE_DAYS не задан, кредиты не истекают.

Ежедневное начисление

VITE_CREDIT_DAILY_ENABLED=true
VITE_CREDIT_DAILY_AMOUNT=10

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

Кредитные пакеты

Кредитные пакеты позволяют пользователю покупать кредиты по мере необходимости. Их можно создавать и редактировать в панели администрирования.

Определите перевод

Добавьте описание пакета в src/config/locale/credit-packages.content.ts:

credit_100: {
  name: t({ en: "100 Credits", ru: "100 кредитов" }),
  description: t({ en: "Perfect for temporary testing", ru: "Подходит для временного тестирования" }),
},

Имя ключа можно выбрать самостоятельно, например credit_100. Затем этот key указывается при создании пакета в админке.

Создайте пакет

Войдите как администратор, откройте страницу «Управление кредитными пакетами» в админке и нажмите добавление. Сначала введите key перевода из предыдущего шага, затем после проверки заполните количество кредитов, цену и Price ID.

Price ID сначала нужно создать на платежной платформе, например Stripe, а затем вставить сюда.

Опубликуйте

Включите переключатель Active, и пакет появится в магазине кредитов для пользователей.

Credit Package Management

Внимание

Кредитные пакеты зависят от платежной системы. Сначала завершите настройку Stripe или другого платежного канала.

Разрешить покупку для бесплатных пользователей

По умолчанию покупать кредитные пакеты могут только подписчики. Если вы хотите разрешить это бесплатным пользователям:

VITE_CREDIT_ALLOW_FREE_USER_PURCHASE=true

Кредиты в подписке

В подписке можно настроить автоматическую выдачу кредитов после каждого платежа. Это задается в src/config/payment-config.ts:

{
  id: "pro",
  planType: "subscription",
  credit: {
    amount: 100,       // начислять 100 кредитов за оплату
    expireDays: 31,    // истекают через 31 день
  },
  // ...prices
}

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

Правила расходования

При списании кредиты расходуются в таком приоритете:

  1. Кредиты, полученные ежедневно
  2. Кредиты с ограниченным сроком действия, по ближайшему сроку истечения
  3. Бессрочные кредиты

Если баланса не хватает, система покажет подсказку о нехватке кредитов и предложит купить пакет.

Справка по настройке

Все переменные, связанные с кредитами, можно менять и в панели конфигурации админки.

Credit Configuration

Переменная окруженияТипЗначение по умолчаниюОписание
VITE_CREDIT_ENABLEbooleanfalseВключить систему кредитов
VITE_CREDIT_ALLOW_FREE_USER_PURCHASEbooleanfalseРазрешить бесплатным пользователям покупать пакет
VITE_CREDIT_SIGNUP_BONUS_ENABLEDbooleanfalseВключить бонус за регистрацию
VITE_CREDIT_SIGNUP_BONUS_AMOUNTnumber0Количество кредитов за регистрацию
VITE_CREDIT_SIGNUP_BONUS_EXPIRE_DAYSnumber30Срок действия бонуса в днях
VITE_CREDIT_DAILY_ENABLEDbooleanfalseВключить ежедневное начисление
VITE_CREDIT_DAILY_AMOUNTnumber0Количество ежедневных кредитов

Содержание