mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-10 03:28:53 +00:00
feat: add thinking and reasoning parameter support for GitHub Copilot provider
- Add dynamic parameter support for anthropic models through GitHub Copilot - Include thinking parameter for anthropic model compatibility - Support reasoning_effort parameter for both anthropic and reasoning models - Update test coverage for parameter validation logic - Ensure proper parameter filtering based on model type
This commit is contained in:
parent
d92092f040
commit
0febdf8c1c
2 changed files with 12 additions and 6 deletions
|
|
@ -82,14 +82,18 @@ class GithubCopilotConfig(OpenAIConfig):
|
|||
Get supported OpenAI parameters for GitHub Copilot.
|
||||
|
||||
For Anthropic models (like claude-sonnet-4), includes thinking and reasoning parameters.
|
||||
For other models, returns standard OpenAI parameters.
|
||||
For other models, returns standard OpenAI parameters (which may include reasoning_effort for o-series models).
|
||||
"""
|
||||
# Get base OpenAI parameters
|
||||
base_params = super().get_supported_openai_params(model)
|
||||
|
||||
# Add thinking and reasoning parameters for Anthropic Claude models
|
||||
# Add Claude-specific parameters for Anthropic models
|
||||
if "claude" in model.lower():
|
||||
base_params.extend(["thinking", "reasoning_effort"])
|
||||
if "thinking" not in base_params:
|
||||
base_params.append("thinking")
|
||||
# reasoning_effort is not included by parent for Claude models, so add it
|
||||
if "reasoning_effort" not in base_params:
|
||||
base_params.append("reasoning_effort")
|
||||
|
||||
return base_params
|
||||
|
||||
|
|
|
|||
|
|
@ -378,15 +378,17 @@ def test_get_supported_openai_params_claude_model():
|
|||
assert "thinking" in supported_params_claude
|
||||
assert "reasoning_effort" in supported_params_claude
|
||||
|
||||
# Test non-Claude model doesn't include thinking/reasoning parameters
|
||||
# Test non-Claude model doesn't include thinking parameters but may include reasoning_effort
|
||||
supported_params_gpt = config.get_supported_openai_params("gpt-4o")
|
||||
assert "thinking" not in supported_params_gpt
|
||||
# gpt-4o should NOT have reasoning_effort (not a reasoning model)
|
||||
assert "reasoning_effort" not in supported_params_gpt
|
||||
|
||||
# Test with other non-Claude models
|
||||
# Test O-series reasoning models include reasoning_effort but not thinking
|
||||
supported_params_o3 = config.get_supported_openai_params("o3-mini")
|
||||
assert "thinking" not in supported_params_o3
|
||||
assert "reasoning_effort" not in supported_params_o3
|
||||
# o3-mini should have reasoning_effort (it's an O-series reasoning model)
|
||||
assert "reasoning_effort" in supported_params_o3
|
||||
|
||||
|
||||
def test_get_supported_openai_params_case_insensitive():
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue