Fix finish_reason logic in Azure AI client streaming response #6963
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR fixes a bug in the Azure AI client where the finish_reason logic for TOOL_CALLS was being processed after a potential None check, which could cause a mismatch when choice is None.
Changes
Bug Description
The original code had lines 557-558 checking \choice.finish_reason\ after line 554 where \inish_reason\ could be None and throw an exception. The logic should be moved to within the loop where \choice\ is guaranteed to exist, specifically after line 525 where \inish_reason\ is initially set.
Testing
Fixes the finish_reason mismatch bug when choice can be None in streaming responses.