fix(router.py): handle edge case where user sets 'model_group' inside 'model_info'

This commit is contained in:
Krrish Dholakia 2025-04-21 13:48:19 -07:00
parent 10257426a2
commit 996154f2dc
2 changed files with 32 additions and 2 deletions

View file

@ -4983,8 +4983,12 @@ class Router:
)
if model_group_info is None:
model_group_info = ModelGroupInfo(
model_group=user_facing_model_group_name, providers=[llm_provider], **model_info # type: ignore
model_group_info = ModelGroupInfo( # type: ignore
**{
"model_group": user_facing_model_group_name,
"providers": [llm_provider],
**model_info,
}
)
else:
# if max_input_tokens > curr

View file

@ -52,3 +52,29 @@ def test_update_kwargs_does_not_mutate_defaults_and_merges_metadata():
# 3) metadata lands under "metadata"
assert kwargs["litellm_metadata"] == {"baz": 123}
def test_router_with_model_info_and_model_group():
"""
Test edge case where user specifies model_group in model_info
"""
router = litellm.Router(
model_list=[
{
"model_name": "gpt-3.5-turbo",
"litellm_params": {
"model": "gpt-3.5-turbo",
},
"model_info": {
"tpm": 1000,
"rpm": 1000,
"model_group": "gpt-3.5-turbo",
},
}
],
)
router._set_model_group_info(
model_group="gpt-3.5-turbo",
user_facing_model_group_name="gpt-3.5-turbo",
)