File size: 1,175 Bytes
9fe8293 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | {{ bos_token }}
{%- set loop_messages = messages -%}
{%- for message in loop_messages -%}
{%- if message['role'] == 'system' -%}
{%- set role = 'user' -%}
{%- elif message['role'] == 'assistant' -%}
{%- set role = 'model' -%}
{%- else -%}
{%- set role = message['role'] -%}
{%- endif -%}
{%- if (role == 'user') != (loop.index0 % 2 == 0) -%}
{{ raise_exception("Conversation roles must alternate user/assistant/user/assistant/...") }}
{%- endif -%}
{{ '<start_of_turn>' + role + '\n' }}
{%- 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 }}
{%- endif -%}
{%- endfor -%}
{%- else -%}
{{ raise_exception("Invalid content type") }}
{%- endif -%}
{{ '<end_of_turn>\n' }}
{%- endfor -%}
{%- if add_generation_prompt -%}
{{'<start_of_turn>model\n'}}
{%- endif -%}
|