Spaces:
Paused
Paused
File size: 1,324 Bytes
5a3b9db | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | """
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
|