| {% if messages[0]['role'] == 'system' -%} | |
| {%- set loop_messages = messages[1:] -%} | |
| {%- set system_message = bos_token + messages[0]['content'] + additional_special_tokens[1] -%} | |
| {%- else -%} | |
| {%- set loop_messages = messages -%} | |
| {%- set system_message = bos_token + '' -%} | |
| {%- 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 loop.index0 == 0 -%} | |
| {{ system_message -}} | |
| {%- endif -%} | |
| {%- if message['role'] == 'user' -%} | |
| {{ message['role'] + additional_special_tokens[0] + message['content'] + additional_special_tokens[1] -}} | |
| {{ 'available functions' + additional_special_tokens[0] + additional_special_tokens[2] + additional_special_tokens[3] + additional_special_tokens[1] -}} | |
| {%- endif -%} | |
| {%- if message['role'] == 'assistant' -%} | |
| {{ message['role'] + additional_special_tokens[0] + message['content'] + additional_special_tokens[1] -}} | |
| {%- endif -%} | |
| {%- if loop.last and add_generation_prompt -%} | |
| {{ 'assistant' + additional_special_tokens[0] -}} | |
| {%- endif -%} | |
| {%- endfor %} |