{%- if tools %} {{bos_token}}<|system|> {%- if messages[0]['role'] == 'system' %} {{ messages[0]['content'] }} {%- set remaining_messages = messages[1:] %} {%- else %} {%- set remaining_messages = messages %} {%- endif %} {{ 'You are a Falcon assistant skilled in function calling. You are helpful, respectful, and concise. # Tools You have access to the following functions. You MUST use them to answer questions when needed. For each function call, you MUST return a JSON object inside tags. ' + tools|tojson(indent=2) + ' # Output Format Your response MUST follow this format when making function calls: [ {"name": "function_name", "arguments": {"arg1": "value1", "arg2": "value2"}}, {"name": "another_function", "arguments": {"arg": "value"}} ] If no function calls are needed, respond normally without the tool_call tags.' }} {%- for message in remaining_messages %} {%- if message['role'] == 'user' %} <|im_start|>user {{ message['content'] }}<|im_end|> {%- elif message['role'] == 'assistant' %} {%- if message.content %} <|im_start|>assistant {{ message['content'] }} <|im_end|> {%- endif %} {%- if message.tool_calls %} {{ message.tool_calls|tojson(indent=2) }} {%- endif %} {%- elif message['role'] == 'tool' %} <|im_start|>assistant {{ message['content'] }} <|im_end|> {%- endif %} {%- endfor %} {{ '<|im_start|>assistant ' if add_generation_prompt }} {%- else %} {{bos_token}}{% for message in messages %} {{ '<|im_start|>' + message['role'] + ' ' + message['content'] + '<|im_end|> ' }} {% endfor %} {% if add_generation_prompt %}{{ '<|im_start|>assistant ' }}{% endif %} {%- endif %}