From 9b7c5ab39746b63e8dfde85399f3cca094bc805b Mon Sep 17 00:00:00 2001 From: weizhang3 Date: Fri, 22 Aug 2025 11:48:43 +0800 Subject: [PATCH] Fix finish_reason logic in Azure AI client streaming response --- .../src/autogen_ext/models/azure/_azure_ai_client.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/python/packages/autogen-ext/src/autogen_ext/models/azure/_azure_ai_client.py b/python/packages/autogen-ext/src/autogen_ext/models/azure/_azure_ai_client.py index a783d4965..d17f22512 100644 --- a/python/packages/autogen-ext/src/autogen_ext/models/azure/_azure_ai_client.py +++ b/python/packages/autogen-ext/src/autogen_ext/models/azure/_azure_ai_client.py @@ -523,6 +523,9 @@ class AzureAIChatCompletionClient(ChatCompletionClient): if choice and choice.finish_reason is not None: if isinstance(choice.finish_reason, CompletionsFinishReason): finish_reason = cast(FinishReasons, choice.finish_reason.value) + # Handle special case for TOOL_CALLS finish reason + if choice.finish_reason is CompletionsFinishReason.TOOL_CALLS: + finish_reason = "function_calls" else: if choice.finish_reason in ["stop", "length", "function_calls", "content_filter", "unknown"]: finish_reason = choice.finish_reason # type: ignore @@ -554,8 +557,6 @@ class AzureAIChatCompletionClient(ChatCompletionClient): if finish_reason is None: raise ValueError("No stop reason found") - if choice and choice.finish_reason is CompletionsFinishReason.TOOL_CALLS: - finish_reason = "function_calls" content: Union[str, List[FunctionCall]]