From 6e930c972487cefe96d723349e8351fd0a028bda Mon Sep 17 00:00:00 2001 From: ryan-crabbe <128659760+ryan-crabbe@users.noreply.github.com> Date: Fri, 23 Jan 2026 17:21:41 -0800 Subject: [PATCH] perf: skip pattern_router.route() for non-wildcard models (#19664) Check "*" in model before calling pattern_router.route() to avoid unnecessary pattern matching for non-wildcard model configurations. --- litellm/router.py | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/litellm/router.py b/litellm/router.py index 62070d23755..c53f54984f8 100644 --- a/litellm/router.py +++ b/litellm/router.py @@ -6355,19 +6355,20 @@ class Router: elif custom_llm_provider != "azure": model = _model - potential_models = self.pattern_router.route(received_model_name) - if "*" in model and potential_models is not None: # if wildcard route - for potential_model in potential_models: - try: - if potential_model.get("model_info", {}).get( - "id" - ) == deployment.get("model_info", {}).get("id"): - model = potential_model.get("litellm_params", {}).get( - "model" - ) - break - except Exception: - pass + if "*" in model: # only call pattern_router for wildcard models + potential_models = self.pattern_router.route(received_model_name) + if potential_models is not None: + for potential_model in potential_models: + try: + if potential_model.get("model_info", {}).get( + "id" + ) == deployment.get("model_info", {}).get("id"): + model = potential_model.get("litellm_params", {}).get( + "model" + ) + break + except Exception: + pass ## GET LITELLM MODEL INFO - raises exception, if model is not mapped if model is None: