| {%- if tools %} | |
| {{- '<|start_of_role|>available_tools<|end_of_role|> | |
| ' }} | |
| {%- for tool in tools %} | |
| {{- tool | tojson(indent=4) }} | |
| {%- if not loop.last %} | |
| {{- ' | |
| ' }} | |
| {%- endif %} | |
| {%- endfor %} | |
| {{- '<|end_of_text|> | |
| ' }} | |
| {%- endif %} | |
| {%- for message in messages %} | |
| {%- if message['role'] == 'system' %} | |
| {{- '<|start_of_role|>system<|end_of_role|>' + message['content'] + '<|end_of_text|> | |
| ' }} | |
| {%- elif message['role'] == 'user' %} | |
| {{- '<|start_of_role|>user<|end_of_role|>' + message['content'] + '<|end_of_text|> | |
| ' }} | |
| {%- elif message['role'] == 'assistant' %} | |
| {{- '<|start_of_role|>assistant<|end_of_role|>' + message['content'] + '<|end_of_text|> | |
| ' }} | |
| {%- elif message['role'] == 'assistant_tool_call' %} | |
| {{- '<|start_of_role|>assistant<|end_of_role|><|tool_call|>' + message['content'] + '<|end_of_text|> | |
| ' }} | |
| {%- elif message['role'] == 'tool_response' %} | |
| {{- '<|start_of_role|>tool_response<|end_of_role|>' + message['content'] + '<|end_of_text|> | |
| ' }} | |
| {%- endif %} | |
| {%- if loop.last and add_generation_prompt %} | |
| {{- '<|start_of_role|>assistant<|end_of_role|>' }} | |
| {%- endif %} | |
| {%- endfor %} |