{%- set bos = '<|bos|>' -%}
{%- set eos = '<|eos|>' -%}
{%- set system_start = '<|system|>' -%}
{%- set system_end = '<|/system|>' -%}
{%- set user_start = '<|user|>' -%}
{%- set user_end = '<|/user|>' -%}
{%- set assistant_start = '<|assistant|>' -%}
{%- set assistant_end = '<|/assistant|>' -%}

{{- bos -}}
{%- for message in messages -%}
    {%- if message['role'] == 'system' -%}
        {{- system_start + message['content'] + system_end -}}
    {%- elif message['role'] == 'user' -%}
        {{- user_start + message['content'] + user_end -}}
    {%- elif message['role'] == 'assistant' -%}
        {{- assistant_start + message['content'] -}}
        {%- if not loop.last or add_generation_prompt is not defined or not add_generation_prompt -%}
            {{- assistant_end -}}
        {%- endif -%}
    {%- elif message['role'] == 'tool' or message['role'] == 'exec_result' or message['role'] == 'jupyter' -%}
        {{- user_start + message['content'] + user_end -}}
    {%- endif -%}
{%- endfor -%}
{%- if add_generation_prompt is defined and add_generation_prompt -%}
    {{- assistant_start -}}
{%- endif -%}
