- Python 3.13+ — основной язык разработки
- FastAPI — асинхронный веб-фреймворк для REST API
- SQLAlchemy + Alembic — ORM и миграции базы данных
- PostgreSQL 16 — основная СУБД
- Redis — кэширование и очереди задач
- Celery — асинхронная обработка транзакций
- Admiral UI — веб-интерфейс для мониторинга и управления
Система использует обученную модель машинного обучения для предсказания мошеннических транзакций:
- Метрика F1-score: 0.87 — достигнутая точность на тестовых данных
- Возможность добавлять свои модели
- Grafana — визуализация метрик и дашборды
- Prometheus — сбор метрик в реальном времени
- Loki + Promtail — централизованное логирование
- Loguru — структурированное логирование
- Docker + Docker Compose — контейнеризация сервисов
- Nginx — reverse proxy и балансировка нагрузки
- API (
src/api) — REST API для взаимодействия с системой - Bot (
src/bot) — Telegram бот для уведомлений и управления - Rule Engine (
src/modules/rule_engine) — движок правил обнаружения мошенничества:- Threshold правила (пороговые значения)
- Pattern правила (анализ паттернов поведения)
- Composite правила (логические комбинации AND/OR/NOT)
- ML правила (машинное обучение)
- Queue (
src/modules/queue) — асинхронная обработка транзакций через Celery - Notifications (
src/modules/notifications) — система уведомлений (Telegram, Email) - ML (
src/modules/ml) — управление ML моделями и инференс - Reporting (
src/modules/reporting) — отчеты и аналитика - Transactions (
src/modules/transactions) — управление транзакциями
- Транзакции обрабатываются асинхронно через Celery workers
- Rule engine оценивает каждую транзакцию по всем активным правилам
- Результаты кэшируются в Redis для быстрого доступа
- Prometheus метрики собираются на каждом этапе обработки
- Python 3.13+
- uv
- Установите uv:
curl -LsSf https://astral.sh/uv/install.sh | sh-
Запустите виртуальное окружение.
-
Установите зависимости:
uv sync- Настройте переменные окружения:
cp docker/.env.example .env-
Отредактируйте
.envс вашими настройками базы данных и Redis. Не забудьте добавить токен для бота -
Примените миграции базы данных:
uv run alembic upgrade headuv run python -m src.apiuv run scripts/test.pyЧтобы запустить проект с помощью Docker:
-
Инициализируйте переменные окружения:
cp .env.example .env cd ./src/static/admiral && cp .env.example .env
-
Инициализируйте конфигурации сервисов:
chmod a+x ./scripts/envsubst.sh ./scripts/envsubst.sh docker
-
Соберите контейнеры:
docker compose build
-
Запустите проект:
docker compose up -d
После запуска следующие сервисы будут доступны:
- Админ-панель: http://localhost
- Grafana: http://metrics.localhost или http://localhost:4000
- API: http://api.localhost