csabakecskemeti commited on
Commit
4398f0c
·
verified ·
1 Parent(s): 01c44ff

Upload chat_template.jinja with huggingface_hub

Browse files
Files changed (1) hide show
  1. chat_template.jinja +96 -0
chat_template.jinja ADDED
@@ -0,0 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- macro render_content(msg) -%}
2
+ {%- set c = msg.get('content') -%}
3
+ {%- if c is string -%}
4
+ {{ c }}
5
+ {%- elif c is not none -%}
6
+ {% for content in c -%}
7
+ {% if content['type'] == 'image' or 'image' in content or 'image_url' in content -%}
8
+ <|media_start|>image<|media_content|><|media_pad|><|media_end|>
9
+ {% else -%}
10
+ {{ content['text'] }}
11
+ {%- endif -%}
12
+ {%- endfor -%}
13
+ {%- endif -%}
14
+ {%- endmacro -%}
15
+
16
+ {% macro set_roles(message) -%}
17
+ {%- set role_name = message.get('name') or message['role'] -%}
18
+ {%- if message['role'] == 'user' -%}
19
+ <|im_user|>{{role_name}}<|im_middle|>
20
+ {%- elif message['role'] == 'assistant' -%}
21
+ <|im_assistant|>{{role_name}}<|im_middle|>
22
+ {%- else -%}
23
+ <|im_system|>{{role_name}}<|im_middle|>
24
+ {%- endif -%}
25
+ {%- endmacro -%}
26
+
27
+
28
+ {%- macro render_toolcalls(message) -%}
29
+ <|tool_calls_section_begin|>
30
+ {%- for tool_call in message['tool_calls'] -%}
31
+ {%- set formatted_id = tool_call['id'] -%}
32
+ <|tool_call_begin|>{{ formatted_id }}<|tool_call_argument_begin|>{% if tool_call['function']['arguments'] is string %}{{ tool_call['function']['arguments'] }}{% else %}{{ tool_call['function']['arguments'] | tojson }}{% endif %}<|tool_call_end|>
33
+ {%- endfor -%}
34
+ <|tool_calls_section_end|>
35
+ {%- endmacro -%}
36
+
37
+
38
+ {# Find last non-tool-call assisitant message #}
39
+ {%- set ns = namespace(last_non_tool_call_assistant_msg=-1) -%}
40
+ {%- for idx in range(messages|length-1, -1, -1) -%}
41
+ {%- if messages[idx]['role'] == 'assistant' and not messages[idx].get('tool_calls') -%}
42
+ {%- set ns.last_non_tool_call_assistant_msg = idx -%}
43
+ {%- break -%}
44
+ {%- endif -%}
45
+ {%- endfor -%}
46
+
47
+ {# split all messages into history & suffix, reasoning_content in suffix should be reserved.#}
48
+ {%- set hist_msgs = messages[:ns.last_non_tool_call_assistant_msg+1] -%}
49
+ {%- set suffix_msgs = messages[ns.last_non_tool_call_assistant_msg+1:] -%}
50
+
51
+ {%- if tools -%}
52
+ <|im_system|>tool_declare<|im_middle|>{{ tools | tojson(separators=(',', ':')) }}<|im_end|>
53
+ {%- endif -%}
54
+
55
+ {%- for message in hist_msgs -%}
56
+ {%- if loop.first and messages[0]['role'] != 'system' -%}
57
+ <|im_system|>system<|im_middle|>You are Kimi, an AI assistant created by Moonshot AI.<|im_end|>
58
+ {%- endif -%}
59
+ {{set_roles(message)}}
60
+ {%- if message['role'] == 'assistant' -%}
61
+ <think></think>{{render_content(message)}}
62
+ {%- if message.get('tool_calls') -%}
63
+ {{render_toolcalls(message)}}
64
+ {%- endif -%}
65
+ {%- elif message['role'] == 'tool' -%}
66
+ {%- set tool_call_id = message.tool_call_id -%}
67
+ ## Return of {{ tool_call_id }}
68
+ {{render_content(message)}}
69
+ {%- elif message['content'] is not none -%}
70
+ {{render_content(message)}}
71
+ {%- endif -%}
72
+ <|im_end|>
73
+ {%- endfor -%}
74
+
75
+ {%- for message in suffix_msgs -%}
76
+ {{set_roles(message)}}
77
+ {%- if message['role'] == 'assistant' -%}
78
+ {%- set rc = message.get('reasoning_content', '') -%}
79
+ <think>{{rc}}</think>{{render_content(message)}}
80
+ {%- if message.get('tool_calls') -%}
81
+ {{render_toolcalls(message)}}
82
+ {%- endif -%}
83
+ {%- elif message['role'] == 'tool' -%}
84
+ {%- set tool_call_id = message.tool_call_id -%}
85
+ ## Return of {{ tool_call_id }}
86
+ {{render_content(message)}}
87
+ {%- elif message['content'] is not none -%}
88
+ {{render_content(message)}}
89
+ {%- endif -%}
90
+ <|im_end|>
91
+ {%- endfor -%}
92
+
93
+
94
+ {%- if add_generation_prompt -%}
95
+ <|im_assistant|>assistant<|im_middle|>
96
+ {%- endif -%}