mirror of
https://github.com/BerriAI/litellm.git
synced 2026-11-13 08:52:02 +00:00
fix(caching): read the router's model group before the caller's metadata
This commit is contained in:
parent
b641a0d9b7
commit
b6a7f8dcf6
2 changed files with 13 additions and 11 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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():
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue