| {%- for message in messages %} |
| {%- if loop.index0 == 0 %} |
| {{- bos_token }} |
| {%- endif %} |
| |
| |
| {%- if message['role'] == 'system' %} |
| {{- "<|system|>" }} |
| {{- message['content'] }} |
| {{- eos_token }} |
| |
| |
| {%- elif message['role'] == 'user' %} |
| {{- "<|user|>" }} |
| {{- message['content'] }} |
| {{- eos_token }} |
| |
| |
| {%- elif message['role'] == 'tool' %} |
| {{- "<tool_result>" }} |
| {{- message['name'] ~ " " if message['name'] else "" }} |
| {{- message['content'] }} |
| {{- "</tool_result>" }} |
| {{- eos_token }} |
| |
| |
| {%- elif message['role'] == 'assistant' %} |
| {{- "<|assistant|>" }} |
| |
| |
| {%- if 'tool_calls' not in message %} |
| {{- message['content'] }} |
| {{- eos_token }} |
| |
| |
| {%- else %} |
| {%- for tool_call in message['tool_calls'] %} |
| {{- "<tool_call>" }} |
| {{- tool_call['function']['name'] }} |
| {{- "\n" }} |
| {{- tool_call['function']['arguments'] | tojson }} |
| {{- "</tool_call>" }} |
| {{- eos_token }} |
| {%- endfor %} |
| {%- endif %} |
| |
| {%- endif %} |
| {%- endfor %} |
| |
| {%- if add_generation_prompt %} |
| {{- "<|assistant|>" }} |
| {%- endif %} |