diff --git a/litellm/proxy/management_endpoints/model_management_endpoints.py b/litellm/proxy/management_endpoints/model_management_endpoints.py index c091f6b5812..eb85112a66c 100644 --- a/litellm/proxy/management_endpoints/model_management_endpoints.py +++ b/litellm/proxy/management_endpoints/model_management_endpoints.py @@ -472,14 +472,32 @@ async def _update_existing_team_model_assignment( ) if old_public_name and public_model_name != old_public_name: - await team_model_delete( - data=TeamModelDeleteRequest( - team_id=team_id, - models=[old_public_name], - ), - http_request=Request(scope={"type": "http"}), - user_api_key_dict=user_api_key_dict, - ) + from litellm.proxy.proxy_server import llm_router + + other_deployments_with_old_name = [] + if llm_router: + all_deployments = llm_router.get_model_list( + model_name=old_public_name, team_id=team_id + ) + if all_deployments: + other_deployments_with_old_name = [ + d + for d in all_deployments + if d.get("model_name") != db_model.model_name + and d.get("model_info", {}).get("team_public_model_name") + == old_public_name + ] + + if not other_deployments_with_old_name: + await team_model_delete( + data=TeamModelDeleteRequest( + team_id=team_id, + models=[old_public_name], + ), + http_request=Request(scope={"type": "http"}), + user_api_key_dict=user_api_key_dict, + ) + await team_model_add( data=TeamModelAddRequest( team_id=team_id, diff --git a/tests/router_unit_tests/test_get_model_list_alias_optimization.py b/tests/router_unit_tests/test_get_model_list_alias_optimization.py index 31d992b6646..62baf0a3d22 100644 --- a/tests/router_unit_tests/test_get_model_list_alias_optimization.py +++ b/tests/router_unit_tests/test_get_model_list_alias_optimization.py @@ -46,5 +46,5 @@ def test_map_team_model_should_not_iterate_aliases_for_non_alias_team_model_name assert ( router.map_team_model(team_model_name="team-model", team_id="team-1") - == "gpt-3.5-turbo" + == "team-model" )