Backend Yepic AI — SaaS для AI-видеоаватаров: аккаунты, публичный API, биллинг по использованию и оркестрация внешних AI-сервисов. Разработан в Launchist.
Моя роль
Backend-разработчик в Launchist. Работал над API, интеграцией биллинга и платежей и фоновой обработкой.
Стек
Python
FastAPI
PostgreSQL
MongoDB
Redis
Lago
Stripe
Vertex AI
Задача
Продукт продаёт генерацию AI-видео по использованию — через веб-студию и публичный API — и опирается на несколько внешних AI-сервисов. Использование нужно точно учитывать и выставлять в счёт, а долгие задачи вроде обучения аватара и генерации видео должны переживать перезапуски и сообщать о прогрессе.
Архитектура
Веб-студия и API-клиенты обращаются к backend на FastAPI. Пользователи, подписки, счета и кошельки хранятся в PostgreSQL; разговоры, персоны и очередь фоновых задач — в MongoDB; Redis кэширует ответы. Backend отправляет данные об использовании в Lago, принимает платежи через Stripe, запускает обучение аватаров в Vertex AI, начинает real-time разговоры через Tavus и Daily и синтезирует речь через несколько TTS-провайдеров.
Ключевые решения
01Вебхуки биллинга сохраняются до обработки
Почему
Каждое событие Lago сначала записывается, а затем передаётся отдельному обработчику для своего типа — счёт создан, оплачен, просрочен, платёж не прошёл и так далее. Если обработчик упадёт, событие не потеряется и его можно обработать повторно.
Компромисс
Дополнительная таблица и отдельный класс-обработчик на каждый тип события.
02Внешние провайдеры за фабриками
Почему
Бэкенды обучения, движки синтеза речи (Cartesia, ElevenLabs, Google, Amazon Polly) и версии моделей выбираются через фабрики, поэтому добавление провайдера или новой версии модели не затрагивает бизнес-логику.
Компромисс
Больше косвенности, когда нужно проследить запрос по коду.
03Проверка API-ключей и тарифа в middleware
Почему
Middleware находит API-ключ и проверяет, что подписка активна и тариф включает доступ к API, — правила монетизации применяются в одном месте для всех эндпоинтов.
Что я сделал
Backend на FastAPI с PostgreSQL (SQLAlchemy, Alembic) и MongoDB (Beanie)
Биллинг по использованию на Lago и Stripe, вебхуки для счетов, кошельков и подписок
Публичный API с ключами, доступ к которым зависит от тарифа
Обучение аватаров в Vertex AI с вебхуками о прогрессе
Real-time AI-разговоры через Tavus и Daily; подключаемые TTS-провайдеры
Очередь фоновых задач с зависимостями: резюме разговора → генерация видео → проверка статуса