{% set loop_messages=messages %}{%- set ns=namespace(last_query_index=-1) %}{%- for message in loop_messages[::-1] %}{%- set index=(loop_messages|length-1)-loop.index0 %}{%- if message.role=='user' %}{%- set ns.last_query_index=index %}{%- break %}{%- endif %}{%- endfor %}{% for message in loop_messages %}{%- set loop_index=loop.index0 %}{%- set content=message['content']|trim %}{%- if message.role=='assistant' %}{%- set reasoning_content='' %}{%- if '<think> | |
' in content and '</think>' in content %}{%- set reasoning_content=content.split('</think>')[0].split('<think> | |
')[-1].strip() %}{%- set content=content.split('</think>')[-1].lstrip() %}{%- endif %}{%- if loop_index>ns.last_query_index or preserve_previous_think is not defined or preserve_previous_think is true %}{%- if loop_index==0 %}{{ bos_token }}{%- endif %}{{ '<|start_header_id|>assistant<|end_header_id|> | |
' }}{%- if reasoning_content %}{{ '<think> | |
' }}{{ reasoning_content }}{{ '</think>' }}{%- endif %}{{ content }}<|eot_id|>{%- else %}{%- if loop_index==0 %}{{ bos_token }}{%- endif %}{{ '<|start_header_id|>assistant<|end_header_id|> | |
' }}{{ content }}<|eot_id|>{%- endif %}{%- else %}{%- if loop_index==0 %}{{ bos_token }}{%- endif %}<|start_header_id|>{{ message.role }}{{ '<|end_header_id|> | |
' }}{{ content }}<|eot_id|>{%- endif %}{%- endfor %}{%- if add_generation_prompt %}{{ '<|start_header_id|>assistant<|end_header_id|> | |
' }}{%- if enable_thinking is not defined or enable_thinking is true %}{{ '<think> | |
' }}{%- endif %}{%- endif %} |