k-l-lambda commited on
Commit
6a9a7e0
·
verified ·
1 Parent(s): af44858

Upload chat_template.jinja with huggingface_hub

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