mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-14 23:21:35 +00:00
fix(openai): forward reasoning_effort for unknown model aliases instead of failing closed
This commit is contained in:
parent
d1320404fe
commit
a03378f6d1
2 changed files with 45 additions and 0 deletions
|
|
@ -178,6 +178,10 @@ class OpenAIGPTConfig(BaseLLMModelInfo, BaseConfig):
|
|||
model_specific_params.append(
|
||||
"user"
|
||||
) # user is not a param supported by all openai-compatible endpoints - e.g. azure ai
|
||||
else:
|
||||
model_specific_params.append(
|
||||
"reasoning_effort"
|
||||
) # unknown model: likely a proxy alias for a reasoning-capable model, so forward and let the server decide
|
||||
return base_params + model_specific_params
|
||||
|
||||
def _map_openai_params(
|
||||
|
|
|
|||
|
|
@ -145,6 +145,47 @@ class TestGetOptionalParamsIntegration:
|
|||
assert regular_params.get("user") == "my-end-user"
|
||||
assert responses_params.get("user") == "my-end-user"
|
||||
|
||||
def test_reasoning_effort_supported_for_unknown_model_alias(self):
|
||||
"""An openai/-routed model litellm doesn't recognize is likely a proxy alias:
|
||||
reasoning_effort must be forwarded so the server decides support."""
|
||||
supported_params = OpenAIGPTConfig().get_supported_openai_params(
|
||||
"my-claude-alias"
|
||||
)
|
||||
assert "reasoning_effort" in supported_params
|
||||
|
||||
def test_reasoning_effort_not_supported_for_known_non_reasoning_models(self):
|
||||
"""Known OpenAI models keep failing closed client-side."""
|
||||
config = OpenAIGPTConfig()
|
||||
assert "reasoning_effort" not in config.get_supported_openai_params("gpt-4o")
|
||||
assert "reasoning_effort" not in config.get_supported_openai_params(
|
||||
"responses/gpt-4.1-mini"
|
||||
)
|
||||
|
||||
def test_reasoning_effort_forwarded_in_optional_params_for_unknown_model_alias(
|
||||
self,
|
||||
):
|
||||
"""Regression test for reasoning_effort raising UnsupportedParamsError
|
||||
client-side for openai/-prefixed proxy aliases before any HTTP request."""
|
||||
from litellm.utils import get_optional_params
|
||||
|
||||
optional_params = get_optional_params(
|
||||
model="my-claude-alias",
|
||||
custom_llm_provider="openai",
|
||||
reasoning_effort="low",
|
||||
)
|
||||
assert optional_params.get("reasoning_effort") == "low"
|
||||
|
||||
def test_reasoning_effort_still_rejected_for_known_non_reasoning_model(self):
|
||||
"""A real OpenAI model that doesn't reason still rejects the param client-side."""
|
||||
from litellm.utils import get_optional_params
|
||||
|
||||
with pytest.raises(litellm.utils.UnsupportedParamsError):
|
||||
get_optional_params(
|
||||
model="gpt-4o",
|
||||
custom_llm_provider="openai",
|
||||
reasoning_effort="low",
|
||||
)
|
||||
|
||||
|
||||
class TestOpenAIChatCompletionStreamingHandler:
|
||||
"""Tests for OpenAIChatCompletionStreamingHandler.chunk_parser()"""
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue