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:
devin-ai-integration[bot] 2026-10-12 12:40:27 -07:00 • committed by GitHub
parent fe33d85e66
commit 19327a606e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 165 additions and 4 deletions

View file

@ -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",

View file

@ -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",

View file

@ -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(