Перейти к содержимому
Все проекты

SaaS · AI-видео · Биллинг

Yepic AI — платформа AI-видеоаватаров

Backend Yepic AI — SaaS для AI-видеоаватаров: аккаунты, публичный API, биллинг по использованию и оркестрация внешних AI-сервисов. Разработан в Launchist.

Моя роль
Backend-разработчик в Launchist. Работал над API, интеграцией биллинга и платежей и фоновой обработкой.
Стек
  • Python
  • FastAPI
  • PostgreSQL
  • MongoDB
  • Redis
  • Lago
  • Stripe
  • Vertex AI

Задача

Продукт продаёт генерацию AI-видео по использованию — через веб-студию и публичный API — и опирается на несколько внешних AI-сервисов. Использование нужно точно учитывать и выставлять в счёт, а долгие задачи вроде обучения аватара и генерации видео должны переживать перезапуски и сообщать о прогрессе.

Архитектура

Yepic AI — платформа AI-видеоаватаров — Схема архитектурыClientsstudio · public APIFastAPIauth · API keysLago · Stripeusage billingVertex AIavatar trainingTavus · Dailyreal-time callsTTS providersCartesia · ElevenLabsPostgreSQLbilling · usersMongoDBtask queueRediscache
Веб-студия и API-клиенты обращаются к backend на FastAPI. Пользователи, подписки, счета и кошельки хранятся в PostgreSQL; разговоры, персоны и очередь фоновых задач — в MongoDB; Redis кэширует ответы. Backend отправляет данные об использовании в Lago, принимает платежи через Stripe, запускает обучение аватаров в Vertex AI, начинает real-time разговоры через Tavus и Daily и синтезирует речь через несколько TTS-провайдеров.

Ключевые решения

  1. 01Вебхуки биллинга сохраняются до обработки

    Почему
    Каждое событие Lago сначала записывается, а затем передаётся отдельному обработчику для своего типа — счёт создан, оплачен, просрочен, платёж не прошёл и так далее. Если обработчик упадёт, событие не потеряется и его можно обработать повторно.
    Компромисс
    Дополнительная таблица и отдельный класс-обработчик на каждый тип события.
  2. 02Внешние провайдеры за фабриками

    Почему
    Бэкенды обучения, движки синтеза речи (Cartesia, ElevenLabs, Google, Amazon Polly) и версии моделей выбираются через фабрики, поэтому добавление провайдера или новой версии модели не затрагивает бизнес-логику.
    Компромисс
    Больше косвенности, когда нужно проследить запрос по коду.
  3. 03Проверка API-ключей и тарифа в middleware

    Почему
    Middleware находит API-ключ и проверяет, что подписка активна и тариф включает доступ к API, — правила монетизации применяются в одном месте для всех эндпоинтов.

Что я сделал

  • Backend на FastAPI с PostgreSQL (SQLAlchemy, Alembic) и MongoDB (Beanie)
  • Биллинг по использованию на Lago и Stripe, вебхуки для счетов, кошельков и подписок
  • Публичный API с ключами, доступ к которым зависит от тарифа
  • Обучение аватаров в Vertex AI с вебхуками о прогрессе
  • Real-time AI-разговоры через Tavus и Daily; подключаемые TTS-провайдеры
  • Очередь фоновых задач с зависимостями: резюме разговора → генерация видео → проверка статуса