SentinelAI / src /ai /detection /aggregator.py
ACA050's picture
Upload 114 files
5a3b9db verified
Raw
History Blame Contribute Delete
1.32 kB
"""
Implements: 03_AI/00_AI_ARCHITECTURE.md (Detection Result Aggregation)
"""
import pandas as pd
import logging
import time
from datetime import datetime
logger = logging.getLogger(__name__)
class DetectionAggregator:
"""
Combines rule-based, statistical, and ML anomaly signals into a unified detection assessment.
"""
def aggregate(self, rules_df: pd.DataFrame, stat_df: pd.DataFrame, if_df: pd.DataFrame,
model_version: str = "1.0", rule_engine_version: str = "1.0", feature_schema_version: str = "1.0") -> pd.DataFrame:
start_time = time.time()
logger.info("Aggregating hybrid detection results...")
df = rules_df.merge(stat_df, on="event_id")
df = df.merge(if_df, on="event_id")
df["detection_timestamp"] = datetime.now().isoformat()
# Calculate processing duration
duration_sec = time.time() - start_time
# Add traceability metadata
df["model_version"] = model_version
df["rule_engine_version"] = rule_engine_version
df["feature_schema_version"] = feature_schema_version
df["processing_duration_sec"] = duration_sec
logger.info(f"Aggregation complete. Output format contains {len(df.columns)} columns.")
return df