{%- if not messages %} {{- raise_exception('No messages provided.') }} {%- endif %} {%- for message in messages %} {%- if loop.first and message.role == 'system' %} {{- '<|im_start|>system\n' + message.content | trim + '<|im_end|>\n' }} {%- elif message.role == 'user' %} {{- '<|im_start|>user\n' + message.content | trim + '<|im_end|>\n' }} {%- elif message.role == 'assistant' %} {%- if not loop.last %} {{- '<|im_start|>assistant\n' + message.content | trim + '<|im_end|>\n' }} {%- else %} {%- set content = message.content | trim %} {%- if content.startswith('') %} {{- '<|im_start|>assistant\n' + content + '<|im_end|>\n' }} {%- else %} {{- '<|im_start|>assistant\n\n' + content + '<|im_end|>\n' }} {%- endif %} {%- endif %} {%- endif %} {%- endfor %} {%- if add_generation_prompt %} {{- '<|im_start|>assistant\n\n' }} {%- endif %}