fix(lowest_cost): honor an explicit zero custom price instead of the fallback

This commit is contained in:
Anuj7411 2026-08-09 02:56:28 +05:30
parent 35798b6f0b
commit 8beb5622c9
2 changed files with 36 additions and 2 deletions

View file

@ -257,10 +257,10 @@ class LowestCostLoggingHandler(CustomLogger):
# check if user provided input_cost_per_token and output_cost_per_token in litellm_params
item_input_cost = None
item_output_cost = None
if _deployment.get("litellm_params", {}).get("input_cost_per_token", None):
if _deployment.get("litellm_params", {}).get("input_cost_per_token") is not None:
item_input_cost = _deployment.get("litellm_params", {}).get("input_cost_per_token")
if _deployment.get("litellm_params", {}).get("output_cost_per_token", None):
if _deployment.get("litellm_params", {}).get("output_cost_per_token") is not None:
item_output_cost = _deployment.get("litellm_params", {}).get("output_cost_per_token")
if item_input_cost is None:

View file

@ -79,6 +79,40 @@ async def test_get_available_deployments_provider_prefixed_model_pricing():
assert selected_model["model_info"]["id"] == "prefixed-openai"
@pytest.mark.asyncio
async def test_get_available_deployments_zero_custom_price_is_honored():
test_cache = DualCache()
model_list = [
{
"model_name": "gpt-3.5-turbo",
"litellm_params": {
"model": "anthropic/claude-3-5-haiku-latest",
"input_cost_per_token": 0,
"output_cost_per_token": 0,
},
"model_info": {"id": "byok-zero-cost"},
},
{
"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"] == "byok-zero-cost"
@pytest.mark.asyncio
async def test_get_available_deployments_custom_price():
from litellm._logging import verbose_router_logger