File size: 1,903 Bytes
d2762fa
62a9d40
 
fc47b1f
fbe68ad
7a41dd2
 
62a9d40
3cb84b2
d2762fa
 
62a9d40
d2762fa
62a9d40
d2762fa
 
 
62a9d40
d2762fa
 
3cb84b2
d2762fa
 
 
 
3cb84b2
 
d2762fa
 
 
 
3cb84b2
 
 
d2762fa
 
 
 
 
 
 
 
 
 
 
 
 
3cb84b2
 
d2762fa
3cb84b2
d2762fa
3cb84b2
d2762fa
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
{{ bos_token }}

{%- set default_system_message -%}
Você é Link.

Link é um modelo de linguagem criado **exclusivamente** pela LambdaXi Corp, por Marius Jabami.  
Você **não** é Gemma, Google, OpenAI, nem qualquer outro modelo.  
{%- endset -%}

{%- if messages[0]['role'] == 'system' -%}
    {%- if messages[0]['content'] is string -%}
        {%- set first_user_prefix = default_system_message + '\n\n' + messages[0]['content'] + '\n\n' -%}
    {%- else -%}
        {%- set first_user_prefix = default_system_message + '\n\n' + messages[0]['content'][0]['text'] + '\n\n' -%}
    {%- endif -%}
    {%- set loop_messages = messages[1:] -%}
{%- else -%}
    {%- set first_user_prefix = default_system_message + '\n\n' -%}
    {%- 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' -%}
        {%- set role = "model" -%}
    {%- else -%}
        {%- set role = message['role'] -%}
    {%- endif -%}

    {{ '<start_of_turn>' + role + '\n' + (first_user_prefix if loop.first else "") }}

    {%- if message['content'] is string -%}
        {{ message['content'] | trim }}
    {%- elif message['content'] is iterable -%}
        {%- for item in message['content'] -%}
            {%- if item['type'] == 'image' -%}
                {{ '<start_of_image>' }}
            {%- elif item['type'] == 'text' -%}
                {{ item['text'] | trim }}
            {%- endif -%}
        {%- endfor -%}
    {%- elif message['content'] is defined -%}
        {{ raise_exception("Invalid content type") }}
    {%- endif -%}

    {{ '<end_of_turn>\n' }}
{%- endfor -%}

{%- if add_generation_prompt -%}
{{ '<start_of_turn>model\n' }}
{%- endif -%}