From 8ff3bbcfee48d3bf138d4a87b35a3163c60d0b77 Mon Sep 17 00:00:00 2001 From: Krrish Dholakia Date: Sat, 30 Dec 2023 17:55:24 +0530 Subject: [PATCH] fix(proxy_server.py): router model group alias routing check model alias group routing before specific deployment routing, to deal with an alias being the same as a deployment name (e.g. gpt-3.5-turbo) n --- litellm/proxy/proxy_server.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/litellm/proxy/proxy_server.py b/litellm/proxy/proxy_server.py index aa820379e..bc8b36633 100644 --- a/litellm/proxy/proxy_server.py +++ b/litellm/proxy/proxy_server.py @@ -1130,18 +1130,18 @@ async def completion( llm_router is not None and data["model"] in router_model_names ): # model in router model list response = await llm_router.atext_completion(**data) - elif ( - llm_router is not None and data["model"] in llm_router.deployment_names - ): # model in router deployments, calling a specific deployment on the router - response = await llm_router.atext_completion( - **data, specific_deployment=True - ) elif ( llm_router is not None and llm_router.model_group_alias is not None and data["model"] in llm_router.model_group_alias ): # model set in model_group_alias response = await llm_router.atext_completion(**data) + elif ( + llm_router is not None and data["model"] in llm_router.deployment_names + ): # model in router deployments, calling a specific deployment on the router + response = await llm_router.atext_completion( + **data, specific_deployment=True + ) else: # router is not set response = await litellm.atext_completion(**data) @@ -1278,16 +1278,16 @@ async def chat_completion( llm_router is not None and data["model"] in router_model_names ): # model in router model list response = await llm_router.acompletion(**data) - elif ( - llm_router is not None and data["model"] in llm_router.deployment_names - ): # model in router deployments, calling a specific deployment on the router - response = await llm_router.acompletion(**data, specific_deployment=True) elif ( llm_router is not None and llm_router.model_group_alias is not None and data["model"] in llm_router.model_group_alias ): # model set in model_group_alias response = await llm_router.acompletion(**data) + elif ( + llm_router is not None and data["model"] in llm_router.deployment_names + ): # model in router deployments, calling a specific deployment on the router + response = await llm_router.acompletion(**data, specific_deployment=True) else: # router is not set response = await litellm.acompletion(**data) @@ -1438,10 +1438,6 @@ async def embeddings( llm_router is not None and data["model"] in router_model_names ): # model in router model list response = await llm_router.aembedding(**data) - elif ( - llm_router is not None and data["model"] in llm_router.deployment_names - ): # model in router deployments, calling a specific deployment on the router - response = await llm_router.aembedding(**data, specific_deployment=True) elif ( llm_router is not None and llm_router.model_group_alias is not None @@ -1450,6 +1446,10 @@ async def embeddings( response = await llm_router.aembedding( **data ) # ensure this goes the llm_router, router will do the correct alias mapping + elif ( + llm_router is not None and data["model"] in llm_router.deployment_names + ): # model in router deployments, calling a specific deployment on the router + response = await llm_router.aembedding(**data, specific_deployment=True) else: response = await litellm.aembedding(**data)