| {%- if messages[0]['role'] == 'system' %} |
| {%- set system_message = messages[0]['content'] %} |
| {%- set loop_messages = messages[1:] %} |
| {%- else %} |
| {%- set loop_messages = messages %} |
| {%- endif %} |
| |
| {%- for message in loop_messages %} |
| {%- if (message['role'] == 'user') != (loop.index0 % 2 == 0) %} |
| {{- raise_exception('After the optional system message, conversation roles must alternate user/assistant/user/assistant/...') }} |
| {%- endif %} |
| {%- if loop.first and system_message is defined %} |
| {{- '### System: |
| ' + system_message + ' |
| ' }} |
| {%- endif %} |
| {%- if message['role'] == 'user' %} |
| {{- '### User: |
| ' + message['content'] + ' |
| ' }} |
| {%- elif message['role'] == 'assistant' %} |
| {{- '### Assistant: |
| ' + message['content'] + eos_token + ' |
| '}} |
| {%- else %} |
| {{- raise_exception('Only user and assistant roles are supported, with the exception of an initial optional system message!') }} |
| {%- endif %} |
| {%- endfor %}{% if add_generation_prompt %}{{ '### Assistant: |
| ' }}{% endif %} |
| |