Перейти к содержанию

Архитектура

Архитектурное решение для 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. Взаимодействие компонентов

  1. Пользователь взаимодействует с Telegram Bot Service.
  2. Все запросы пользователя передаются в Backend API для обработки и сохранения данных.
  3. Backend API отправляет запросы на генерацию советов в AI Integration Service.
  4. AI Integration Service получает ответ и передает его в Backend API для возврата пользователю.
  5. Notification Scheduler Service, руководствуясь настройками пользователя, запускает отправку push-уведомлений через Telegram Bot Service.
  6. Администратор взаимодействует с админкой, которая запрашивает данные у 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