| {%- for message in messages -%} | |
| {%- set content = message.content if message.content is string else "" -%} | |
| {%- if message.role == "user" -%} | |
| {{ "<|im_start|>" + message.role + "\n" + content + "<|im_end|>\n" }} | |
| {%- elif message.role == "assistant" -%} | |
| {% generation %} | |
| {%- if reasoning_mode == "/think" -%} | |
| {{ "<|im_start|>assistant\n" + content.lstrip("\n") + "<|im_end|>\n" }} | |
| {%- else -%} | |
| {{ "<|im_start|>assistant\n" + "<think>\n\n</think>\n" + content.lstrip("\n") + "<|im_end|>\n" }} | |
| {%- endif -%} | |
| {% endgeneration %} | |
| {%- elif message.role == "tool" -%} | |
| {{ "<|im_start|>" + "user\n" + content + "<|im_end|>\n" }} | |
| {%- endif -%} | |
| {%- endfor -%} | |
| {# ───── generation prompt ───── #} | |
| {%- if add_generation_prompt -%} | |
| {%- if reasoning_mode == "/think" -%} | |
| {{ "<|im_start|>assistant\n" }} | |
| {%- else -%} | |
| {{ "<|im_start|>assistant\n" + "<think>\n\n</think>\n" }} | |
| {%- endif -%} | |
| {%- endif -%} |