{{- "\nReasoning effort: " + reasoning_effort | default("low") + "\n\n" -}} {%- if tools -%} {{- "<|im_start|>system\n" -}} {%- if messages[0].role == "system" -%} {{- messages[0].content + "\n\n" -}} {%- endif -%} {{- "# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within XML tags:\n" -}} {%- for tool in tools -%} {{- "\n" -}} {{- tool | tojson -}} {%- endfor -%} {{- "\n\n\nFor each function call, return a json object with function name and arguments within XML tags:\n\n{\"name\": , \"arguments\": }\n<|im_end|>\n" -}} {%- elif messages[0].role == "system" -%} {{- "<|im_start|>system\n" + messages[0].content + "<|im_end|>\n" -}} {%- endif -%} {%- for message in messages -%} {%- if message.content is string -%} {%- set content = message.content -%} {%- else -%} {%- set content = "" -%} {%- endif -%} {%- if message.role == "user" or message.role == "system" and not loop.first -%} {{- "<|im_start|>" + message.role + "\n" + content + "<|im_end|>" + "\n" -}} {%- elif message.role == "assistant" -%} {{- "<|im_start|>" + message.role + "\n" + content -}} {%- if message.tool_calls -%} {%- for tool_call in message.tool_calls -%} {%- if loop.first and content or not loop.first -%} {{- "\n" -}} {%- endif -%} {%- if tool_call.function -%} {%- set tool_call = tool_call.function -%} {%- endif -%} {{- "\n{\"name\": \"" -}} {{- tool_call.name -}} {{- "\", \"arguments\": " -}} {%- if tool_call.arguments is string -%} {{- tool_call.arguments -}} {%- else -%} {{- tool_call.arguments | tojson -}} {%- endif -%} {{- "}\n" -}} {%- endfor -%} {%- endif -%} {{- "<|im_end|>\n" -}} {%- elif message.role == "tool" -%} {%- if loop.first or messages[loop.index0 - 1].role != "tool" -%} {{- "<|im_start|>user" -}} {%- endif -%} {{- "\n\n" -}} {{- content -}} {{- "\n" -}} {%- if loop.last or messages[loop.index0 + 1].role != "tool" -%} {{- "<|im_end|>\n" -}} {%- endif -%} {%- endif -%} {%- endfor -%} {%- if add_generation_prompt -%} {{- "<|im_start|>assistant\n" -}} {%- endif -%}