mirror of
https://github.com/BerriAI/litellm.git
synced 2025-04-27 03:34:10 +00:00
(Polish/Fixes) - Fixes for Adding Team Specific Models (#8645)
* refactor get model info for team models * allow adding a model to a team when creating team specific model * ui update selected Team on Team Dropdown * test_team_model_association * testing for team specific models * test_get_team_specific_model * test: skip on internal server error * remove model alias card on teams page * linting fix _get_team_specific_model * fix DeploymentTypedDict * fix linting error * fix code quality * fix model info checks --------- Co-authored-by: Krrish Dholakia <krrishdholakia@gmail.com>
This commit is contained in:
parent
e08e8eda47
commit
e5f29c3f7d
12 changed files with 599 additions and 310 deletions
|
@ -2601,24 +2601,64 @@ def test_model_group_alias(hidden):
|
|||
assert len(model_names) == len(_model_list) + 1
|
||||
|
||||
|
||||
def test_get_public_model_name():
|
||||
def test_get_team_specific_model():
|
||||
"""
|
||||
Test that the _get_public_model_name helper returns the `team_public_model_name` if it exists, otherwise it returns the `model_name`.
|
||||
Test that _get_team_specific_model returns:
|
||||
- team_public_model_name when team_id matches
|
||||
- None when team_id doesn't match
|
||||
- None when no team_id in model_info
|
||||
"""
|
||||
_model_list = [
|
||||
{
|
||||
"model_name": "model_name_12299393939_gms",
|
||||
"litellm_params": {"model": "gpt-4o"},
|
||||
"model_info": {"team_public_model_name": "gpt-4o"},
|
||||
},
|
||||
]
|
||||
router = Router(
|
||||
model_list=_model_list,
|
||||
router = Router(model_list=[])
|
||||
|
||||
# Test 1: Matching team_id
|
||||
deployment = DeploymentTypedDict(
|
||||
model_name="model-x",
|
||||
litellm_params={},
|
||||
model_info=ModelInfo(team_id="team1", team_public_model_name="public-model-x"),
|
||||
)
|
||||
assert router._get_team_specific_model(deployment, "team1") == "public-model-x"
|
||||
|
||||
models = router.get_model_list()
|
||||
# Test 2: Non-matching team_id
|
||||
assert router._get_team_specific_model(deployment, "team2") is None
|
||||
|
||||
assert router._get_public_model_name(models[0]) == "gpt-4o"
|
||||
# Test 3: No team_id in model_info
|
||||
deployment = DeploymentTypedDict(
|
||||
model_name="model-y",
|
||||
litellm_params={},
|
||||
model_info=ModelInfo(team_public_model_name="public-model-y"),
|
||||
)
|
||||
assert router._get_team_specific_model(deployment, "team1") is None
|
||||
|
||||
# Test 4: No model_info
|
||||
deployment = DeploymentTypedDict(
|
||||
model_name="model-z", litellm_params={}, model_info=ModelInfo()
|
||||
)
|
||||
assert router._get_team_specific_model(deployment, "team1") is None
|
||||
|
||||
|
||||
def test_is_team_specific_model():
|
||||
"""
|
||||
Test that _is_team_specific_model returns:
|
||||
- True when model_info contains team_id
|
||||
- False when model_info doesn't contain team_id
|
||||
- False when model_info is None
|
||||
"""
|
||||
router = Router(model_list=[])
|
||||
|
||||
# Test 1: With team_id
|
||||
model_info = ModelInfo(team_id="team1", team_public_model_name="public-model-x")
|
||||
assert router._is_team_specific_model(model_info) is True
|
||||
|
||||
# Test 2: Without team_id
|
||||
model_info = ModelInfo(team_public_model_name="public-model-y")
|
||||
assert router._is_team_specific_model(model_info) is False
|
||||
|
||||
# Test 3: Empty model_info
|
||||
model_info = ModelInfo()
|
||||
assert router._is_team_specific_model(model_info) is False
|
||||
|
||||
# Test 4: None model_info
|
||||
assert router._is_team_specific_model(None) is False
|
||||
|
||||
|
||||
# @pytest.mark.parametrize("on_error", [True, False])
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue