diff --git a/litellm/model_prices_and_context_window_backup.json b/litellm/model_prices_and_context_window_backup.json index e6c76983e91..c36018feb9d 100644 --- a/litellm/model_prices_and_context_window_backup.json +++ b/litellm/model_prices_and_context_window_backup.json @@ -6639,8 +6639,7 @@ "supports_web_search": true, "supports_none_reasoning_effort": true, "supports_xhigh_reasoning_effort": true, - "supports_minimal_reasoning_effort": false, - "supports_max_reasoning_effort": true + "supports_minimal_reasoning_effort": false }, "azure/gpt-5.6-sol": { "cache_read_input_token_cost": 5e-07, @@ -6691,8 +6690,7 @@ "supports_web_search": true, "supports_none_reasoning_effort": true, "supports_xhigh_reasoning_effort": true, - "supports_minimal_reasoning_effort": false, - "supports_max_reasoning_effort": true + "supports_minimal_reasoning_effort": false }, "azure/gpt-5.6-terra": { "cache_read_input_token_cost": 2e-07, @@ -6743,8 +6741,7 @@ "supports_web_search": true, "supports_none_reasoning_effort": true, "supports_xhigh_reasoning_effort": true, - "supports_minimal_reasoning_effort": false, - "supports_max_reasoning_effort": true + "supports_minimal_reasoning_effort": false }, "azure/gpt-5.6-luna": { "cache_read_input_token_cost": 2e-08, @@ -6795,8 +6792,7 @@ "supports_web_search": true, "supports_none_reasoning_effort": true, "supports_xhigh_reasoning_effort": true, - "supports_minimal_reasoning_effort": false, - "supports_max_reasoning_effort": true + "supports_minimal_reasoning_effort": false }, "azure/us/gpt-5.6": { "cache_read_input_token_cost": 5.5e-07, @@ -6843,8 +6839,7 @@ "supports_web_search": true, "supports_none_reasoning_effort": true, "supports_xhigh_reasoning_effort": true, - "supports_minimal_reasoning_effort": false, - "supports_max_reasoning_effort": true + "supports_minimal_reasoning_effort": false }, "azure/us/gpt-5.6-sol": { "cache_read_input_token_cost": 5.5e-07, @@ -6892,8 +6887,7 @@ "supports_web_search": true, "supports_none_reasoning_effort": true, "supports_xhigh_reasoning_effort": true, - "supports_minimal_reasoning_effort": false, - "supports_max_reasoning_effort": true + "supports_minimal_reasoning_effort": false }, "azure/us/gpt-5.6-terra": { "cache_read_input_token_cost": 2.2e-07, @@ -6941,8 +6935,7 @@ "supports_web_search": true, "supports_none_reasoning_effort": true, "supports_xhigh_reasoning_effort": true, - "supports_minimal_reasoning_effort": false, - "supports_max_reasoning_effort": true + "supports_minimal_reasoning_effort": false }, "azure/us/gpt-5.6-luna": { "cache_read_input_token_cost": 2.2e-08, @@ -6990,8 +6983,7 @@ "supports_web_search": true, "supports_none_reasoning_effort": true, "supports_xhigh_reasoning_effort": true, - "supports_minimal_reasoning_effort": false, - "supports_max_reasoning_effort": true + "supports_minimal_reasoning_effort": false }, "azure/eu/gpt-5.6": { "cache_read_input_token_cost": 5.5e-07, @@ -7038,8 +7030,7 @@ "supports_web_search": true, "supports_none_reasoning_effort": true, "supports_xhigh_reasoning_effort": true, - "supports_minimal_reasoning_effort": false, - "supports_max_reasoning_effort": true + "supports_minimal_reasoning_effort": false }, "azure/eu/gpt-5.6-sol": { "cache_read_input_token_cost": 5.5e-07, @@ -7087,8 +7078,7 @@ "supports_web_search": true, "supports_none_reasoning_effort": true, "supports_xhigh_reasoning_effort": true, - "supports_minimal_reasoning_effort": false, - "supports_max_reasoning_effort": true + "supports_minimal_reasoning_effort": false }, "azure/eu/gpt-5.6-terra": { "cache_read_input_token_cost": 2.2e-07, @@ -7136,8 +7126,7 @@ "supports_web_search": true, "supports_none_reasoning_effort": true, "supports_xhigh_reasoning_effort": true, - "supports_minimal_reasoning_effort": false, - "supports_max_reasoning_effort": true + "supports_minimal_reasoning_effort": false }, "azure/eu/gpt-5.6-luna": { "cache_read_input_token_cost": 2.2e-08, @@ -7185,8 +7174,7 @@ "supports_web_search": true, "supports_none_reasoning_effort": true, "supports_xhigh_reasoning_effort": true, - "supports_minimal_reasoning_effort": false, - "supports_max_reasoning_effort": true + "supports_minimal_reasoning_effort": false }, "azure/gpt-5.5": { "deprecation_date": "2027-10-26", @@ -26417,8 +26405,7 @@ "supports_tool_choice": true, "supports_vision": true, "supports_web_search": true, - "supports_xhigh_reasoning_effort": true, - "supports_max_reasoning_effort": true + "supports_xhigh_reasoning_effort": true }, "gpt-5.6-sol": { "cache_creation_input_token_cost": 5e-06, @@ -26482,8 +26469,7 @@ "supports_tool_choice": true, "supports_vision": true, "supports_web_search": true, - "supports_xhigh_reasoning_effort": true, - "supports_max_reasoning_effort": true + "supports_xhigh_reasoning_effort": true }, "gpt-5.6-terra": { "cache_creation_input_token_cost": 2.5e-06, @@ -26546,8 +26532,7 @@ "supports_tool_choice": true, "supports_vision": true, "supports_web_search": true, - "supports_xhigh_reasoning_effort": true, - "supports_max_reasoning_effort": true + "supports_xhigh_reasoning_effort": true }, "gpt-5.6-luna": { "cache_creation_input_token_cost": 2.5e-07, @@ -26610,8 +26595,7 @@ "supports_tool_choice": true, "supports_vision": true, "supports_web_search": true, - "supports_xhigh_reasoning_effort": true, - "supports_max_reasoning_effort": true + "supports_xhigh_reasoning_effort": true }, "gpt-5.6-cyber": { "cache_creation_input_token_cost": 1.5625e-05, diff --git a/model_prices_and_context_window.json b/model_prices_and_context_window.json index e6c76983e91..c36018feb9d 100644 --- a/model_prices_and_context_window.json +++ b/model_prices_and_context_window.json @@ -6639,8 +6639,7 @@ "supports_web_search": true, "supports_none_reasoning_effort": true, "supports_xhigh_reasoning_effort": true, - "supports_minimal_reasoning_effort": false, - "supports_max_reasoning_effort": true + "supports_minimal_reasoning_effort": false }, "azure/gpt-5.6-sol": { "cache_read_input_token_cost": 5e-07, @@ -6691,8 +6690,7 @@ "supports_web_search": true, "supports_none_reasoning_effort": true, "supports_xhigh_reasoning_effort": true, - "supports_minimal_reasoning_effort": false, - "supports_max_reasoning_effort": true + "supports_minimal_reasoning_effort": false }, "azure/gpt-5.6-terra": { "cache_read_input_token_cost": 2e-07, @@ -6743,8 +6741,7 @@ "supports_web_search": true, "supports_none_reasoning_effort": true, "supports_xhigh_reasoning_effort": true, - "supports_minimal_reasoning_effort": false, - "supports_max_reasoning_effort": true + "supports_minimal_reasoning_effort": false }, "azure/gpt-5.6-luna": { "cache_read_input_token_cost": 2e-08, @@ -6795,8 +6792,7 @@ "supports_web_search": true, "supports_none_reasoning_effort": true, "supports_xhigh_reasoning_effort": true, - "supports_minimal_reasoning_effort": false, - "supports_max_reasoning_effort": true + "supports_minimal_reasoning_effort": false }, "azure/us/gpt-5.6": { "cache_read_input_token_cost": 5.5e-07, @@ -6843,8 +6839,7 @@ "supports_web_search": true, "supports_none_reasoning_effort": true, "supports_xhigh_reasoning_effort": true, - "supports_minimal_reasoning_effort": false, - "supports_max_reasoning_effort": true + "supports_minimal_reasoning_effort": false }, "azure/us/gpt-5.6-sol": { "cache_read_input_token_cost": 5.5e-07, @@ -6892,8 +6887,7 @@ "supports_web_search": true, "supports_none_reasoning_effort": true, "supports_xhigh_reasoning_effort": true, - "supports_minimal_reasoning_effort": false, - "supports_max_reasoning_effort": true + "supports_minimal_reasoning_effort": false }, "azure/us/gpt-5.6-terra": { "cache_read_input_token_cost": 2.2e-07, @@ -6941,8 +6935,7 @@ "supports_web_search": true, "supports_none_reasoning_effort": true, "supports_xhigh_reasoning_effort": true, - "supports_minimal_reasoning_effort": false, - "supports_max_reasoning_effort": true + "supports_minimal_reasoning_effort": false }, "azure/us/gpt-5.6-luna": { "cache_read_input_token_cost": 2.2e-08, @@ -6990,8 +6983,7 @@ "supports_web_search": true, "supports_none_reasoning_effort": true, "supports_xhigh_reasoning_effort": true, - "supports_minimal_reasoning_effort": false, - "supports_max_reasoning_effort": true + "supports_minimal_reasoning_effort": false }, "azure/eu/gpt-5.6": { "cache_read_input_token_cost": 5.5e-07, @@ -7038,8 +7030,7 @@ "supports_web_search": true, "supports_none_reasoning_effort": true, "supports_xhigh_reasoning_effort": true, - "supports_minimal_reasoning_effort": false, - "supports_max_reasoning_effort": true + "supports_minimal_reasoning_effort": false }, "azure/eu/gpt-5.6-sol": { "cache_read_input_token_cost": 5.5e-07, @@ -7087,8 +7078,7 @@ "supports_web_search": true, "supports_none_reasoning_effort": true, "supports_xhigh_reasoning_effort": true, - "supports_minimal_reasoning_effort": false, - "supports_max_reasoning_effort": true + "supports_minimal_reasoning_effort": false }, "azure/eu/gpt-5.6-terra": { "cache_read_input_token_cost": 2.2e-07, @@ -7136,8 +7126,7 @@ "supports_web_search": true, "supports_none_reasoning_effort": true, "supports_xhigh_reasoning_effort": true, - "supports_minimal_reasoning_effort": false, - "supports_max_reasoning_effort": true + "supports_minimal_reasoning_effort": false }, "azure/eu/gpt-5.6-luna": { "cache_read_input_token_cost": 2.2e-08, @@ -7185,8 +7174,7 @@ "supports_web_search": true, "supports_none_reasoning_effort": true, "supports_xhigh_reasoning_effort": true, - "supports_minimal_reasoning_effort": false, - "supports_max_reasoning_effort": true + "supports_minimal_reasoning_effort": false }, "azure/gpt-5.5": { "deprecation_date": "2027-10-26", @@ -26417,8 +26405,7 @@ "supports_tool_choice": true, "supports_vision": true, "supports_web_search": true, - "supports_xhigh_reasoning_effort": true, - "supports_max_reasoning_effort": true + "supports_xhigh_reasoning_effort": true }, "gpt-5.6-sol": { "cache_creation_input_token_cost": 5e-06, @@ -26482,8 +26469,7 @@ "supports_tool_choice": true, "supports_vision": true, "supports_web_search": true, - "supports_xhigh_reasoning_effort": true, - "supports_max_reasoning_effort": true + "supports_xhigh_reasoning_effort": true }, "gpt-5.6-terra": { "cache_creation_input_token_cost": 2.5e-06, @@ -26546,8 +26532,7 @@ "supports_tool_choice": true, "supports_vision": true, "supports_web_search": true, - "supports_xhigh_reasoning_effort": true, - "supports_max_reasoning_effort": true + "supports_xhigh_reasoning_effort": true }, "gpt-5.6-luna": { "cache_creation_input_token_cost": 2.5e-07, @@ -26610,8 +26595,7 @@ "supports_tool_choice": true, "supports_vision": true, "supports_web_search": true, - "supports_xhigh_reasoning_effort": true, - "supports_max_reasoning_effort": true + "supports_xhigh_reasoning_effort": true }, "gpt-5.6-cyber": { "cache_creation_input_token_cost": 1.5625e-05, diff --git a/tests/test_litellm/llms/openai/test_gpt5_transformation.py b/tests/test_litellm/llms/openai/test_gpt5_transformation.py index 5af767f0a86..f2fc7934164 100644 --- a/tests/test_litellm/llms/openai/test_gpt5_transformation.py +++ b/tests/test_litellm/llms/openai/test_gpt5_transformation.py @@ -1311,14 +1311,34 @@ def test_responses_gpt54_allow_temperature_effort_none( assert params["temperature"] == 0.7 -def test_gpt5_6_allows_reasoning_effort_max(config: OpenAIConfig): - params = config.map_openai_params( - non_default_params={"reasoning_effort": "max"}, - optional_params={}, +@pytest.mark.parametrize("model", ["gpt-5.6", "gpt-5.6-sol", "gpt-5.6-terra", "gpt-5.6-luna"]) +def test_gpt5_6_rejects_reasoning_effort_max_on_chat_completions(config: OpenAIConfig, model: str): + """/v1/chat/completions answers max with "Unsupported value: 'reasoning_effort' does not support + 'max' with this model. Supported values are: 'none', 'low', 'medium', 'high', and 'xhigh'" on + every gpt-5.6 snapshot, so no gpt-5.6 map entry asserts supports_max_reasoning_effort and the + level is refused here instead of being forwarded into a provider 400.""" + with pytest.raises(litellm.utils.UnsupportedParamsError): + config.map_openai_params( + non_default_params={"reasoning_effort": "max"}, + optional_params={}, + model=model, + drop_params=False, + ) + + +def test_gpt5_6_keeps_reasoning_effort_max_on_the_responses_api( + responses_config: OpenAIResponsesAPIConfig, +): + """/v1/responses accepts max for gpt-5.6, and that is the surface the cursor thinking-max + variant resolves onto, so the responses path keeps carrying the level chat refuses.""" + params = responses_config.map_openai_params( + response_api_optional_params=ResponsesAPIOptionalRequestParams( + reasoning={"effort": "max"}, + ), model="gpt-5.6", drop_params=False, ) - assert params["reasoning_effort"] == "max" + assert params["reasoning"] == {"effort": "max"} def test_gpt5_6_rejects_reasoning_effort_ultra_until_the_map_opts_in(config: OpenAIConfig):