class RiskScorer: def __init__(self, rule_weight=0.6, ai_weight=0.4): self.rule_weight = rule_weight self.ai_weight = ai_weight def compute_risk(self, rule_threats, ai_anomaly_score): if rule_threats: max_rule_risk = max(score for _, score in rule_threats) / 100.0 else: max_rule_risk = 0.0 combined = self.rule_weight * max_rule_risk + self.ai_weight * ai_anomaly_score return min(100, int(combined * 100)) def threat_level(self, risk_score): if risk_score >= 80: return "CRITICAL" elif risk_score >= 60: return "HIGH" elif risk_score >= 30: return "MEDIUM" else: return "LOW"