diff --git a/litellm/model_prices_and_context_window_backup.json b/litellm/model_prices_and_context_window_backup.json index 4a694e0ad14..a678359210f 100644 --- a/litellm/model_prices_and_context_window_backup.json +++ b/litellm/model_prices_and_context_window_backup.json @@ -78787,8 +78787,13 @@ "supports_parallel_function_calling": true, "supports_tool_choice": true, "supports_reasoning": true, - "supports_low_reasoning_effort": true, - "supports_max_reasoning_effort": true, + "reasoning_effort_levels": [ + "none", + "low", + "medium", + "high", + "max" + ], "supports_response_schema": true, "supports_system_messages": true, "supports_prompt_caching": true, @@ -78807,7 +78812,12 @@ "supports_parallel_function_calling": true, "supports_tool_choice": true, "supports_reasoning": true, - "supports_low_reasoning_effort": true, + "reasoning_effort_levels": [ + "low", + "medium", + "high", + "xhigh" + ], "supports_response_schema": true, "supports_system_messages": true, "supports_prompt_caching": true, @@ -78827,7 +78837,12 @@ "supports_parallel_function_calling": true, "supports_tool_choice": true, "supports_reasoning": true, - "supports_low_reasoning_effort": true, + "reasoning_effort_levels": [ + "low", + "medium", + "high", + "xhigh" + ], "supports_response_schema": true, "supports_system_messages": true, "supports_prompt_caching": true, @@ -78845,7 +78860,11 @@ "supports_parallel_function_calling": true, "supports_tool_choice": true, "supports_reasoning": true, - "supports_low_reasoning_effort": true, + "reasoning_effort_levels": [ + "low", + "medium", + "high" + ], "supports_response_schema": true, "supports_system_messages": true, "source": "https://clfaigateway.dev/models" @@ -78863,7 +78882,12 @@ "supports_parallel_function_calling": true, "supports_tool_choice": true, "supports_reasoning": true, - "supports_low_reasoning_effort": true, + "reasoning_effort_levels": [ + "low", + "medium", + "high", + "xhigh" + ], "supports_response_schema": true, "supports_system_messages": true, "supports_prompt_caching": true, @@ -78882,7 +78906,12 @@ "supports_parallel_function_calling": true, "supports_tool_choice": true, "supports_reasoning": true, - "supports_low_reasoning_effort": true, + "reasoning_effort_levels": [ + "low", + "medium", + "high", + "xhigh" + ], "supports_response_schema": true, "supports_system_messages": true, "supports_prompt_caching": true, @@ -78901,7 +78930,11 @@ "supports_parallel_function_calling": true, "supports_tool_choice": true, "supports_reasoning": true, - "supports_low_reasoning_effort": true, + "reasoning_effort_levels": [ + "low", + "medium", + "high" + ], "supports_response_schema": true, "supports_system_messages": true, "supports_prompt_caching": true, @@ -78921,7 +78954,11 @@ "supports_parallel_function_calling": true, "supports_tool_choice": true, "supports_reasoning": true, - "supports_low_reasoning_effort": true, + "reasoning_effort_levels": [ + "low", + "medium", + "high" + ], "supports_response_schema": true, "supports_system_messages": true, "supports_prompt_caching": true, @@ -78941,7 +78978,11 @@ "supports_parallel_function_calling": true, "supports_tool_choice": true, "supports_reasoning": true, - "supports_low_reasoning_effort": true, + "reasoning_effort_levels": [ + "low", + "medium", + "xhigh" + ], "supports_response_schema": true, "supports_system_messages": true, "supports_prompt_caching": true, diff --git a/model_prices_and_context_window.json b/model_prices_and_context_window.json index 4a694e0ad14..a678359210f 100644 --- a/model_prices_and_context_window.json +++ b/model_prices_and_context_window.json @@ -78787,8 +78787,13 @@ "supports_parallel_function_calling": true, "supports_tool_choice": true, "supports_reasoning": true, - "supports_low_reasoning_effort": true, - "supports_max_reasoning_effort": true, + "reasoning_effort_levels": [ + "none", + "low", + "medium", + "high", + "max" + ], "supports_response_schema": true, "supports_system_messages": true, "supports_prompt_caching": true, @@ -78807,7 +78812,12 @@ "supports_parallel_function_calling": true, "supports_tool_choice": true, "supports_reasoning": true, - "supports_low_reasoning_effort": true, + "reasoning_effort_levels": [ + "low", + "medium", + "high", + "xhigh" + ], "supports_response_schema": true, "supports_system_messages": true, "supports_prompt_caching": true, @@ -78827,7 +78837,12 @@ "supports_parallel_function_calling": true, "supports_tool_choice": true, "supports_reasoning": true, - "supports_low_reasoning_effort": true, + "reasoning_effort_levels": [ + "low", + "medium", + "high", + "xhigh" + ], "supports_response_schema": true, "supports_system_messages": true, "supports_prompt_caching": true, @@ -78845,7 +78860,11 @@ "supports_parallel_function_calling": true, "supports_tool_choice": true, "supports_reasoning": true, - "supports_low_reasoning_effort": true, + "reasoning_effort_levels": [ + "low", + "medium", + "high" + ], "supports_response_schema": true, "supports_system_messages": true, "source": "https://clfaigateway.dev/models" @@ -78863,7 +78882,12 @@ "supports_parallel_function_calling": true, "supports_tool_choice": true, "supports_reasoning": true, - "supports_low_reasoning_effort": true, + "reasoning_effort_levels": [ + "low", + "medium", + "high", + "xhigh" + ], "supports_response_schema": true, "supports_system_messages": true, "supports_prompt_caching": true, @@ -78882,7 +78906,12 @@ "supports_parallel_function_calling": true, "supports_tool_choice": true, "supports_reasoning": true, - "supports_low_reasoning_effort": true, + "reasoning_effort_levels": [ + "low", + "medium", + "high", + "xhigh" + ], "supports_response_schema": true, "supports_system_messages": true, "supports_prompt_caching": true, @@ -78901,7 +78930,11 @@ "supports_parallel_function_calling": true, "supports_tool_choice": true, "supports_reasoning": true, - "supports_low_reasoning_effort": true, + "reasoning_effort_levels": [ + "low", + "medium", + "high" + ], "supports_response_schema": true, "supports_system_messages": true, "supports_prompt_caching": true, @@ -78921,7 +78954,11 @@ "supports_parallel_function_calling": true, "supports_tool_choice": true, "supports_reasoning": true, - "supports_low_reasoning_effort": true, + "reasoning_effort_levels": [ + "low", + "medium", + "high" + ], "supports_response_schema": true, "supports_system_messages": true, "supports_prompt_caching": true, @@ -78941,7 +78978,11 @@ "supports_parallel_function_calling": true, "supports_tool_choice": true, "supports_reasoning": true, - "supports_low_reasoning_effort": true, + "reasoning_effort_levels": [ + "low", + "medium", + "xhigh" + ], "supports_response_schema": true, "supports_system_messages": true, "supports_prompt_caching": true, diff --git a/tests/test_litellm/llms/clf_ai_gateway/test_clf_ai_gateway_chat_transformation.py b/tests/test_litellm/llms/clf_ai_gateway/test_clf_ai_gateway_chat_transformation.py index 587103e1077..7cec1d65f21 100644 --- a/tests/test_litellm/llms/clf_ai_gateway/test_clf_ai_gateway_chat_transformation.py +++ b/tests/test_litellm/llms/clf_ai_gateway/test_clf_ai_gateway_chat_transformation.py @@ -2,6 +2,7 @@ import pytest import litellm from litellm.llms.clf_ai_gateway.chat.transformation import ClfAiGatewayConfig +from litellm.router_utils.reasoning_effort_capability import resolve_supported_reasoning_efforts from litellm.types.utils import LlmProviders MODELS = [ @@ -16,6 +17,18 @@ MODELS = [ "qwen3.8-27b", ] +GATEWAY_REASONING_EFFORTS = { + "glm-5.3": ("none", "low", "medium", "high", "max"), + "glm-5.3-flash": ("low", "medium", "high", "xhigh"), + "glm-5.2": ("low", "medium", "high", "xhigh"), + "glm-4.7-flash": ("low", "medium", "high"), + "deepseek-v4-pro": ("low", "medium", "high", "xhigh"), + "deepseek-v4-flash": ("low", "medium", "high", "xhigh"), + "kimi-k2.6": ("low", "medium", "high"), + "kimi-k2.7-code": ("low", "medium", "high"), + "qwen3.8-27b": ("low", "medium", "xhigh"), +} + @pytest.fixture(autouse=True) def _local_cost_map(monkeypatch: pytest.MonkeyPatch) -> None: @@ -126,3 +139,10 @@ def test_completion_routes_without_network(monkeypatch: pytest.MonkeyPatch) -> N mock_response="hello from mock", ) assert response.choices[0].message.content == "hello from mock" + + +@pytest.mark.parametrize("model", MODELS) +def test_advertised_reasoning_efforts_match_the_gateway(model: str) -> None: + key = f"clf_ai_gateway/{model}" + entry = {**litellm.model_cost[key], "key": key} + assert resolve_supported_reasoning_efforts(entry, deployment_is_mapped=True) == GATEWAY_REASONING_EFFORTS[model]