Система анализа финансовых транзакций в режиме реального времени с обнаружением мошенничества на основе правил и машинного обучения.
# Клонировать репозиторий
git clone https://github.com/polina193535/Fraud_Detection_System
cd Fraud_Detection_System
# Скопировать .env (опционально)
cp .env.example .env
# Запустить все сервисы
docker-compose up --build| Сервис | URL |
|---|---|
| ⚙️Админ-панель | http://localhost:8000 |
| 📋 API Docs | http://localhost:8000/docs |
| 📊 Grafana | http://localhost:3000 |
POST /transactionsПример:
curl -X POST http://localhost:8000/transactions \
-H "Content-Type: application/json" \
-d '{
"amount": 150000,
"currency": "EUR",
"from_account": "USER_001",
"to_account": "SHOP_999",
"type": "transfer"
}'Ответ:
{
"transaction_id": "uuid...",
"correlation_id": "uuid...",
"job_id": "uuid..."
}| Тип | Описание | Пример параметров |
|---|---|---|
| Threshold | Сравнение с порогом | {"field": "amount", "op": ">", "threshold": 100000} |
| Pattern | Серия операций | {"count": 3, "window_sec": 120, "threshold": 1000} |
| ML | Машинное обучение | {"threshold": 0.7, "model_path": "..."} |
| Composite | Комбинация правил | {"operator": "AND", "rules": ["id1", "id2"]} |
- Правила: http://localhost:8000/admin/rules
- Транзакции: http://localhost:8000/admin/transactions
- Результаты: http://localhost:8000/admin/results
- Загрузка ML: http://localhost:8000/admin/models/upload
- CSV транзакций: http://localhost:8000/admin/export/transactions.csv
- CSV правил: http://localhost:8000/admin/export/rules.csv
TELEGRAM_BOT_TOKEN=your_token
TELEGRAM_CHAT_ID=your_chat_idSMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USERNAME=your_email@gmail.com
SMTP_PASSWORD=your_app_password
ALERT_EMAIL=recipient@example.com✅ Модульная архитектура — легко расширять
✅ Hot-reload — обновление правил без перезапуска
✅ Аудит — история всех изменений
✅ Идемпотентность — защита от дубликатов
✅ Трассируемость — correlation_id везде
✅ ML интеграция — загрузка моделей через UI
Отправка транзакций через curl:
for i in {1..10}; do
curl -X POST http://localhost:8000/transactions \
-H "Content-Type: application/json" \
-d "{\"amount\": $((RANDOM%100000+1000)), \"currency\": \"EUR\", \"from_account\": \"USER_$i\", \"to_account\": \"SHOP\", \"type\": \"payment\"}"
doneЧерез Swagger UI:
- http://localhost:8000/docs
POST /transactions→ Try it out- Execute
# Запуск
docker-compose up -d
# Логи
docker-compose logs -f app
# Перезапуск
docker-compose restart app worker
# Остановка
docker-compose down- Backend: Python 3.11, FastAPI
- БД: PostgreSQL, Redis
- Очередь: RQ (Redis Queue)
- ML: scikit-learn
- Мониторинг: Prometheus, Grafana
- DevOps: Docker, Docker Compose