[Platform][Gemini] Fix ResultConverter to handle gemini-2.5-flash multi-part thinking responses
#1046
+43
−1
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.
Problem
When using Gemini 2.5 models (e.g.,
gemini-2.5-flash), the API can return multi-part responses that include"thinking" content alongside the actual response. This is similar to Claude's extended thinking feature.
Example response structure:
thoughtSignaturefieldThe current
ResultConverter::convertChoice()method doesn't handle this case. It only processes:When multiple text parts exist without code execution, the method throws
RuntimeException('Code execution failed.')which is incorrect and confusing.Solution
Added fallback logic to concatenate all text parts when no code execution results are present. This allows
multi-part thinking responses to be processed correctly as
TextResult.Changes
convertChoice()to concatenate text from all parts when code execution is not detectedTesting
Tested with
gemini-2.5-flashmodel returning thinking + JSON response structure.