{% if messages[0]['role'] == 'system' %} {% set offset = 1 %} {% else %} {% set offset = 0 %} {% endif %} {% for message in messages %} {% if (message['role'] == 'user') != (loop.index0 % 2 == offset) %} {{ raise_exception('Conversation roles must alternate user/bot/user/bot/...') }} {% endif %} {% if message['role'] == 'assistant' %} {{ set role = 'bot' }} {% else %} {{ set role = message['role'] }} {% endif %} {{ bos_token + role + '\n' + message['content'] | trim + eos_token }} {% endfor %} {% if add_generation_prompt %} {{ bos_token + 'bot\n' }} {% endif %}