diff --git a/litellm/caching/caching.py b/litellm/caching/caching.py index 7173f941a8d..e8df765f83d 100644 --- a/litellm/caching/caching.py +++ b/litellm/caching/caching.py @@ -456,8 +456,10 @@ class Cache: """ litellm_params: Final[dict] = kwargs.get("litellm_params", {}) or {} metadata_sources: Final[tuple[dict, ...]] = ( - kwargs.get("litellm_metadata" if "litellm_metadata" in kwargs else "metadata") or {}, - litellm_params.get("litellm_metadata") or litellm_params.get("metadata") or {}, + kwargs.get("litellm_metadata") or {}, + kwargs.get("metadata") or {}, + litellm_params.get("litellm_metadata") or {}, + litellm_params.get("metadata") or {}, ) model_group: Final[str | None] = next( (source["model_group"] for source in metadata_sources if source.get("model_group")), None diff --git a/tests/unit/caching/test_unit_test_caching.py b/tests/unit/caching/test_unit_test_caching.py index 06b8a4d9cac..fffce818766 100644 --- a/tests/unit/caching/test_unit_test_caching.py +++ b/tests/unit/caching/test_unit_test_caching.py @@ -278,7 +278,7 @@ def test_get_model_param_value_reads_model_group_from_litellm_metadata(): ) -def test_get_model_param_value_ignores_a_caller_model_group_outside_the_router_bucket(): +def test_get_model_param_value_prefers_the_router_group_over_a_caller_model_group(): cache = Cache() request = {"model": "openai/gpt-5.6", "input": "search this text"} @@ -288,23 +288,23 @@ def test_get_model_param_value_ignores_a_caller_model_group_outside_the_router_b ) == "caller" ) - assert ( - cache._get_model_param_value({**request, "metadata": {"model_group": "target"}, "litellm_metadata": {}}) - == "openai/gpt-5.6" - ) assert ( cache._get_model_param_value( { **request, - "metadata": {"model_group": "target"}, - "litellm_metadata": {"user_api_key": "hashed"}, "litellm_params": { "metadata": {"model_group": "target"}, - "litellm_metadata": {"user_api_key": "hashed"}, + "litellm_metadata": {"model_group": "caller"}, }, } ) - == "openai/gpt-5.6" + == "caller" + ) + assert ( + cache._get_model_param_value( + {**request, "metadata": {"model_group": "group-a"}, "litellm_metadata": {"attempted_retries": 0}} + ) + == "group-a" ) def test_preset_cache_key():