adding ai summary - default is disabled
This commit is contained in:
@@ -7,7 +7,7 @@ from pathlib import Path
|
||||
from typing import Optional, Union
|
||||
|
||||
from app.models.alerts import AggregatedAlert, TriggeredAlert
|
||||
from app.models.state import AlertState
|
||||
from app.models.state import AlertSnapshot, AlertState
|
||||
from app.utils.logging_config import get_logger
|
||||
|
||||
# Type alias for alerts that can be deduplicated
|
||||
@@ -183,3 +183,47 @@ class StateManager:
|
||||
self.logger.info("old_records_purged", count=purged)
|
||||
|
||||
return purged
|
||||
|
||||
def save_alert_snapshots(self, alerts: list[AggregatedAlert]) -> None:
|
||||
"""Save current alerts as snapshots for change detection.
|
||||
|
||||
Args:
|
||||
alerts: List of aggregated alerts to save as snapshots.
|
||||
"""
|
||||
snapshots: dict[str, AlertSnapshot] = {}
|
||||
|
||||
for alert in alerts:
|
||||
snapshot = AlertSnapshot(
|
||||
alert_type=alert.alert_type.value,
|
||||
extreme_value=alert.extreme_value,
|
||||
threshold=alert.threshold,
|
||||
start_time=alert.start_time,
|
||||
end_time=alert.end_time,
|
||||
hour_count=alert.hour_count,
|
||||
)
|
||||
snapshots[alert.alert_type.value] = snapshot
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
self.state.previous_alert_snapshots = snapshots
|
||||
self.state.last_updated = datetime.now()
|
||||
|
||||
self.logger.debug(
|
||||
"alert_snapshots_saved",
|
||||
count=len(snapshots),
|
||||
)
|
||||
|
||||
def get_previous_snapshots(self) -> dict[str, AlertSnapshot]:
|
||||
"""Get previous alert snapshots for change detection.
|
||||
|
||||
Returns:
|
||||
Dict of alert snapshots keyed by alert type.
|
||||
"""
|
||||
return self.state.previous_alert_snapshots
|
||||
|
||||
def record_ai_summary_sent(self) -> None:
|
||||
"""Record that an AI summary was sent."""
|
||||
from datetime import datetime
|
||||
|
||||
self.state.last_ai_summary_sent = datetime.now()
|
||||
self.logger.debug("ai_summary_sent_recorded")
|
||||
|
||||
Reference in New Issue
Block a user