mirror of
https://github.com/BerriAI/litellm.git
synced 2026-11-14 09:03:16 +00:00
fix(model_prices): add Azure DeepSeek V4.1 Flash 1017 and two Perplexity Agent API rows (#51444)
* Add Azure DeepSeek V4.1 Flash 1017 pricing Absorb PR #51025 with official Azure pricing and limits. Omit unsupported capability and retirement metadata. Co-authored-by: Emerson Gomes <emerson.gomes@thalesgroup.com> Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * Add Perplexity Fable 5.2 and Gemini 4 Carbon pricing Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: Emerson Gomes <emerson.gomes@thalesgroup.com>
This commit is contained in:
parent
dc1284d3d2
commit
6cc56fcc26
3 changed files with 62 additions and 5 deletions
|
|
@ -69829,6 +69829,18 @@
|
|||
"supports_tool_choice": true,
|
||||
"supports_vision": true
|
||||
},
|
||||
"azure_ai/deepseek-v4.1-flash-1017": {
|
||||
"input_cost_per_token": 3e-07,
|
||||
"output_cost_per_token": 1.2e-06,
|
||||
"cache_read_input_token_cost": 6e-09,
|
||||
"litellm_provider": "azure_ai",
|
||||
"mode": "chat",
|
||||
"max_input_tokens": 1000000,
|
||||
"max_output_tokens": 128000,
|
||||
"supports_prompt_caching": true,
|
||||
"supports_vision": false,
|
||||
"source": "https://ai.azure.com/catalog/models/DeepSeek-V4.1-Flash-1017"
|
||||
},
|
||||
"azure_ai/deepseek-v4.1-flash": {
|
||||
"cache_read_input_token_cost": 6e-09,
|
||||
"input_cost_per_token": 3e-07,
|
||||
|
|
@ -71842,6 +71854,14 @@
|
|||
"cache_read_input_token_cost": 1e-07,
|
||||
"source": "https://docs.perplexity.ai/docs/agent-api/models"
|
||||
},
|
||||
"perplexity/google/gemini-4-carbon": {
|
||||
"litellm_provider": "perplexity",
|
||||
"mode": "responses",
|
||||
"input_cost_per_token": 2e-06,
|
||||
"output_cost_per_token": 1e-05,
|
||||
"cache_read_input_token_cost": 1e-07,
|
||||
"source": "https://docs.perplexity.ai/docs/agent-api/models"
|
||||
},
|
||||
"perplexity/google/gemini-3.6-flash": {
|
||||
"litellm_provider": "perplexity",
|
||||
"mode": "responses",
|
||||
|
|
@ -77127,6 +77147,14 @@
|
|||
"cache_read_input_token_cost": 1e-07,
|
||||
"source": "https://docs.perplexity.ai/docs/agent-api/models"
|
||||
},
|
||||
"perplexity/anthropic/claude-fable-5-2": {
|
||||
"litellm_provider": "perplexity",
|
||||
"mode": "responses",
|
||||
"input_cost_per_token": 8e-06,
|
||||
"output_cost_per_token": 4e-05,
|
||||
"cache_read_input_token_cost": 2e-07,
|
||||
"source": "https://docs.perplexity.ai/docs/agent-api/models"
|
||||
},
|
||||
"perplexity/anthropic/claude-fable-5-1": {
|
||||
"litellm_provider": "perplexity",
|
||||
"mode": "responses",
|
||||
|
|
|
|||
|
|
@ -69829,6 +69829,18 @@
|
|||
"supports_tool_choice": true,
|
||||
"supports_vision": true
|
||||
},
|
||||
"azure_ai/deepseek-v4.1-flash-1017": {
|
||||
"input_cost_per_token": 3e-07,
|
||||
"output_cost_per_token": 1.2e-06,
|
||||
"cache_read_input_token_cost": 6e-09,
|
||||
"litellm_provider": "azure_ai",
|
||||
"mode": "chat",
|
||||
"max_input_tokens": 1000000,
|
||||
"max_output_tokens": 128000,
|
||||
"supports_prompt_caching": true,
|
||||
"supports_vision": false,
|
||||
"source": "https://ai.azure.com/catalog/models/DeepSeek-V4.1-Flash-1017"
|
||||
},
|
||||
"azure_ai/deepseek-v4.1-flash": {
|
||||
"cache_read_input_token_cost": 6e-09,
|
||||
"input_cost_per_token": 3e-07,
|
||||
|
|
@ -71842,6 +71854,14 @@
|
|||
"cache_read_input_token_cost": 1e-07,
|
||||
"source": "https://docs.perplexity.ai/docs/agent-api/models"
|
||||
},
|
||||
"perplexity/google/gemini-4-carbon": {
|
||||
"litellm_provider": "perplexity",
|
||||
"mode": "responses",
|
||||
"input_cost_per_token": 2e-06,
|
||||
"output_cost_per_token": 1e-05,
|
||||
"cache_read_input_token_cost": 1e-07,
|
||||
"source": "https://docs.perplexity.ai/docs/agent-api/models"
|
||||
},
|
||||
"perplexity/google/gemini-3.6-flash": {
|
||||
"litellm_provider": "perplexity",
|
||||
"mode": "responses",
|
||||
|
|
@ -77127,6 +77147,14 @@
|
|||
"cache_read_input_token_cost": 1e-07,
|
||||
"source": "https://docs.perplexity.ai/docs/agent-api/models"
|
||||
},
|
||||
"perplexity/anthropic/claude-fable-5-2": {
|
||||
"litellm_provider": "perplexity",
|
||||
"mode": "responses",
|
||||
"input_cost_per_token": 8e-06,
|
||||
"output_cost_per_token": 4e-05,
|
||||
"cache_read_input_token_cost": 2e-07,
|
||||
"source": "https://docs.perplexity.ai/docs/agent-api/models"
|
||||
},
|
||||
"perplexity/anthropic/claude-fable-5-1": {
|
||||
"litellm_provider": "perplexity",
|
||||
"mode": "responses",
|
||||
|
|
|
|||
|
|
@ -231,14 +231,15 @@ def test_azure_model_router_stream_chunks_report_selected_model(respx_mock: resp
|
|||
assert [chunk.model for chunk in chunks] == ["gpt-4.1-nano-2025-04-14", "gpt-4.1-nano-2025-04-14"]
|
||||
|
||||
|
||||
@pytest.mark.parametrize("model", ["gpt-4.1-mini", "DeepSeek-V4.1-Flash-1017"])
|
||||
@pytest.mark.respx(assert_all_called=True)
|
||||
def test_azure_ai_completion_cost_uses_response_usage(respx_mock: respx.MockRouter) -> None:
|
||||
def test_azure_ai_completion_cost_uses_response_usage(respx_mock: respx.MockRouter, model: str) -> None:
|
||||
api_url: Final = "https://example-resource.services.ai.azure.com/models/chat/completions"
|
||||
response_body: Final = {
|
||||
"id": "chatcmpl-azure-ai",
|
||||
"object": "chat.completion",
|
||||
"created": 1700000000,
|
||||
"model": "gpt-4.1-mini",
|
||||
"model": model,
|
||||
"choices": [
|
||||
{
|
||||
"index": 0,
|
||||
|
|
@ -251,18 +252,18 @@ def test_azure_ai_completion_cost_uses_response_usage(respx_mock: respx.MockRout
|
|||
route: Final = respx_mock.post(url__startswith=api_url).mock(return_value=Response(200, json=response_body))
|
||||
messages: Final = [{"role": "user", "content": "hello"}]
|
||||
response: Final = litellm.completion(
|
||||
model="azure_ai/gpt-4.1-mini",
|
||||
model=f"azure_ai/{model}",
|
||||
messages=messages,
|
||||
api_base="https://example-resource.services.ai.azure.com/models",
|
||||
api_key="azure-ai-test-key",
|
||||
api_version="2024-05-01-preview",
|
||||
)
|
||||
request_body: Final = json.loads(route.calls[0].request.content)
|
||||
model_info: Final = litellm.get_model_info(model="gpt-4.1-mini", custom_llm_provider="azure_ai")
|
||||
model_info: Final = litellm.get_model_info(model=model, custom_llm_provider="azure_ai")
|
||||
expected_cost: Final = 11 * model_info["input_cost_per_token"] + 3 * model_info["output_cost_per_token"]
|
||||
|
||||
assert route.call_count == 1
|
||||
assert request_body == {"model": "gpt-4.1-mini", "messages": messages}
|
||||
assert request_body == {"model": model, "messages": messages}
|
||||
assert response.choices[0].message.content == "hello"
|
||||
assert response._hidden_params["response_cost"] == pytest.approx(expected_cost, rel=1e-9)
|
||||
assert litellm.completion_cost(completion_response=response) == pytest.approx(expected_cost, rel=1e-9)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue