diff --git a/litellm/llms/azure/chat/gpt_transformation.py b/litellm/llms/azure/chat/gpt_transformation.py index 50b3ba16326..2851aec241c 100644 --- a/litellm/llms/azure/chat/gpt_transformation.py +++ b/litellm/llms/azure/chat/gpt_transformation.py @@ -169,6 +169,8 @@ class AzureOpenAIConfig(BaseConfig): api_version_day = None for param, value in non_default_params.items(): + if param == "max_tokens" and "max_completion_tokens" in non_default_params: + continue if param == "tool_choice": """ This parameter requires API version 2023-12-01-preview or later diff --git a/tests/test_litellm/llms/azure/chat/test_azure_chat_gpt_transformation.py b/tests/test_litellm/llms/azure/chat/test_azure_chat_gpt_transformation.py index 7f837dd58b1..e1312d0ebe1 100644 --- a/tests/test_litellm/llms/azure/chat/test_azure_chat_gpt_transformation.py +++ b/tests/test_litellm/llms/azure/chat/test_azure_chat_gpt_transformation.py @@ -54,3 +54,39 @@ def test_map_openai_params_with_preview_api_version(): assert config.map_openai_params( non_default_params, optional_params, model, drop_params, api_version ) + + +def test_map_openai_params_sends_only_max_completion_tokens_when_both_set(): + config = AzureOpenAIConfig() + result = config.map_openai_params( + non_default_params={"max_tokens": 512, "max_completion_tokens": 256}, + optional_params={}, + model="gpt-4o", + drop_params=False, + api_version="2025-01-01-preview", + ) + assert result == {"max_completion_tokens": 256} + + +def test_map_openai_params_keeps_lone_max_tokens(): + config = AzureOpenAIConfig() + result = config.map_openai_params( + non_default_params={"max_tokens": 512}, + optional_params={}, + model="gpt-4o", + drop_params=False, + api_version="2025-01-01-preview", + ) + assert result == {"max_tokens": 512} + + +def test_map_openai_params_keeps_lone_max_completion_tokens(): + config = AzureOpenAIConfig() + result = config.map_openai_params( + non_default_params={"max_completion_tokens": 256}, + optional_params={}, + model="gpt-4o", + drop_params=False, + api_version="2025-01-01-preview", + ) + assert result == {"max_completion_tokens": 256}