{{ bos_token }}{%- if 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 -%} {%- if (message['role'] == 'user') != (loop.index0 % 2 == 0) -%} {{ raise_exception('Conversation roles must alternate user/assistant/user/assistant/...') }} {%- endif -%} {%- if message['role'] == 'assistant' -%} {{ 'model\n' }} {% generation %}{{ message['content'] | trim }}{{ '\n' }} {% endgeneration %} {%- else -%} {{ '' + message['role'] + '\n' + (first_user_prefix if loop.first else '') + (message['content'] | trim) + '\n' }} {%- endif -%}{%- endfor -%}{%- if add_generation_prompt -%} {{ 'model\n' }}{%- endif -%}