File tree Expand file tree Collapse file tree 1 file changed +11
-6
lines changed
Expand file tree Collapse file tree 1 file changed +11
-6
lines changed Original file line number Diff line number Diff line change @@ -1629,12 +1629,17 @@ def _postprocess_messages(messages: list[ConversationMessage]) -> None:
16291629 # so, for messages that have tool_calls, parse the string (which we get
16301630 # from openAI format) to dict
16311631 for message in messages :
1632- if (
1633- message ["role" ] == "assistant"
1634- and "tool_calls" in message
1635- and isinstance (message ["tool_calls" ], list )
1636- ):
1637- for item in message ["tool_calls" ]:
1632+ if message ["role" ] == "assistant" and "tool_calls" in message :
1633+ tool_calls = message .get ("tool_calls" )
1634+ if not isinstance (tool_calls , list ):
1635+ continue
1636+
1637+ if len (tool_calls ) == 0 :
1638+ # Drop empty tool_calls to keep templates on the normal assistant path.
1639+ message .pop ("tool_calls" , None )
1640+ continue
1641+
1642+ for item in tool_calls :
16381643 # if arguments is None or empty string, set to {}
16391644 if content := item ["function" ].get ("arguments" ):
16401645 if not isinstance (content , (dict , list )):
You can’t perform that action at this time.
0 commit comments