File size: 2,118 Bytes
fc48ad9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
55
56
57
58
59
60
61
{%- if not add_generation_prompt is defined -%}
  {%- set add_generation_prompt = false -%}
{%- endif -%}
{%- if not thinking is defined -%}
  {%- if enable_thinking is defined -%}
    {%- set thinking = enable_thinking -%}
  {%- else -%}
    {%- set thinking = false -%}
  {%- endif -%}
{%- endif -%}
{%- set ns = namespace(system_prompt='', is_first_sp=true, is_last_user=false, is_only_sys=false, is_prefix=false) -%}
{%- for message in messages -%}
  {%- if message['role'] == 'system' -%}
    {%- if ns.is_first_sp -%}
      {%- set ns.system_prompt = ns.system_prompt + message['content'] -%}
      {%- set ns.is_first_sp = false -%}
    {%- else -%}
      {%- set ns.system_prompt = ns.system_prompt + '\n\n' + message['content'] -%}
    {%- endif -%}
    {%- set ns.is_only_sys = true -%}
  {%- endif -%}
{%- endfor -%}
{{- bos_token -}}{{- ns.system_prompt -}}
{%- for message in messages -%}
  {%- if message['role'] == 'user' -%}
    {%- set ns.is_last_user = true -%}
    {{- '<|User|>' + message['content'] -}}
  {%- endif -%}
  {%- if message['role'] == 'assistant' -%}
    {%- if ns.is_last_user -%}
      {{- '<|Assistant|>' -}}
      {%- if message['prefix'] is defined and message['prefix'] and thinking -%}
        {{- '<think>' -}}
      {%- else -%}
        {{- '</think>' -}}
      {%- endif -%}
    {%- endif -%}
    {%- if message['prefix'] is defined and message['prefix'] -%}
      {%- set ns.is_prefix = true -%}
    {%- endif -%}
    {%- set ns.is_last_user = false -%}
    {%- set content = message['content'] -%}
    {%- if '</think>' in content -%}
      {%- set content = content.split('</think>', 1)[1] -%}
    {%- endif -%}
    {{- content + '<|end▁of▁sentence|>' -}}
  {%- endif -%}
  {%- if message['role'] != 'system' -%}
    {%- set ns.is_only_sys = false -%}
  {%- endif -%}
{%- endfor -%}
{%- if add_generation_prompt -%}
  {%- if ns.is_last_user or ns.is_only_sys or not ns.is_prefix -%}
    {{- '<|Assistant|>' -}}
    {%- if not thinking -%}
      {{- '</think>' -}}
    {%- else -%}
      {{- '<think>' -}}
    {%- endif -%}
  {%- endif -%}
{%- endif -%}