Skip to content

sunflye/Fraud_Detection_System

Repository files navigation

🛡️ Fraud Detection System

Система анализа финансовых транзакций в режиме реального времени с обнаружением мошенничества на основе правил и машинного обучения.


🚀 Быстрый старт

Запуск через Docker Compose

# Клонировать репозиторий
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

📡 Основное API

Создание транзакции

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"]}

🛠️ Управление

Админ-панель

Экспорт данных


🔔 Настройка уведомлений

Telegram

TELEGRAM_BOT_TOKEN=your_token
TELEGRAM_CHAT_ID=your_chat_id

Email

SMTP_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:

  1. http://localhost:8000/docs
  2. POST /transactions → Try it out
  3. Execute

🐳 Docker команды

# Запуск
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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages