From bd89d03d2d0c63301186b29bb5ea68f8c2c2bff1 Mon Sep 17 00:00:00 2001 From: hzt <3061613175@qq.com> Date: Fri, 20 Feb 2026 13:22:58 +0800 Subject: [PATCH] fix(proxy): use completion_model as fallback instead of override completion_model in general_settings always overrode the client-specified model because it was evaluated first in the Python `or` chain. Reorder the resolution so the client request model takes priority, matching the documented behavior: "The default model to use for completions when model is not specified in the request." Fixes #21554 --- litellm/proxy/common_request_processing.py | 4 ++-- .../proxy/pass_through_endpoints/pass_through_endpoints.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/litellm/proxy/common_request_processing.py b/litellm/proxy/common_request_processing.py index 12f7fe2c3cf..8852d9555c7 100644 --- a/litellm/proxy/common_request_processing.py +++ b/litellm/proxy/common_request_processing.py @@ -597,10 +597,10 @@ class ProxyBaseLLMRequestProcessing: ] = queue_time_seconds self.data["model"] = ( - general_settings.get("completion_model", None) # server default + self.data.get("model", None) # model passed in http request or user_model # model name passed via cli args or model # for azure deployments - or self.data.get("model", None) # default passed in http request + or general_settings.get("completion_model", None) # server default (fallback) ) # override with user settings, these are params passed via cli diff --git a/litellm/proxy/pass_through_endpoints/pass_through_endpoints.py b/litellm/proxy/pass_through_endpoints/pass_through_endpoints.py index d1c4b8b3403..64bb74025fe 100644 --- a/litellm/proxy/pass_through_endpoints/pass_through_endpoints.py +++ b/litellm/proxy/pass_through_endpoints/pass_through_endpoints.py @@ -168,9 +168,9 @@ async def chat_completion_pass_through_endpoint( # noqa: PLR0915 "Request received by LiteLLM:\n{}".format(json.dumps(data, indent=4)), ) data["model"] = ( - general_settings.get("completion_model", None) # server default + data.get("model", None) # model passed in http request or user_model # model name passed via cli args - or data.get("model", None) # default passed in http request + or general_settings.get("completion_model", None) # server default (fallback) ) if user_model: data["model"] = user_model