File size: 1,082 Bytes
a31ccf8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
{%- if messages[0]['role'] == 'system' %}

    {%- set system_message = messages[0]['content'] %}

    {%- set loop_messages = messages[1:] %}

{%- else %}

    {%- set loop_messages = messages %}

{%- endif %}



{{- bos_token }}

{%- 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 message['role'] == 'user' %}

        {%- if loop.first and system_message is defined %}

            {{- ' [INST] ' + system_message + '\n\n' + message['content'] + ' [/INST]' }}

        {%- else %}

            {{- ' [INST] ' + message['content'] + ' [/INST]' }}

        {%- endif %}

    {%- elif message['role'] == '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 %}