From 7e56600896c305d3bcbbeac23c07dc085ca748bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luiz=20Renn=C3=B3=20Costa?= Date: Wed, 1 Oct 2025 15:39:49 -0300 Subject: [PATCH] fix: model_group not always present in litellm_params, and metadata reference location (#15108) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Luiz RennĂ³ Costa --- litellm/proxy/common_utils/callback_utils.py | 10 +++++----- litellm/proxy/hooks/parallel_request_limiter_v3.py | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/litellm/proxy/common_utils/callback_utils.py b/litellm/proxy/common_utils/callback_utils.py index fb7ada8ab1..60d4e32ebb 100644 --- a/litellm/proxy/common_utils/callback_utils.py +++ b/litellm/proxy/common_utils/callback_utils.py @@ -289,8 +289,8 @@ def initialize_callbacks_on_proxy( # noqa: PLR0915 def get_model_group_from_litellm_kwargs(kwargs: dict) -> Optional[str]: _litellm_params = kwargs.get("litellm_params", None) or {} - _metadata = _litellm_params.get(get_metadata_variable_name_from_kwargs(kwargs)) or {} - _model_group = _metadata.get("model_group", None) + _metadata = _litellm_params.get(get_metadata_variable_name_from_litellm_params(_litellm_params)) or {} + _model_group = _metadata.get("model_group", None) or kwargs.get("model", None) if _model_group is not None: return _model_group @@ -367,8 +367,8 @@ def add_guardrail_to_applied_guardrails_header( _metadata["applied_guardrails"] = [guardrail_name] -def get_metadata_variable_name_from_kwargs( - kwargs: dict +def get_metadata_variable_name_from_litellm_params( + litellm_params: dict ) -> Literal["metadata", "litellm_metadata"]: """ Helper to return what the "metadata" field should be called in the request data @@ -381,4 +381,4 @@ def get_metadata_variable_name_from_kwargs( - OpenAI then started using this field for their metadata - LiteLLM is now moving to using `litellm_metadata` for our metadata """ - return "litellm_metadata" if "litellm_metadata" in kwargs else "metadata" + return "litellm_metadata" if "litellm_metadata" in litellm_params else "metadata" diff --git a/litellm/proxy/hooks/parallel_request_limiter_v3.py b/litellm/proxy/hooks/parallel_request_limiter_v3.py index 9f9b49dcb6..5ee5877347 100644 --- a/litellm/proxy/hooks/parallel_request_limiter_v3.py +++ b/litellm/proxy/hooks/parallel_request_limiter_v3.py @@ -844,7 +844,7 @@ class _PROXY_MaxParallelRequestsHandler_v3(CustomLogger): _get_parent_otel_span_from_kwargs, ) from litellm.proxy.common_utils.callback_utils import ( - get_metadata_variable_name_from_kwargs, + get_metadata_variable_name_from_litellm_params, get_model_group_from_litellm_kwargs, ) from litellm.types.caching import RedisPipelineIncrementOperation @@ -862,7 +862,7 @@ class _PROXY_MaxParallelRequestsHandler_v3(CustomLogger): # Get metadata from kwargs litellm_metadata = kwargs["litellm_params"].get( - get_metadata_variable_name_from_kwargs(kwargs), {} + get_metadata_variable_name_from_litellm_params(kwargs["litellm_params"]), {} ) if litellm_metadata is None: return