mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-07 02:59:05 +00:00
* Add default model pin to complexity router UI A complexity router's default model was only ever derived from the tiers, so operators had no way to point the fallback at a model that is not first in the Simple or Medium tier. Adds a Default Model select that records an explicit pin. The pin is stored in complexity_router_config.default_model, which the backend already reads, and mirrored onto complexity_router_default_model on save. Both paths resolve through one helper that mirrors init_complexity_router_deployment: a pin wins, otherwise MEDIUM or SIMPLE. Recording the pin in the config keeps it distinguishable from a derived value, so a pin that happens to match the tiers survives a round trip instead of being read back as tier tracking. The edit modal only requires one non-empty tier, so a router with models in COMPLEX alone can reach save with nothing the backend would pick. That now blocks with an inline message rather than saving a router that raises at init. * fix(UI): probe the pinned default model in the auto router connection test The connection test built its targets from the tiers and the embedding model only, so a Default Model pin outside every tier was never reached and a green result could hide an unreachable default. model_info_view had already hand rolled the dedupe and append locally, so the rule moved into buildAutoRouterTestTargets and both call sites now share it. * fix(ui): mirror backend precedence when resolving a complexity router default The edit modal only recognized a pin stored in complexity_router_config.default_model, so a router whose default lived solely in litellm_params.complexity_router_default_model lost it on the next save. That field cannot be trusted outright either: before this PR every save wrote a tier-derived value into it, so treating any value as a pin would freeze legacy routers away from their tiers. Hydration now takes the config marker as authoritative and falls back to litellm_params only when it diverges from what the tiers alone derive, which is only reachable through an external API or config write. Test Connection had the mirror-image bug: it fell back to complexity_router_config.default_model, a UI-only marker init_complexity_router_deployment never reads, so it could probe a model the router would never call. It now follows router.py exactly: litellm_params, else pure tier-derivation. Also reword a tooltip that hardcoded the Default Model select's position on the page, and document the dual write and the create-vs-edit validation asymmetry. |
||
|---|---|---|
| .. | ||
| litellm-dashboard | ||
| Dockerfile | ||
| nginx.conf | ||