@@ -166,10 +166,14 @@ def __init__(self, template, env=None, filters=None, global_functions=None):
166166 }])
167167 caps .supports_tools = "some_tool" in out
168168
169+ caps .requires_non_null_content = \
170+ (user_needle in self .try_raw_render ([dummy_user_msg , {"role" : "assistant" , "content" : '' }])) \
171+ and (user_needle not in self .try_raw_render ([dummy_user_msg , {"role" : "assistant" , "content" : None }]))
172+
169173 def make_tool_calls_msg (tool_calls , content = None ):
170174 return {
171175 "role" : "assistant" ,
172- "content" : content ,
176+ "content" : "" if content is None and caps . requires_non_null_content else content ,
173177 "tool_calls" : tool_calls ,
174178 }
175179 def make_tool_call (tool_name , arguments ):
@@ -198,10 +202,6 @@ def make_tool_call(tool_name, arguments):
198202 caps .supports_tool_calls = tool_call_renders_str_arguments or tool_call_renders_obj_arguments
199203 caps .requires_object_arguments = not tool_call_renders_str_arguments and tool_call_renders_obj_arguments
200204
201- caps .requires_non_null_content = \
202- (user_needle in self .try_raw_render ([dummy_user_msg , {"role" : "assistant" , "content" : '' }])) \
203- and (user_needle not in self .try_raw_render ([dummy_user_msg , {"role" : "assistant" , "content" : None }]))
204-
205205 if caps .supports_tool_calls :
206206 dummy_args = dummy_args_obj if caps .requires_object_arguments else json .dumps (dummy_args_obj )
207207 tc1 = make_tool_call ("test_tool1" , dummy_args )
@@ -232,7 +232,7 @@ def make_tool_call(tool_name, arguments):
232232 args = {"arg1" : "some_value" }
233233 tool_call_msg = {
234234 "role" : "assistant" ,
235- "content" : None ,
235+ "content" : "" if caps . requires_non_null_content else None ,
236236 "tool_calls" : [
237237 {
238238 "id" : "call_1___" ,
0 commit comments