BennyDaBall's picture
Upload 16 files
bde2cad verified
{{ bos_token }}
{%- if messages and messages[0]['role'] == 'system' -%}
{%- set first_user_prefix = messages[0]['content'] ~ '\n\n' -%}
{%- set loop_messages = messages[1:] -%}
{%- else -%}
{%- set first_user_prefix = '' -%}
{%- set loop_messages = messages -%}
{%- endif -%}
{%- for message in loop_messages -%}
{%- set role = 'model' if message['role'] == 'assistant' else message['role'] -%}
{{ '<start_of_turn>' ~ role ~ '\n' ~ (first_user_prefix if loop.first else '') }}
{%- if message['content'] is string -%}
{{ message['content'] | trim }}
{%- elif message['content'] is iterable -%}
{%- for item in message['content'] -%}
{%- if item['type'] == 'image' -%}
{{ '<start_of_image>' }}
{%- elif item['type'] == 'text' -%}
{{ item['text'] | trim }}
{%- elif item['type'] == 'tool_call' -%}
```tool_code
{{ item['code'] | trim }}
```
{%- endif -%}
{%- endfor -%}
{%- else -%}
{{ raise_exception('Invalid content type') }}
{%- endif -%}
{{ '<end_of_turn>\n' }}
{%- endfor -%}
{%- if add_generation_prompt and (loop_messages | length == 0 or loop_messages[-1]['role'] == 'user') -%}
{{ '<start_of_turn>model\n' }}
{%- endif -%}