mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-17 23:51:30 +00:00
fix(router): keep weighted routing when a deployment id equals a model_name
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
parent
b67137b67f
commit
bdc63d590e
2 changed files with 27 additions and 1 deletions
|
|
@ -12502,7 +12502,7 @@ class Router:
|
|||
# check if aliases set on litellm model alias map
|
||||
if specific_deployment is True:
|
||||
return model, self._get_deployment_by_litellm_model(model=model)
|
||||
elif self.has_model_id(model):
|
||||
elif model not in self.model_names and self.has_model_id(model):
|
||||
deployment: Final = self.get_deployment(model_id=model)
|
||||
if deployment is not None:
|
||||
deployment_model: Final = deployment.litellm_params.model
|
||||
|
|
|
|||
|
|
@ -15806,3 +15806,29 @@ async def test_an_open_circuit_breaker_skips_the_session_binding_without_a_warni
|
|||
assert binding is None
|
||||
assert [record.getMessage() for record in caplog.records if record.levelno >= logging.WARNING] == []
|
||||
assert any("circuit breaker is open" in record.getMessage() for record in caplog.records)
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_model_name_colliding_with_a_deployment_id_still_load_balances_the_group():
|
||||
router = litellm.Router(
|
||||
model_list=[
|
||||
{
|
||||
"model_name": "gpt-5-nano",
|
||||
"litellm_params": {"model": "openai/gpt-5-nano", "api_key": "k", "weight": 0, "mock_response": "A"},
|
||||
"model_info": {"id": "gpt-5-nano"},
|
||||
},
|
||||
{
|
||||
"model_name": "gpt-5-nano",
|
||||
"litellm_params": {"model": "openai/gpt-5-mini", "api_key": "k", "weight": 1, "mock_response": "B"},
|
||||
"model_info": {"id": "gpt-5-mini-dep"},
|
||||
},
|
||||
],
|
||||
routing_strategy="simple-shuffle",
|
||||
)
|
||||
|
||||
by_group = await router.acompletion(model="gpt-5-nano", messages=[{"role": "user", "content": "hi"}])
|
||||
by_id = await router.acompletion(model="gpt-5-mini-dep", messages=[{"role": "user", "content": "hi"}])
|
||||
|
||||
assert by_group._hidden_params["model_id"] == "gpt-5-mini-dep"
|
||||
assert by_group.choices[0].message.content == "B"
|
||||
assert by_id._hidden_params["model_id"] == "gpt-5-mini-dep"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue