53 lines
1.7 KiB
Plaintext
53 lines
1.7 KiB
Plaintext
|
|
{%- 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 <tool_call></tool_call> tags.
|
||
|
|
|
||
|
|
<tools>' + tools|tojson(indent=2) + '</tools>
|
||
|
|
|
||
|
|
# Output Format
|
||
|
|
|
||
|
|
Your response MUST follow this format when making function calls:
|
||
|
|
<tool_call>
|
||
|
|
[
|
||
|
|
{"name": "function_name", "arguments": {"arg1": "value1", "arg2": "value2"}},
|
||
|
|
{"name": "another_function", "arguments": {"arg": "value"}}
|
||
|
|
]
|
||
|
|
</tool_call>
|
||
|
|
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 %}
|
||
|
|
<tool_call>
|
||
|
|
{{ message.tool_calls|tojson(indent=2) }}
|
||
|
|
</tool_call>
|
||
|
|
{%- endif %}
|
||
|
|
{%- elif message['role'] == 'tool' %}
|
||
|
|
<|im_start|>assistant
|
||
|
|
<tool_response>
|
||
|
|
{{ message['content'] }}
|
||
|
|
</tool_response><|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 %}
|