Контекст
ATOM начинался как AI-ассистент для предпринимателей и вырос в большую мульти-модульную платформу: вокруг RAG-чата собраны соцсеть, мессенджер, маркетплейс со сделками, кошелёк и биллинг, маркетинговые инструменты и mini-CRM. Всё доступно и в вебе, и в нативных мобильных приложениях. Под капотом — Spring Boot-монолит на 700+ Java-классов (сотни сервисов, репозиториев и контроллеров) и Next.js-фронтенд, упакованный в iOS/Android через Capacitor.
AI-ядро: RAG-чат
Сердце платформы — Retrieval-Augmented Generation: ответы строятся на управляемой базе знаний, а не на «памяти» модели.
- Ingestion-пайплайн: очистка текста (jsoup) → чанкинг (sliding window ~512 токенов, overlap ~100, токенизация через jtokkit) → эмбеддинг (
text-embedding-3-small) → upsert в Qdrant (max_knowledge). Источники: файлы (PDF/DOCX/XLSX/PPTX и др. через Apache Tika), текст, ссылки на YouTube/Kinescope с транскрипцией. - Retrieval: переписывание запроса (query rewrite), multi-hop-извлечение для сложных вопросов, сборка контекста с подтягиванием соседних чанков (±1), семантический кэш на Caffeine, мониторинг качества (
rag-health). - Чат: сессии и история в MongoDB (
chat_sessions,chat_messages), стриминг ответов через SSE, автогенерация заголовка сессии, режим «Размышления» (reasoning) с отдельным потоком рассуждений, пользовательская память (факты о бизнесе для персонализации). - Модели: абстракция
LlmProviderповерх OpenAI (gpt-4o / gpt-4-turbo / gpt-3.5-turbo); Yandex GPT (Alice) заложен интерфейсом.
Генерация контента
- Файлы из ответов — экспорт ответа ассистента в CSV / DOCX / PDF / XLSX (Apache POI, PDFBox).
- Изображения — генерация по промпту с reference-картинками, с предоплатой квоты.
- Видео — генерация роликов (длительность, разрешение, соотношение сторон) и анализ загруженного видео (хуки, удержание, CTA) с рекомендациями.
- Голос — транскрипция голосовых через OpenAI Whisper; TTS-слой заложен интерфейсами.
- Вложения — загрузка файлов к сообщениям с автоизвлечением текста через Apache Tika.
Социальная сеть и мессенджер
Полноценный социальный слой поверх ассистента:
- Профили и нетворкинг: профиль с нишами, аватаром и био; каталог людей
/social/peopleс поиском и фильтрами по городу/нишам/ролям. - Лента новостей
/social/newsс бесконечным скроллом, закладками и модерацией. - Мессенджер
/social/messenger: личные и групповые чаты, real-time через SSE (новые сообщения, статусы прочтения, индикатор набора, онлайн-присутствиеlastSeenAt), счётчики непрочитанного (атомарный$inc). Контент: текст, изображения, голосовые, GIF (через Tenor), стикеры (пользовательские паки + официальные), подарочные ссылки на подписку прямо в чат. Уведомления: визуальные, звук, Web Push (VAPID) и фолбэк в Telegram для офлайна. Отправка — за пейволом подписки. - Библиотека материалов — пользовательский контент (шаблоны, гайды, чек-листы) с вложениями и категориями.
Маркетплейс и безопасные сделки
- Объявления
/social/marketplaceдвух типов (услуга / запрос) с категориями, ценами, фото, поиском и фильтрами; полный CRUD от лица продавца. - Сделки с escrow: заказы (
marketplace_orders) со снапшотом товара, статусами PENDING → PAID → CONFIRMED → COMPLETED, гибридной оплатой (кошелёк + карта), удержанием средств и комиссией платформы через системный кошелёк. - Споры: диспуты с резолюцией админом (полный возврат / выплата / частичный сплит) и админ-панелью разбора.
- Анти-фрод чата: движок сканирования сообщений в сделках на фишинг и увод оплаты мимо платформы.
Маркетплейс-листинги и каркас сделок реализованы; кошелёк, escrow, вывод средств и анти-фрод раскатываются поэтапно (параллельная разработка по фиче-веткам).
Кошелёк, биллинг и партнёрка
- Кошелёк: баланс, выводимый баланс и удержания на основе ledger-модели (
wallet_ledger) с идемпотентностью и аудитом. - Платежи: интеграция с YooKassa — пополнение, вебхуки, токенизация карт, гибридная оплата (баланс + карта).
- Подписки и тарифы: планы (Free / Pro / Premium) с лимитами на чат/изображения/видео и доступом к мессенджеру/маркетплейсу; разовые квот-пакеты; 3-дневный free-trial при регистрации; бесплатный лимит токенов с pay-as-you-go-оверажем;
QuotaServiceс предоплатой квоты на каждую AI-операцию. - Промо: одноразовые подарочные коды доступа.
- Партнёрская программа
/partner: реферальные ссылки, статистика, начисления и выплаты, промо-материалы, атрибуция при регистрации.
Маркетинг и Growth Lab
- Кампании
/marketing: управление рекламой в VK Ads и Yandex, группы объявлений и объявления, OAuth-подключение рекламных кабинетов. - AI-генерация объявлений — заголовки и тексты по описанию продукта.
- Аналитика: показы/клики/конверсии/ROI (recharts), атрибуция «канал → подписка/покупка», AI-рекомендации по оптимизации и заготовка autopilot.
- Growth Lab: генерация идей контента, написание сценариев (цель × тон × формат), анализ видео и эксперимент-циклы (A/B).
Mini-CRM и интеграция с amoCRM
- Mini-CRM: лиды, пользовательские стадии воронки, неизменяемая история переходов (
agent_stage_history), заметки по клиентам, конверсия лида в пользователя, метрики воронки. - amoCRM (API v4): двунаправленная синхронизация стадий и контактов, OAuth с обновлением токена, ретраи с экспоненциальным бэкоффом (Spring Retry), аудит-лог событий синхронизации.
Админка и инфраструктура
- Админка: загрузка и мониторинг документов, управление чанками (rechunk / merge / reindex в Qdrant), playground для прямых запросов к LLM с просмотром retrieval/prompt, инспектор сообщений чата, evals (разметка качества ответов), управление моделями/нишами/планами/пакетами/ценами, модерация контента, аналитика (MAU, MRR, churn, когорты).
- Аутентификация: Spring Security OAuth2 (Google, Yandex) + сессии в MongoDB (30 дней); мобильный JWT-флоу.
- Производительность и наблюдаемость: Caffeine-кэш, продуманные индексы Mongo, Spring Boot Actuator (health/metrics), лог retrieval-событий.
Стек и архитектура
- Backend: Java 17, Spring Boot 3.4.2, Spring AI 1.0.0 + OpenAI (gpt-4o, эмбеддинги
text-embedding-3-small, Whisper, DALL·E), MongoDB + Qdrant, Spring Security OAuth2, Spring Session, Telegram Bot API (pengrad), YooKassa, Apache Tika/POI/PDFBox, Tenor, Web Push (VAPID). - Frontend: Next.js 16 (App Router), React 19, TypeScript, Tailwind v4, SSE-стриминг,
react-markdown+remark-gfm, recharts. - Mobile: Capacitor 7 — те же экраны как нативные приложения iOS и Android (
ru.getatom.app): splash, safe-area, OAuth через нативный браузер, pull-to-refresh, статический export для мобильной сборки. - Деплой: same-origin на
https://getatom.ru— backend и фронт за одним доменом.
Роль и результат
Мы отвечали за всю платформу — и backend, и frontend, и мобильную упаковку. Спроектировали RAG-движок и ingestion-пайплайн, чат с SSE-стримингом и reasoning-режимом, генерацию изображений/видео/файлов, социальный слой с real-time-мессенджером, маркетплейс с escrow-сделками, кошелёк и биллинг с YooKassa, маркетинговые инструменты, Growth Lab, mini-CRM с синхронизацией в amoCRM и админку базы знаний. На выходе — единый продукт для предпринимателя: управляемый AI-ассистент, рабочее комьюнити и инструменты для роста бизнеса, доступные и в вебе, и на телефоне.