Megascope — агрегатор нейросетей для генерации и поиска контента
Мультитенантный AI SaaS, который объединяет генерацию изображений, видео, озвучки и музыки и поиск контента по платформам в одном рабочем пространстве с единым токеновым балансом.
Проблема
Создатели контента жонглируют десятком разных AI-сервисов и подписок — одна для картинок, другая для видео, озвучки, музыки, плюс парсеры для ресёрча — у каждого свой вход, биллинг и кривая обучения.
Результат
Одна платформа, объединяющая множество AI-провайдеров в едином пространстве: генерация изображений, видео, озвучки и музыки, поиск контента по YouTube, TikTok, Instagram, Telegram и RSS — и оплата всего этого с единого токенового баланса.
Технологии
Обзор
Megascope — это мультитенантная AI SaaS-платформа, которая объединяет множество нейросетей в одном рабочем пространстве. Вместо прыжков между разными инструментами пользователь работает внутри проекта и достаёт любую возможность из одного сайдбара: AI-ассистент, поиск контента по соцплатформам и четыре студии генерации — изображения, видео, озвучка и музыка. Всё списывается с единого баланса токенов, поэтому одно пополнение питает любую модель. Продукт — это монорепозиторий: React-приложение (SPA), асинхронный Node.js-воркер и Supabase в роли всего бэкенда (Auth, Postgres с row-level security, RPC, Storage и Edge Functions).
Проблема
Современная работа с контентом размазана по десятку AI-сервисов. Одна подписка генерирует картинки, другая — видео, третья отвечает за озвучку или музыку, а ресёрч — это ещё парсеры для YouTube, TikTok и прочего. У каждого свой аккаунт, свой биллинг, свои причуды и свой счёт в конце месяца. Для создателя или небольшой команды это смерть от тысячи логинов — расходы невозможно отследить, ничто не делит общее пространство, а накладные расходы на переключение инструментов съедают то время, которое AI должен был сэкономить.
Решение
Megascope схлопывает это разрастание в один продукт. За чистым пространством проекта он маршрутизирует запросы ко многим AI-провайдерам через единый слой исполнения, поэтому один и тот же интерфейс генерирует картинку, клип, озвучку или трек. Модуль поиска контента подтягивает каналы, видео и аналитику из YouTube, TikTok, Instagram, Telegram и RSS в единое представление результатов для ресёрча и вдохновения. Встроенный AI-ассистент позволяет переключаться между моделями вроде Claude и ChatGPT в одном чате. Ключевое: каждое действие — генерация или поиск — тарифицируется в один токеновый баланс, пополняемый криптой или картой, так что пользователь думает о стоимости в одной валюте, а не в десятке счетов. Проекты можно расшаривать на коллег с ролями, а админ-слой управляет конфигом, очередями и использованием.
Возможности
- Четыре студии генерации — изображения, видео, озвучка (text-to-speech) и музыка — каждая с выбором модели, параметрами и каталогом результатов
- Поиск контента по платформам — YouTube, TikTok, Instagram, Telegram и RSS, со своими типами поиска и единым гридом результатов
- AI-ассистент с переключателем моделей (Claude, ChatGPT и др.) и сохранёнными диалогами
- Проектные пространства — приватные или общие, с участниками, ролями, KPI и историей задач по проекту
- Единый токеновый биллинг — один баланс для всех моделей, пополнение через Cryptomus, Robokassa и другие шлюзы, история платежей
- Файлы / Assets — загрузка, организация по папкам, переиспользование сгенерированных и исходных медиа
- Асинхронный воркер, выполняющий каждую задачу генерации и поиска и считающий её стоимость в токенах
- Админ-панель — конфиг, очереди, использование и управление пользователями
- Интернационализированный интерфейс со светлой/тёмной темой и командной палитрой ⌘K
Процесс разработки
Архитектура намеренно лаконична: Supabase как единственный бэкенд. Auth, схема Postgres, row-level security, RPC-контракты и Storage живут там, а схема БД — единый источник истины, управляемый исключительно через миграции, без правок в обход. React-приложение (Vite + TanStack Router) — чистый клиент, который общается с Supabase и рисует пространство; в нём нет бизнес-правил, которые должна обеспечивать RLS. Тяжёлая работа происходит в отдельном Node.js-воркере: генерация и поиск — это долгие, зависящие от провайдера задачи, поэтому приложение ставит задачу в очередь, а воркер исполняет её асинхронно, затем пишет результаты и списывает токены по строгому протоколу. Общение со множеством разных AI-провайдеров через один интерфейс решается через LiteLLM, который отображает единообразный запрос в API каждого провайдера (например, OpenAI-style имена голосов в voice ID ElevenLabs). Связка «очередь задач + RLS» и есть то, что позволяет одной платформе безопасно агрегировать много моделей для многих тенантов.
Результаты
- Единое пространство, заменяющее десяток отдельных AI-подписок и парсеров
- Генерация изображений, видео, озвучки и музыки — из одного сайдбара и с одного баланса
- Ресёрч контента по пяти платформам, сведённый в одно поисковое представление
- Тарификация в токенах, делающая мультипровайдерную стоимость AI понятной в одной валюте
- Мультитенантные проекты с ролями и изоляцией через RLS, готовые к командам
Выводы
Ключевым стало решение сделать Supabase всем бэкендом и вынести всё исполнение в воркер. С RLS как границей безопасности и очередью задач как границей исполнения React-приложение остаётся тонким и безопасным, а долгие, нестабильные, зависящие от провайдера AI-задачи выполняются там, где их можно ретраить и тарифицировать. Агрегация многих моделей — это меньше про сами модели и больше про единообразный слой запросов (LiteLLM) и честный слой биллинга (один токеновый реестр): сделай эти два правильно — и добавление следующего провайдера становится изменением конфигурации, а не переписыванием.