router
router
¶
Backward-compat shim — canonical location is learning.router.
Classes¶
DefaultQueryAnalyzer
¶
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/openjarvis/learning/routing/router.py
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.