mirror of
https://github.com/BerriAI/litellm.git
synced 2026-11-15 09:12:18 +00:00
fix(azure): drop unsupported gpt-5.5 temperature
This commit is contained in:
parent
b200d664ee
commit
f81732bd5b
2 changed files with 88 additions and 0 deletions
|
|
@ -18,6 +18,11 @@ class AzureOpenAIGPT5Config(AzureOpenAIConfig, OpenAIGPT5Config):
|
|||
|
||||
GPT5_SERIES_ROUTE = "gpt5_series/"
|
||||
|
||||
@classmethod
|
||||
def _rejects_non_default_temperature(cls, model: str) -> bool:
|
||||
model_name = model.split("/")[-1]
|
||||
return model_name.startswith(("gpt-5.5", "gpt-5.6"))
|
||||
|
||||
@classmethod
|
||||
def _supports_reasoning_effort_level(cls, model: str, level: str) -> bool:
|
||||
"""Override to handle gpt5_series/ prefix used for Azure routing.
|
||||
|
|
@ -93,6 +98,20 @@ class AzureOpenAIGPT5Config(AzureOpenAIConfig, OpenAIGPT5Config):
|
|||
drop_params: bool,
|
||||
api_version: str = "",
|
||||
) -> dict:
|
||||
temperature_value = non_default_params.get("temperature")
|
||||
if self._rejects_non_default_temperature(model) and temperature_value not in (None, 1):
|
||||
if litellm.drop_params is True or drop_params is True:
|
||||
non_default_params = {key: value for key, value in non_default_params.items() if key != "temperature"}
|
||||
else:
|
||||
raise UnsupportedParamsError(
|
||||
status_code=400,
|
||||
message=(
|
||||
f"Azure OpenAI {model} does not support temperature={temperature_value}. "
|
||||
"Only temperature=1 is supported. "
|
||||
"To drop unsupported params set `litellm.drop_params = True`"
|
||||
),
|
||||
)
|
||||
|
||||
reasoning_effort_value = non_default_params.get("reasoning_effort") or optional_params.get("reasoning_effort")
|
||||
effective_effort = _get_effort_level(reasoning_effort_value)
|
||||
|
||||
|
|
|
|||
|
|
@ -50,6 +50,75 @@ def test_azure_gpt5_temperature_error(config: AzureOpenAIGPT5Config):
|
|||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"model",
|
||||
[
|
||||
"azure/gpt-5.5",
|
||||
"azure/gpt-5.5-2026-04-23",
|
||||
"azure/gpt-5.6",
|
||||
"azure/gpt-5.6-luna",
|
||||
"azure/gpt-5.6-sol",
|
||||
"azure/gpt-5.6-terra",
|
||||
"gpt5_series/gpt-5.6-luna",
|
||||
],
|
||||
)
|
||||
def test_azure_gpt5_5_and_5_6_non_default_temperature(
|
||||
config: AzureOpenAIGPT5Config,
|
||||
model: str,
|
||||
monkeypatch: pytest.MonkeyPatch,
|
||||
):
|
||||
assert (
|
||||
config.map_openai_params(
|
||||
non_default_params={"temperature": 0.3},
|
||||
optional_params={},
|
||||
model=model,
|
||||
drop_params=True,
|
||||
)
|
||||
== {}
|
||||
)
|
||||
|
||||
monkeypatch.setattr(litellm, "drop_params", True)
|
||||
assert (
|
||||
config.map_openai_params(
|
||||
non_default_params={"temperature": 0.3},
|
||||
optional_params={},
|
||||
model=model,
|
||||
drop_params=False,
|
||||
)
|
||||
== {}
|
||||
)
|
||||
|
||||
monkeypatch.setattr(litellm, "drop_params", False)
|
||||
with pytest.raises(litellm.utils.UnsupportedParamsError):
|
||||
config.map_openai_params(
|
||||
non_default_params={"temperature": 0.3},
|
||||
optional_params={},
|
||||
model=model,
|
||||
drop_params=False,
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("model", "temperature"),
|
||||
[
|
||||
("azure/gpt-5.4", 0.3),
|
||||
("azure/gpt-5.5", 1),
|
||||
("azure/gpt-5.6-sol", 1.0),
|
||||
],
|
||||
)
|
||||
def test_azure_gpt5_temperature_supported_values_unchanged(
|
||||
config: AzureOpenAIGPT5Config,
|
||||
model: str,
|
||||
temperature: float,
|
||||
):
|
||||
assert config.map_openai_params(
|
||||
non_default_params={"temperature": temperature},
|
||||
optional_params={},
|
||||
model=model,
|
||||
drop_params=False,
|
||||
)["temperature"] == temperature
|
||||
|
||||
|
||||
def test_azure_gpt5_series_transform_request(config: AzureOpenAIGPT5Config):
|
||||
request = config.transform_request(
|
||||
model="gpt5_series/gpt-5",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue