Containerize fraud detection consumer - full Docker integration
- Added consumer/Dockerfile with all dependencies - Updated consumer pipeline.py to use environment variables - Updated features.py and decision.py to support env var configuration - Updated docker-compose.yml to include consumer service - Consumer now runs automatically with 'docker compose up' - Proper Kafka and Redis networking for Docker - Environment variables for ML_MODELS_DIR, KAFKA_BROKER, REDIS_HOST/PORT Now entire PayGuard system runs with: docker compose up -d Co-authored-by: Copilot <[email protected]>
This commit is contained in:
1 parent
529914dd60
commit
4cefdb9083
6 files changed
+106
-14
No files matched your search
@@ -15,6 +15,7 @@ context to improve model decision quality.
|
||||
import redis
|
||||
import numpy as np
|
||||
import logging
|
||||
import os
|
||||
from typing import Dict, List
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@@ -22,7 +23,13 @@ logger = logging.getLogger(__name__)
|
||||
class FeatureExtractor:
|
||||
"""Extracts and engineers features from transactions"""
|
||||
|
||||
def __init__(self, redis_host: str = "localhost", redis_port: int = 6379):
|
||||
def __init__(self, redis_host: str = None, redis_port: int = None):
|
||||
# Support environment variables for Docker deployments
|
||||
if redis_host is None:
|
||||
redis_host = os.getenv("REDIS_HOST", "localhost")
|
||||
if redis_port is None:
|
||||
redis_port = int(os.getenv("REDIS_PORT", "6379"))
|
||||
|
||||
self.redis_client = redis.Redis(
|
||||
host=redis_host,
|
||||
port=redis_port,
|
||||
@@ -30,6 +37,7 @@ class FeatureExtractor:
|
||||
)
|
||||
logger.info(f"[FEATURE EXTRACTOR] Initialized, redis={redis_host}:{redis_port}")
|
||||
|
||||
|
||||
def get_user_profile(self, user_id: str) -> Dict[str, float]:
|
||||
"""
|
||||
Retrieve user's behavioral profile from Redis.
|
||||
|
||||
Reference in new issue
Block a user