{%- set eos = eos_token if eos_token is defined and eos_token is string and eos_token != '<|im_end|>' else '' -%} {%- if messages[0].role == 'system' %} {{- '<|im_start|>system\n' + messages[0].content + '<|im_end|>\n' }} {%- endif %} {%- for message in messages %} {%- if message.content is string %} {%- set content = message.content %} {%- else %} {%- set content = '' %} {%- endif %} {%- if message.role == "user" %} {{- '<|im_start|>user\n' + content + '<|im_end|>\n' }} {%- elif message.role == "system" and not loop.first %} {{- '<|im_start|>system\n' + content + '<|im_end|>\n' }} {%- elif message.role == "assistant" %} {%- set reasoning_content = '' %} {%- if message.reasoning_content is string %} {%- set reasoning_content = message.reasoning_content %} {%- else %} {%- if '' in content %} {%- set reasoning_content = content.split('')[0].rstrip('\n').split('')[-1].lstrip('\n') %} {%- set content = content.split('')[-1].lstrip('\n') %} {%- endif %} {%- endif %} {%- if reasoning_content %} {{- '<|im_start|>assistant\n\n' + reasoning_content.strip('\n') + '\n\n\n' + content.lstrip('\n') + '<|im_end|>' + eos + '\n' }} {%- else %} {{- '<|im_start|>assistant\n' + content + '<|im_end|>' + eos + '\n' }} {%- endif %} {%- endif %} {%- endfor %} {%- if add_generation_prompt %} {{- '<|im_start|>assistant\n' }} {%- endif %}