OSSS.ai.routing.routing_decision¶
OSSS.ai.routing.routing_decision
¶
Routing Decision Data Structures.
This module defines the data structures for routing decisions, providing comprehensive reasoning and confidence tracking.
RoutingConfidenceLevel
¶
Bases: Enum
Confidence levels for routing decisions.
RoutingReasoning
¶
Bases: BaseModel
Detailed reasoning for routing decisions.
Migrated from dataclass to Pydantic BaseModel for enhanced validation, serialization, and integration with the OSSS Pydantic ecosystem.
to_dict()
¶
Convert to dictionary for serialization.
Maintained for backward compatibility. Uses Pydantic's model_dump() internally for consistent serialization.
RoutingDecision
¶
Bases: BaseModel
Comprehensive routing decision with reasoning and metadata.
Migrated from dataclass to Pydantic BaseModel for enhanced validation, serialization, and integration with the OSSS Pydantic ecosystem.
This class captures all aspects of an intelligent routing decision, including the selected agents, reasoning, confidence, and predictions.
model_post_init(__context)
¶
Post-initialization to set derived fields.
add_reasoning(category, key, value)
¶
Add reasoning information to the decision.
add_agent_rationale(agent, rationale, included=True)
¶
Add rationale for including or excluding an agent.
add_risk(risk, mitigation=None)
¶
Add identified risk and optional mitigation strategy.
add_fallback_option(fallback)
¶
Add fallback option for failure scenarios.
set_performance_prediction(total_time_ms, success_probability, resource_utilization=None)
¶
Set performance predictions for the routing decision.
add_optimization_opportunity(opportunity)
¶
Add identified optimization opportunity.
is_high_confidence()
¶
Check if this is a high-confidence decision.
is_risky()
¶
Check if this decision has identified risks.
has_fallbacks()
¶
Check if fallback options are available.
get_excluded_agents()
¶
Get list of agents that were available but not selected.
to_dict()
¶
Convert to dictionary for serialization.
Maintained for backward compatibility. Uses Pydantic's model_dump() internally for consistent serialization with datetime handling.
from_dict(data)
classmethod
¶
Create routing decision from dictionary.
Uses Pydantic's model_validate() for cleaner deserialization and automatic type conversion.