fix(azure): forward context_management on Azure Responses API

AzureOpenAIResponsesAPIConfig filtered context_management out of the supported
params, so with drop_params it was silently dropped and callers got no
server-side compaction and no error. Azure now documents context_management on
the Responses API, so remove the Azure-specific exclusion and inherit the base
supported params. The O-series subclass keeps dropping temperature via super().

Fixes #36391
This commit is contained in:
Ben Younes 2026-08-10 12:40:47 +00:00 • committed by Ousama Ben Younes
parent 973329e986
commit 36c2e50c79
2 changed files with 13 additions and 17 deletions

View file

@ -22,20 +22,10 @@ else:
class AzureOpenAIResponsesAPIConfig(OpenAIResponsesAPIConfig):
# Parameters not supported by Azure Responses API
AZURE_UNSUPPORTED_PARAMS = ["context_management"]
@property
def custom_llm_provider(self) -> LlmProviders:
return LlmProviders.AZURE
def get_supported_openai_params(self, model: str) -> list:
"""
Azure Responses API does not support context_management (compaction).
"""
base_supported_params: Final = super().get_supported_openai_params(model)
return [param for param in base_supported_params if param not in self.AZURE_UNSUPPORTED_PARAMS]
def validate_environment(self, headers: dict, model: str, litellm_params: GenericLiteLLMParams | None) -> dict:
return BaseAzureLLM._base_validate_azure_environment(headers=headers, litellm_params=litellm_params)

View file

@ -534,11 +534,17 @@ class TestAzureResponsesAPIConfig:
assert "tools" not in response_api_params
def test_azure_responses_api_context_management_unsupported(self):
"""Test that context_management is not in Azure supported params.
Azure does not support context_management (compaction). It should be
excluded from supported params so it gets dropped.
"""
supported = self.config.get_supported_openai_params(self.model)
assert "context_management" not in supported
@pytest.mark.serial
def test_azure_responses_api_supports_context_management():
"""Regression for #36391: Azure Responses API documents server-side compaction,
so context_management must be a supported param (not silently dropped)."""
config = AzureOpenAIResponsesAPIConfig()
supported_params = config.get_supported_openai_params("gpt-5.1")
assert "context_management" in supported_params
o_series_config = AzureOpenAIOSeriesResponsesAPIConfig()
o_series_supported = o_series_config.get_supported_openai_params("o_series/gpt-o1")
assert "context_management" in o_series_supported
assert "temperature" not in o_series_supported