Ma7ee7 commited on
Commit
00495db
·
verified ·
1 Parent(s): fb1758a

Update chat_template.jinja

Browse files
Files changed (1) hide show
  1. chat_template.jinja +39 -4
chat_template.jinja CHANGED
@@ -1,4 +1,39 @@
1
- {% for message in messages %}{{ '<|im_start|>' + message['role'] + '
2
- ' + message['content'] + '<|im_end|>
3
- ' }}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>assistant
4
- ' }}{% endif %}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- for message in messages %}
2
+ {%- set role = message['role'] %}
3
+ {%- if role not in ['system', 'user', 'assistant'] %}
4
+ {{- raise_exception('Noesis supports system, user, and assistant roles.') }}
5
+ {%- endif %}
6
+
7
+ {%- set content = message['content'] %}
8
+ {%- if content is not string %}
9
+ {%- if content is not sequence or content is mapping %}
10
+ {{- raise_exception('Message content must be text or a list of text blocks.') }}
11
+ {%- endif %}
12
+ {%- set text = namespace(value='') %}
13
+ {%- for part in content %}
14
+ {%- if part is not mapping or part['type'] != 'text' or part['text'] is not string %}
15
+ {{- raise_exception('Noesis only supports text content blocks.') }}
16
+ {%- endif %}
17
+ {%- set text.value = text.value + part['text'] %}
18
+ {%- endfor %}
19
+ {%- set content = text.value %}
20
+ {%- endif %}
21
+
22
+ {%- if role == 'assistant' %}
23
+ {%- set history = not loop.last or add_generation_prompt %}
24
+ {%- set trimmed = content.lstrip() %}
25
+ {%- set has_reasoning = trimmed.startswith('<think>') %}
26
+ {%- if history and has_reasoning and '</think>' in trimmed %}
27
+ {%- set content = trimmed.split('</think>', 1)[1].lstrip('\r\n') %}
28
+ {%- elif not history and not has_reasoning %}
29
+ {%- set reasoning = message.get('reasoning_content') %}
30
+ {%- if reasoning is string and reasoning.strip() %}
31
+ {%- set content = '<think>\n' + reasoning.strip() + '\n</think>\n\n' + content %}
32
+ {%- endif %}
33
+ {%- endif %}
34
+ {%- endif %}
35
+ {{- '<|im_start|>' + role + '\n' + content + '<|im_end|>\n' }}
36
+ {%- endfor %}
37
+ {%- if add_generation_prompt %}
38
+ {{- '<|im_start|>assistant\n' }}
39
+ {%- endif %}