mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-07 02:59:05 +00:00
fix(lowest_cost): honor an explicit zero custom price instead of the fallback
This commit is contained in:
parent
35798b6f0b
commit
8beb5622c9
2 changed files with 36 additions and 2 deletions
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue