Add frontend alerts imporvements
This commit is contained in:
@@ -69,6 +69,19 @@ class EnrichmentOrchestrator:
|
||||
metadata=event.metadata
|
||||
)
|
||||
|
||||
# Fallback: If orchestrator service didn't return context with already_addressed,
|
||||
# check if the event metadata contains orchestrator_context (e.g., from demo seeder)
|
||||
if not orchestrator_context_dict.get("already_addressed"):
|
||||
metadata_context = event.metadata.get("orchestrator_context")
|
||||
if metadata_context and isinstance(metadata_context, dict):
|
||||
# Merge metadata context into orchestrator context
|
||||
orchestrator_context_dict.update(metadata_context)
|
||||
logger.debug(
|
||||
"using_metadata_orchestrator_context",
|
||||
event_type=event.event_type,
|
||||
already_addressed=metadata_context.get("already_addressed")
|
||||
)
|
||||
|
||||
# Convert to OrchestratorContext if data exists
|
||||
orchestrator_context = None
|
||||
if orchestrator_context_dict:
|
||||
@@ -115,7 +128,7 @@ class EnrichmentOrchestrator:
|
||||
)
|
||||
|
||||
# 9. Determine type class
|
||||
type_class = self._determine_type_class(orchestrator_context_dict)
|
||||
type_class = self._determine_type_class(orchestrator_context_dict, event.metadata)
|
||||
|
||||
# 10. Extract AI reasoning from metadata (if present)
|
||||
reasoning_data = event.metadata.get('reasoning_data')
|
||||
@@ -184,13 +197,25 @@ class EnrichmentOrchestrator:
|
||||
else:
|
||||
return "info"
|
||||
|
||||
def _determine_type_class(self, orchestrator_context: dict) -> str:
|
||||
def _determine_type_class(self, orchestrator_context: dict, metadata: dict = None) -> str:
|
||||
"""
|
||||
Determine type class based on orchestrator context.
|
||||
Determine type class based on orchestrator context or metadata override.
|
||||
|
||||
Priority order:
|
||||
1. Explicit type_class in metadata (e.g., from demo seeder)
|
||||
2. orchestrator_context.already_addressed = True -> "prevented_issue"
|
||||
3. Default: "action_needed"
|
||||
|
||||
- prevented_issue: AI already handled it
|
||||
- action_needed: User action required
|
||||
"""
|
||||
# Check for explicit type_class in metadata (allows demo seeder override)
|
||||
if metadata:
|
||||
explicit_type_class = metadata.get("type_class")
|
||||
if explicit_type_class in ("prevented_issue", "action_needed"):
|
||||
return explicit_type_class
|
||||
|
||||
# Determine from orchestrator context
|
||||
if orchestrator_context and orchestrator_context.get("already_addressed"):
|
||||
return "prevented_issue"
|
||||
return "action_needed"
|
||||
|
||||
Reference in New Issue
Block a user