Архитектура
Архитектурное решение для MVP AI-ассистента трейдера (Telegram-бот)
1. Общая архитектура: микросервисный подход
- Использование микросервисной архитектуры для гибкости, масштабируемости и упрощения поддержки (в дальнейшем расширения)
- Сервисная коммуникация через очередь сообщений (например, RabbitMQ или Kafka)
- Отделение frontend-логики (бот) от backend-сервисов (логика, AI, база данных, админка)
- Отдельный сервис для интеграции с AI (OpenAI API)
- Хранилище — реляционная БД (PostgreSQL) для пользователей, сессий, логов и аналитики
2. Компоненты архитектуры
2.1 Telegram Bot Service
- Отвечает за коммуникацию с пользователями через Telegram API
- Обрабатывает команды и диалоговые сценарии (pre/post-market check-ins, дыхательные упражнения)
- Отправляет и принимает сообщения
- Отправляет уведомления по расписанию
- Публикует события в очередь для backend обработки
- Технология: Python (aiogram) или Node.js (telegraf)
2.2 Backend API Service
- Обрабатывает бизнес-логику (прием и валидация данных с бота)
- Хранит данные пользователей, сессий, ответов
- Обеспечивает API для админки
- Запрашивает AI-сервис для генерации персонализированных советов и рекомендаций
- Взаимодействует с очередью сообщений и базой данных
- Технология: Python (FastAPI) или Node.js (Express)
2.3 AI Integration Service
- Отдельный сервис для работы с OpenAI API (GPT-4 или аналог)
- Получает запросы на генерацию советов, обрабатывает ответы
- Может реализовывать кэширование частых ответов
- Позволяет разделять нагрузку и упрощает обновление AI-моделей отдельно
- Технология: Python / Node.js
2.4 Notification Scheduler Service
- Планирует отправку pre-market и post-market уведомлений
- Управляет повторными напоминаниями
- Отправляет задачи в Telegram Bot для рассылки
- Технология: Cron, Celery, или отдельный микросервис с очередями (RabbitMQ, Kafka)
2.5 Database
- PostgreSQL:
- Пользователи (ID, Telegram ID, статус)
- Сессии check-in/post-market
- Журналы действий, истории сообщений
- Настройки уведомлений
- Метрики активности
- Возможна последующая интеграция с аналитическими платформами
2.6 Admin Panel Service
- Веб-приложение для администраторов
- Интеграция с Backend API
- Авторизация и управление пользователями, статистикой, рассылками
- Технологии: React / Next.js
3. Взаимодействие компонентов
- Пользователь взаимодействует с Telegram Bot Service.
- Все запросы пользователя передаются в Backend API для обработки и сохранения данных.
- Backend API отправляет запросы на генерацию советов в AI Integration Service.
- AI Integration Service получает ответ и передает его в Backend API для возврата пользователю.
- Notification Scheduler Service, руководствуясь настройками пользователя, запускает отправку push-уведомлений через Telegram Bot Service.
- Администратор взаимодействует с админкой, которая запрашивает данные у Backend API.
4. Нефункциональные аспекты
- Безопасность: HTTPS, шифрование базы данных, OAuth 2.0/JWT для админки и внутренних API
- Масштабируемость: Недорогие горизонтальные масштабируемые сервисы; очередь сообщений обеспечивает отказоустойчивость
- Логирование и мониторинг: Centralized Log System (ELK stack), мониторинг состояния сервисов (Prometheus + Grafana)
- CI/CD: Автоматизированное тестирование и деплой через GitHub Actions
5. Технологический стек (рекомендуемый)
| Компонент |
Технология |
| Telegram Bot Service |
Python (aiogram) / Node.js (telegraf) |
| Backend API |
Python (FastAPI) / Node.js (Express) |
| AI Integration Service |
Python / Node.js, OpenAI API |
| Notification Scheduler |
Celery + RabbitMQ / Kafka |
| Database |
PostgreSQL |
| Admin Panel |
React / Next.js |
| CI/CD |
GitHub Actions, Docker |
| Мониторинг и Логирование |
ELK Stack, Prometheus, Grafana |
6. Иллюстрация архитектуры
[Telegram Users] <--> [Telegram Bot Service] <--> [Backend API Service] <--> [Database]
| |
| +--> [AI Integration Service]
|
+--> [Notification Scheduler Service]
[Admin Web Panel] <--> [Backend API Service] <--> [Database]
1
2
3
4
5
6
7
8
9
10