From ee237054ed3fba4c4d9a563af5707f5db092d9ad Mon Sep 17 00:00:00 2001 From: Timothy Oluwatobi Ojebiyi Date: Sat, 16 May 2026 08:53:53 +0100 Subject: [PATCH] fix(transformation): prevent 'reasoning_effort' promotion for non-Claude models --- litellm/llms/github_copilot/chat/transformation.py | 5 ++++- .../test_github_copilot_transformation.py | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/litellm/llms/github_copilot/chat/transformation.py b/litellm/llms/github_copilot/chat/transformation.py index b18ed73f073..24d18a1d52b 100644 --- a/litellm/llms/github_copilot/chat/transformation.py +++ b/litellm/llms/github_copilot/chat/transformation.py @@ -174,7 +174,10 @@ class GithubCopilotConfig(OpenAIConfig): else: reasoning_effort = "minimal" optional_params["reasoning_effort"] = reasoning_effort - elif non_default_params.get("reasoning_effort") is not None: + elif ( + "claude" in model.lower() + and non_default_params.get("reasoning_effort") is not None + ): optional_params["reasoning_effort"] = non_default_params.pop( "reasoning_effort" ) diff --git a/tests/test_litellm/llms/github_copilot/test_github_copilot_transformation.py b/tests/test_litellm/llms/github_copilot/test_github_copilot_transformation.py index 8d64b0030ca..cd51bc2b02c 100644 --- a/tests/test_litellm/llms/github_copilot/test_github_copilot_transformation.py +++ b/tests/test_litellm/llms/github_copilot/test_github_copilot_transformation.py @@ -563,6 +563,20 @@ def test_map_openai_params_thinking_not_popped_for_non_claude_model(): assert "reasoning_effort" not in optional_params +def test_map_openai_params_reasoning_effort_not_promoted_for_non_claude_model(): + """For non-Claude models, ``reasoning_effort`` must not be force-promoted + to ``optional_params``; the parent's supported-params filtering must run.""" + config = GithubCopilotConfig() + + optional_params = config.map_openai_params( + non_default_params={"reasoning_effort": "high"}, + optional_params={}, + model="gpt-4", + drop_params=True, + ) + assert "reasoning_effort" not in optional_params + + def test_copilot_vision_request_header_with_image(): """Test that Copilot-Vision-Request header is added when messages contain images""" config = GithubCopilotConfig()