router
router
¶
Heuristic model router — selects the best model based on query characteristics.
Classes¶
HeuristicRouter
¶
HeuristicRouter(
available_models: List[str] | None = None,
*,
default_model: str = "",
fallback_model: str = "",
)
Bases: RouterPolicy
Rule-based model router.
Rules (applied in order): 1. Code detected → prefer model with "code"/"coder" in name 2. Math detected → prefer larger model 3. Low complexity (score < 0.20) → prefer smaller/faster model 4. High complexity (score >= 0.55 OR reasoning keywords) → prefer larger model 5. High urgency (>0.8) → override to smaller model 6. Default fallback → default_model → fallback_model → first available
Source code in src/diapason/learning/routing/router.py
DefaultQueryAnalyzer
¶
Functions:¶
build_routing_context
¶
build_routing_context(
query: str,
*,
urgency: float = 0.5,
model: str | None = None,
) -> RoutingContext
Populate a RoutingContext from a raw query string.
When model is provided, the suggested token budget is adjusted for thinking models that need extra headroom.