mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-13 03:59:12 +00:00
feat(vertex_ai): add semantic-ranker rerank pricing to the cost map (#46061)
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
parent
fe33d85e66
commit
19327a606e
3 changed files with 165 additions and 4 deletions
|
|
@ -51643,6 +51643,70 @@
|
|||
"litellm_provider": "vertex_ai",
|
||||
"mode": "vector_store"
|
||||
},
|
||||
"vertex_ai/semantic-ranker-default": {
|
||||
"input_cost_per_query": 0.001,
|
||||
"input_cost_per_token": 0.0,
|
||||
"litellm_provider": "vertex_ai",
|
||||
"mode": "rerank",
|
||||
"output_cost_per_token": 0.0,
|
||||
"source": "https://cloud.google.com/generative-ai-app-builder/pricing"
|
||||
},
|
||||
"vertex_ai/semantic-ranker-default-002": {
|
||||
"input_cost_per_query": 0.001,
|
||||
"input_cost_per_token": 0.0,
|
||||
"litellm_provider": "vertex_ai",
|
||||
"mode": "rerank",
|
||||
"output_cost_per_token": 0.0,
|
||||
"source": "https://cloud.google.com/generative-ai-app-builder/pricing"
|
||||
},
|
||||
"vertex_ai/semantic-ranker-default-003": {
|
||||
"input_cost_per_query": 0.001,
|
||||
"input_cost_per_token": 0.0,
|
||||
"litellm_provider": "vertex_ai",
|
||||
"mode": "rerank",
|
||||
"output_cost_per_token": 0.0,
|
||||
"source": "https://cloud.google.com/generative-ai-app-builder/pricing"
|
||||
},
|
||||
"vertex_ai/semantic-ranker-default-004": {
|
||||
"input_cost_per_query": 0.001,
|
||||
"input_cost_per_token": 0.0,
|
||||
"litellm_provider": "vertex_ai",
|
||||
"mode": "rerank",
|
||||
"output_cost_per_token": 0.0,
|
||||
"source": "https://cloud.google.com/generative-ai-app-builder/pricing"
|
||||
},
|
||||
"vertex_ai/semantic-ranker-default@latest": {
|
||||
"input_cost_per_query": 0.001,
|
||||
"input_cost_per_token": 0.0,
|
||||
"litellm_provider": "vertex_ai",
|
||||
"mode": "rerank",
|
||||
"output_cost_per_token": 0.0,
|
||||
"source": "https://cloud.google.com/generative-ai-app-builder/pricing"
|
||||
},
|
||||
"vertex_ai/semantic-ranker-fast": {
|
||||
"input_cost_per_query": 0.001,
|
||||
"input_cost_per_token": 0.0,
|
||||
"litellm_provider": "vertex_ai",
|
||||
"mode": "rerank",
|
||||
"output_cost_per_token": 0.0,
|
||||
"source": "https://cloud.google.com/generative-ai-app-builder/pricing"
|
||||
},
|
||||
"vertex_ai/semantic-ranker-fast-004": {
|
||||
"input_cost_per_query": 0.001,
|
||||
"input_cost_per_token": 0.0,
|
||||
"litellm_provider": "vertex_ai",
|
||||
"mode": "rerank",
|
||||
"output_cost_per_token": 0.0,
|
||||
"source": "https://cloud.google.com/generative-ai-app-builder/pricing"
|
||||
},
|
||||
"vertex_ai/semantic-ranker-fast@latest": {
|
||||
"input_cost_per_query": 0.001,
|
||||
"input_cost_per_token": 0.0,
|
||||
"litellm_provider": "vertex_ai",
|
||||
"mode": "rerank",
|
||||
"output_cost_per_token": 0.0,
|
||||
"source": "https://cloud.google.com/generative-ai-app-builder/pricing"
|
||||
},
|
||||
"openai/container": {
|
||||
"code_interpreter_cost_per_session": 0.03,
|
||||
"litellm_provider": "openai",
|
||||
|
|
|
|||
|
|
@ -51643,6 +51643,70 @@
|
|||
"litellm_provider": "vertex_ai",
|
||||
"mode": "vector_store"
|
||||
},
|
||||
"vertex_ai/semantic-ranker-default": {
|
||||
"input_cost_per_query": 0.001,
|
||||
"input_cost_per_token": 0.0,
|
||||
"litellm_provider": "vertex_ai",
|
||||
"mode": "rerank",
|
||||
"output_cost_per_token": 0.0,
|
||||
"source": "https://cloud.google.com/generative-ai-app-builder/pricing"
|
||||
},
|
||||
"vertex_ai/semantic-ranker-default-002": {
|
||||
"input_cost_per_query": 0.001,
|
||||
"input_cost_per_token": 0.0,
|
||||
"litellm_provider": "vertex_ai",
|
||||
"mode": "rerank",
|
||||
"output_cost_per_token": 0.0,
|
||||
"source": "https://cloud.google.com/generative-ai-app-builder/pricing"
|
||||
},
|
||||
"vertex_ai/semantic-ranker-default-003": {
|
||||
"input_cost_per_query": 0.001,
|
||||
"input_cost_per_token": 0.0,
|
||||
"litellm_provider": "vertex_ai",
|
||||
"mode": "rerank",
|
||||
"output_cost_per_token": 0.0,
|
||||
"source": "https://cloud.google.com/generative-ai-app-builder/pricing"
|
||||
},
|
||||
"vertex_ai/semantic-ranker-default-004": {
|
||||
"input_cost_per_query": 0.001,
|
||||
"input_cost_per_token": 0.0,
|
||||
"litellm_provider": "vertex_ai",
|
||||
"mode": "rerank",
|
||||
"output_cost_per_token": 0.0,
|
||||
"source": "https://cloud.google.com/generative-ai-app-builder/pricing"
|
||||
},
|
||||
"vertex_ai/semantic-ranker-default@latest": {
|
||||
"input_cost_per_query": 0.001,
|
||||
"input_cost_per_token": 0.0,
|
||||
"litellm_provider": "vertex_ai",
|
||||
"mode": "rerank",
|
||||
"output_cost_per_token": 0.0,
|
||||
"source": "https://cloud.google.com/generative-ai-app-builder/pricing"
|
||||
},
|
||||
"vertex_ai/semantic-ranker-fast": {
|
||||
"input_cost_per_query": 0.001,
|
||||
"input_cost_per_token": 0.0,
|
||||
"litellm_provider": "vertex_ai",
|
||||
"mode": "rerank",
|
||||
"output_cost_per_token": 0.0,
|
||||
"source": "https://cloud.google.com/generative-ai-app-builder/pricing"
|
||||
},
|
||||
"vertex_ai/semantic-ranker-fast-004": {
|
||||
"input_cost_per_query": 0.001,
|
||||
"input_cost_per_token": 0.0,
|
||||
"litellm_provider": "vertex_ai",
|
||||
"mode": "rerank",
|
||||
"output_cost_per_token": 0.0,
|
||||
"source": "https://cloud.google.com/generative-ai-app-builder/pricing"
|
||||
},
|
||||
"vertex_ai/semantic-ranker-fast@latest": {
|
||||
"input_cost_per_query": 0.001,
|
||||
"input_cost_per_token": 0.0,
|
||||
"litellm_provider": "vertex_ai",
|
||||
"mode": "rerank",
|
||||
"output_cost_per_token": 0.0,
|
||||
"source": "https://cloud.google.com/generative-ai-app-builder/pricing"
|
||||
},
|
||||
"openai/container": {
|
||||
"code_interpreter_cost_per_session": 0.03,
|
||||
"litellm_provider": "openai",
|
||||
|
|
|
|||
|
|
@ -1059,9 +1059,9 @@ def test_per_query_priced_rerank_deployment_completion_cost_is_nonzero():
|
|||
router: Final = Router(
|
||||
model_list=[
|
||||
{
|
||||
"model_name": "semantic-ranker-default-004",
|
||||
"model_name": "semantic-ranker-custom-test",
|
||||
"litellm_params": {
|
||||
"model": "vertex_ai/semantic-ranker-default-004",
|
||||
"model": "vertex_ai/semantic-ranker-custom-test",
|
||||
"vertex_project": "test-project",
|
||||
"vertex_location": "us-east5",
|
||||
},
|
||||
|
|
@ -1070,7 +1070,7 @@ def test_per_query_priced_rerank_deployment_completion_cost_is_nonzero():
|
|||
]
|
||||
)
|
||||
router_model_id: Final = router.model_list[0]["model_info"]["id"]
|
||||
assert litellm.model_cost["vertex_ai/semantic-ranker-default-004"].get("input_cost_per_query") is None
|
||||
assert litellm.model_cost.get("vertex_ai/semantic-ranker-custom-test", {}).get("input_cost_per_query") is None
|
||||
|
||||
response: Final = RerankResponse(
|
||||
id="vertex_ai_rerank_test",
|
||||
|
|
@ -1080,7 +1080,7 @@ def test_per_query_priced_rerank_deployment_completion_cost_is_nonzero():
|
|||
|
||||
cost: Final = completion_cost(
|
||||
completion_response=response,
|
||||
model="vertex_ai/semantic-ranker-default-004",
|
||||
model="vertex_ai/semantic-ranker-custom-test",
|
||||
custom_llm_provider="vertex_ai",
|
||||
call_type="arerank",
|
||||
custom_pricing=True,
|
||||
|
|
@ -1090,6 +1090,39 @@ def test_per_query_priced_rerank_deployment_completion_cost_is_nonzero():
|
|||
assert cost == pytest.approx(3 * 0.001)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"model",
|
||||
(
|
||||
"vertex_ai/semantic-ranker-default",
|
||||
"vertex_ai/semantic-ranker-default@latest",
|
||||
"vertex_ai/semantic-ranker-default-004",
|
||||
"vertex_ai/semantic-ranker-default-003",
|
||||
"vertex_ai/semantic-ranker-default-002",
|
||||
"vertex_ai/semantic-ranker-fast",
|
||||
"vertex_ai/semantic-ranker-fast@latest",
|
||||
"vertex_ai/semantic-ranker-fast-004",
|
||||
),
|
||||
)
|
||||
def test_vertex_semantic_ranker_rerank_completion_cost_is_nonzero(
|
||||
model: str, _local_model_cost_map: None
|
||||
) -> None:
|
||||
response: Final = RerankResponse(
|
||||
id="vertex_ai_rerank_pricing_test",
|
||||
results=[],
|
||||
meta={"billed_units": {"search_units": 3}},
|
||||
)
|
||||
|
||||
cost: Final = completion_cost(
|
||||
completion_response=response,
|
||||
model=model,
|
||||
custom_llm_provider="vertex_ai",
|
||||
call_type="rerank",
|
||||
)
|
||||
|
||||
assert cost > 0
|
||||
assert cost == pytest.approx(3 * litellm.model_cost[model]["input_cost_per_query"])
|
||||
|
||||
|
||||
def test_azure_realtime_cost_calculator(_local_model_cost_map):
|
||||
|
||||
cost = handle_realtime_stream_cost_calculation(
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue