fix(model_prices): add azure_ai Codestral-2501 and FW-Nemotron-Lightning-3.5, sync Azure and Vertex deprecation dates, fix novita gpt-oss vision flags

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
mateo 2026-09-03 13:23:02 +00:00
parent 1a39275cb3
commit 55a5f142e6
4 changed files with 136 additions and 12 deletions

View file

@ -3264,7 +3264,8 @@
"supports_vision": true,
"supports_xhigh_reasoning_effort": true,
"supports_max_reasoning_effort": true,
"prompt_cache_min_tokens": 512
"prompt_cache_min_tokens": 512,
"deprecation_date": "2027-12-05"
},
"azure_ai/claude-opus-5": {
"deprecation_date": "2027-07-08",
@ -8813,7 +8814,7 @@
"supports_web_search": false
},
"azure/us/gpt-4.1-nano-2025-04-14": {
"deprecation_date": "2026-10-14",
"deprecation_date": "2027-04-14",
"cache_read_input_token_cost": 2.5e-08,
"input_cost_per_token": 1.1e-07,
"input_cost_per_token_batches": 6e-08,
@ -9333,6 +9334,26 @@
"source": "https://marketplace.microsoft.com/en-us/marketplace/apps/cohere.cohere-embed-v3-english-offer?tab=PlansAndPrice",
"supports_embedding_image_input": true
},
"azure_ai/Codestral-2501": {
"input_cost_per_token": 3e-07,
"litellm_provider": "azure_ai",
"max_input_tokens": 256000,
"max_output_tokens": 4096,
"max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 9e-07,
"source": "https://azure.microsoft.com/en-us/pricing/details/ai-foundry-models/mistral/",
"supported_endpoints": [
"/v1/chat/completions"
],
"supported_modalities": [
"text"
],
"supported_output_modalities": [
"text"
],
"supports_native_streaming": true
},
"azure_ai/FLUX-1.1-pro": {
"litellm_provider": "azure_ai",
"mode": "image_generation",
@ -9611,6 +9632,26 @@
"supports_tool_choice": true,
"supports_vision": true
},
"azure_ai/FW-Nemotron-Lightning-3.5-30B-A3B": {
"cache_read_input_token_cost": 1e-08,
"input_cost_per_token": 6e-08,
"litellm_provider": "azure_ai",
"max_input_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 2.2e-07,
"source": "https://azure.microsoft.com/en-us/pricing/details/ai-foundry-models/fireworks/",
"supported_modalities": [
"text"
],
"supported_output_modalities": [
"text"
],
"supports_function_calling": true,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true,
"supports_vision": false
},
"azure_ai/FW-Nemotron-3-Ultra-NVFP4": {
"cache_read_input_token_cost": 1.19e-07,
"input_cost_per_token": 6e-07,
@ -44923,7 +44964,8 @@
"supports_vision": true,
"supports_xhigh_reasoning_effort": true,
"supports_max_reasoning_effort": true,
"prompt_cache_min_tokens": 512
"prompt_cache_min_tokens": 512,
"deprecation_date": "2027-03-01"
},
"vertex_ai/claude-fable-5@default": {
"deprecation_date": "2027-06-08",
@ -44994,7 +45036,8 @@
"supports_vision": true,
"supports_xhigh_reasoning_effort": true,
"supports_max_reasoning_effort": true,
"prompt_cache_min_tokens": 512
"prompt_cache_min_tokens": 512,
"deprecation_date": "2027-03-01"
},
"vertex_ai/claude-opus-5": {
"deprecation_date": "2027-01-24",
@ -51227,7 +51270,7 @@
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
"supports_vision": true,
"supports_vision": false,
"supports_system_messages": true,
"supports_response_schema": true,
"supports_reasoning": true
@ -51343,7 +51386,7 @@
"max_output_tokens": 32768,
"max_tokens": 32768,
"supports_tool_choice": true,
"supports_vision": true,
"supports_vision": false,
"supports_system_messages": true,
"supports_response_schema": true,
"supports_reasoning": true

View file

@ -3264,7 +3264,8 @@
"supports_vision": true,
"supports_xhigh_reasoning_effort": true,
"supports_max_reasoning_effort": true,
"prompt_cache_min_tokens": 512
"prompt_cache_min_tokens": 512,
"deprecation_date": "2027-12-05"
},
"azure_ai/claude-opus-5": {
"deprecation_date": "2027-07-08",
@ -8813,7 +8814,7 @@
"supports_web_search": false
},
"azure/us/gpt-4.1-nano-2025-04-14": {
"deprecation_date": "2026-10-14",
"deprecation_date": "2027-04-14",
"cache_read_input_token_cost": 2.5e-08,
"input_cost_per_token": 1.1e-07,
"input_cost_per_token_batches": 6e-08,
@ -9333,6 +9334,26 @@
"source": "https://marketplace.microsoft.com/en-us/marketplace/apps/cohere.cohere-embed-v3-english-offer?tab=PlansAndPrice",
"supports_embedding_image_input": true
},
"azure_ai/Codestral-2501": {
"input_cost_per_token": 3e-07,
"litellm_provider": "azure_ai",
"max_input_tokens": 256000,
"max_output_tokens": 4096,
"max_tokens": 4096,
"mode": "chat",
"output_cost_per_token": 9e-07,
"source": "https://azure.microsoft.com/en-us/pricing/details/ai-foundry-models/mistral/",
"supported_endpoints": [
"/v1/chat/completions"
],
"supported_modalities": [
"text"
],
"supported_output_modalities": [
"text"
],
"supports_native_streaming": true
},
"azure_ai/FLUX-1.1-pro": {
"litellm_provider": "azure_ai",
"mode": "image_generation",
@ -9611,6 +9632,26 @@
"supports_tool_choice": true,
"supports_vision": true
},
"azure_ai/FW-Nemotron-Lightning-3.5-30B-A3B": {
"cache_read_input_token_cost": 1e-08,
"input_cost_per_token": 6e-08,
"litellm_provider": "azure_ai",
"max_input_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 2.2e-07,
"source": "https://azure.microsoft.com/en-us/pricing/details/ai-foundry-models/fireworks/",
"supported_modalities": [
"text"
],
"supported_output_modalities": [
"text"
],
"supports_function_calling": true,
"supports_prompt_caching": true,
"supports_reasoning": true,
"supports_tool_choice": true,
"supports_vision": false
},
"azure_ai/FW-Nemotron-3-Ultra-NVFP4": {
"cache_read_input_token_cost": 1.19e-07,
"input_cost_per_token": 6e-07,
@ -44923,7 +44964,8 @@
"supports_vision": true,
"supports_xhigh_reasoning_effort": true,
"supports_max_reasoning_effort": true,
"prompt_cache_min_tokens": 512
"prompt_cache_min_tokens": 512,
"deprecation_date": "2027-03-01"
},
"vertex_ai/claude-fable-5@default": {
"deprecation_date": "2027-06-08",
@ -44994,7 +45036,8 @@
"supports_vision": true,
"supports_xhigh_reasoning_effort": true,
"supports_max_reasoning_effort": true,
"prompt_cache_min_tokens": 512
"prompt_cache_min_tokens": 512,
"deprecation_date": "2027-03-01"
},
"vertex_ai/claude-opus-5": {
"deprecation_date": "2027-01-24",
@ -51227,7 +51270,7 @@
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_tool_choice": true,
"supports_vision": true,
"supports_vision": false,
"supports_system_messages": true,
"supports_response_schema": true,
"supports_reasoning": true
@ -51343,7 +51386,7 @@
"max_output_tokens": 32768,
"max_tokens": 32768,
"supports_tool_choice": true,
"supports_vision": true,
"supports_vision": false,
"supports_system_messages": true,
"supports_response_schema": true,
"supports_reasoning": true

View file

@ -499,3 +499,16 @@ class TestAzureAIServiceTierCostCalculation:
assert flex_prompt < standard_prompt
assert flex_completion < standard_completion
def test_codestral_2501_model_info_and_cost():
model_info = get_model_info(model="Codestral-2501", custom_llm_provider="azure_ai")
usage = Usage(prompt_tokens=1_000_000, completion_tokens=1_000_000, total_tokens=2_000_000)
prompt_cost, completion_cost = cost_per_token(model="Codestral-2501", usage=usage)
assert model_info["mode"] == "chat"
assert model_info["max_input_tokens"] == 256000
assert model_info["max_output_tokens"] == 4096
assert prompt_cost == pytest.approx(0.3)
assert completion_cost == pytest.approx(0.9)

View file

@ -176,6 +176,7 @@ def test_azure_ai_fw_model_info(use_local_model_cost_map, model_key, expected):
("FW-MiniMax-M2.5", 0.33, 1.32),
("FW-Inkling", 1.0, 4.05),
("FW-Nemotron-3-Ultra-NVFP4", 0.6, 2.4),
("FW-Nemotron-Lightning-3.5-30B-A3B", 0.06, 0.22),
],
)
def test_azure_ai_fw_cost_per_token(
@ -196,6 +197,30 @@ def test_azure_ai_fw_cost_per_token(
assert completion_cost == pytest.approx(expected_completion)
def test_azure_ai_fw_nemotron_lightning_model_info(use_local_model_cost_map):
model_info = use_local_model_cost_map.get_model_info(model="azure_ai/FW-Nemotron-Lightning-3.5-30B-A3B")
assert model_info["litellm_provider"] == "azure_ai"
assert model_info["mode"] == "chat"
assert model_info["input_cost_per_token"] == pytest.approx(6e-08)
assert model_info["output_cost_per_token"] == pytest.approx(2.2e-07)
assert model_info["cache_read_input_token_cost"] == pytest.approx(1e-08)
assert model_info["max_input_tokens"] == 262144
assert model_info["supports_function_calling"] is True
assert model_info["supports_reasoning"] is True
assert model_info["supports_tool_choice"] is True
assert model_info["supports_prompt_caching"] is True
assert model_info["supports_vision"] is False
def test_azure_ai_fw_nemotron_lightning_supports_tool_choice(use_local_model_cost_map):
from litellm.llms.azure_ai.chat.transformation import AzureAIStudioConfig
supported_params = AzureAIStudioConfig().get_supported_openai_params("FW-Nemotron-Lightning-3.5-30B-A3B")
assert "tool_choice" in supported_params
def test_azure_ai_fw_kimi_k26_case_insensitive_lookup(use_local_model_cost_map):
upper = use_local_model_cost_map.get_model_info(model="azure_ai/FW-Kimi-K2.6")
lower = use_local_model_cost_map.get_model_info(model="azure_ai/fw-kimi-k2.6")