{%- for message in messages -%}
{%- if message['role'] == 'system' -%}
{{ '<|im_start|>system\n' + message['content'] + '<|im_end|>\n' }}
{%- elif message['role'] == 'user' -%}
{%- if documents and loop.last -%}
{{ '<|im_start|>user\n<|query_start|>' + message['content'] + '<|query_end|>\n' }}
{%- for doc in documents -%}
{{ '<|source_start|><|source_id|>' + (loop.index | string) + ' ' + doc['text'] + '<|source_end|>\n' }}
{%- endfor -%}
{{ '<|im_end|>\n' }}
{%- else -%}
{{ '<|im_start|>user\n' + message['content'] + '<|im_end|>\n' }}
{%- endif -%}
{%- elif message['role'] == 'assistant' -%}
{{ '<|im_start|>assistant\n\n\n\n\n' + message['content'] + '<|im_end|>\n' }}
{%- endif -%}
{%- endfor -%}
{%- if add_generation_prompt -%}
{{ '<|im_start|>assistant\n\n\n\n\n<|query_analysis_start|>\n' }}
{%- endif -%}