fix(lowest_cost): resolve provider-prefixed model pricing via get_model_info

This commit is contained in:
Anuj7411 2026-08-09 02:43:55 +05:30
parent 8fdb1c1cf2
commit 35798b6f0b
2 changed files with 37 additions and 0 deletions

View file

@ -246,6 +246,13 @@ class LowestCostLoggingHandler(CustomLogger):
)
item_litellm_model_name = _deployment.get("litellm_params", {}).get("model")
item_litellm_model_cost_map = litellm.model_cost.get(item_litellm_model_name, {})
if not item_litellm_model_cost_map and item_litellm_model_name:
try:
item_litellm_model_cost_map = dict(
litellm.get_model_info(model=item_litellm_model_name)
)
except Exception:
item_litellm_model_cost_map = {}
# check if user provided input_cost_per_token and output_cost_per_token in litellm_params
item_input_cost = None

View file

@ -49,6 +49,36 @@ async def test_get_available_deployments():
assert selected_model["model_info"]["id"] == "groq-llama"
@pytest.mark.asyncio
async def test_get_available_deployments_provider_prefixed_model_pricing():
test_cache = DualCache()
model_list = [
{
"model_name": "gpt-3.5-turbo",
"litellm_params": {"model": "openai/gpt-4o-mini"},
"model_info": {"id": "prefixed-openai"},
},
{
"model_name": "gpt-3.5-turbo",
"litellm_params": {
"model": "azure/some-custom-deployment",
"input_cost_per_token": 0.5,
"output_cost_per_token": 0.5,
},
"model_info": {"id": "custom-priced"},
},
]
lowest_cost_logger = LowestCostLoggingHandler(
router_cache=test_cache,
)
selected_model = await lowest_cost_logger.async_get_available_deployments(
model_group="gpt-3.5-turbo", healthy_deployments=model_list
)
assert selected_model["model_info"]["id"] == "prefixed-openai"
@pytest.mark.asyncio
async def test_get_available_deployments_custom_price():
from litellm._logging import verbose_router_logger