Update chat_template.jinja
Browse files- chat_template.jinja +18 -23
chat_template.jinja
CHANGED
@@ -11,35 +11,30 @@
|
|
11 |
{# -------------- reflection-interval lookup -------------- #}
|
12 |
{%- if not thinking_budget is defined %}
|
13 |
{%- set thinking_budget = -1 -%}
|
|
|
|
|
14 |
{%- endif -%}
|
15 |
-
{%- set
|
16 |
-
|
17 |
-
|
18 |
-
1024: 256,
|
19 |
-
2048: 512,
|
20 |
-
4096: 512,
|
21 |
-
8192: 1024,
|
22 |
-
16384: 1024
|
23 |
-
} -%}
|
24 |
-
{# Find the first gear that is greater than or equal to the thinking_budget. #}
|
25 |
{%- set ns = namespace(interval = None) -%}
|
26 |
-
{%- for
|
27 |
-
{%- if ns.interval is none and thinking_budget <=
|
28 |
-
{%- set ns.interval =
|
29 |
{%- endif -%}
|
30 |
{%- endfor -%}
|
31 |
-
{#
|
32 |
{%- if ns.interval is none -%}
|
33 |
-
{%- set ns.interval =
|
34 |
{%- endif -%}
|
35 |
-
{# ----------
|
36 |
{%- if messages[0]["role"] == "system" %}
|
37 |
{%- set system_message = messages[0]["content"] %}
|
38 |
{%- set loop_messages = messages[1:] %}
|
39 |
{%- else %}
|
40 |
{%- set loop_messages = messages %}
|
41 |
{%- endif %}
|
42 |
-
{# ----------
|
43 |
{%- if not tools is defined or tools is none %}
|
44 |
{%- set tools = [] %}
|
45 |
{%- endif %}
|
@@ -51,7 +46,7 @@
|
|
51 |
{%- elif t == "array" -%}list
|
52 |
{%- else -%}Any{%- endif -%}
|
53 |
{%- endmacro -%}
|
54 |
-
{# ----------
|
55 |
{%- if system_message is defined %}
|
56 |
{{ bos_token + "system\n" + system_message }}
|
57 |
{%- else %}
|
@@ -105,7 +100,7 @@ def {{ item.function.name }}(
|
|
105 |
|
106 |
{{"工具调用请遵循如下格式:\n<seed:tool_call>\n<function=example_function_name>\n<parameter=example_parameter_1>value_1</parameter>\n<parameter=example_parameter_2>This is the value for the second parameter\nthat can span\nmultiple lines</parameter>\n</function>\n</seed:tool_call>\n"}}
|
107 |
{%- endif %}
|
108 |
-
{#
|
109 |
{%- if system_message is defined or tools is iterable and tools | length > 0 %}
|
110 |
{{ eos_token }}
|
111 |
{%- endif %}
|
@@ -121,7 +116,7 @@ def {{ item.function.name }}(
|
|
121 |
{{ eos_token }}
|
122 |
{%- endif %}
|
123 |
{%- endif %}
|
124 |
-
{# ----------
|
125 |
{%- for message in loop_messages %}
|
126 |
{%- if message.role == "assistant"
|
127 |
and message.tool_calls is defined
|
@@ -157,15 +152,15 @@ def {{ item.function.name }}(
|
|
157 |
{%- if message.content is defined and message.content is string and message.content | trim | length > 0 %}
|
158 |
{{ "\n" + message.content | trim + eos_token }}
|
159 |
{%- endif %}
|
160 |
-
{#
|
161 |
{%- else %}
|
162 |
{{ bos_token + message.role + "\n" + message.content + eos_token }}
|
163 |
{%- endif %}
|
164 |
{%- endfor %}
|
165 |
-
{# ----------
|
166 |
{%- if add_generation_prompt %}
|
167 |
{{ bos_token+"assistant\n" }}
|
168 |
{%- if thinking_budget == 0 %}
|
169 |
-
{{ think_begin_token
|
170 |
{%- endif %}
|
171 |
{%- endif %}
|
|
|
11 |
{# -------------- reflection-interval lookup -------------- #}
|
12 |
{%- if not thinking_budget is defined %}
|
13 |
{%- set thinking_budget = -1 -%}
|
14 |
+
{%- else -%}
|
15 |
+
{%- set thinking_budget = thinking_budget | int -%}
|
16 |
{%- endif -%}
|
17 |
+
{%- set budget_keys_v05 = [0, 512, 1024, 2048, 4096, 8192, 16384] -%}
|
18 |
+
{%- set budget_values_v05 = [0, 128, 256, 512, 512, 1024, 1024] -%}
|
19 |
+
{# 找到 "大于等于 thinking_budget" 的第一个档位 #}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
{%- set ns = namespace(interval = None) -%}
|
21 |
+
{%- for i in range(budget_keys_v05|length) -%}
|
22 |
+
{%- if ns.interval is none and thinking_budget <= budget_keys_v05[i] -%}
|
23 |
+
{%- set ns.interval = budget_values_v05[i] -%}
|
24 |
{%- endif -%}
|
25 |
{%- endfor -%}
|
26 |
+
{# 若超过最大档位,则用最后一个档位的值 #}
|
27 |
{%- if ns.interval is none -%}
|
28 |
+
{%- set ns.interval = budget_values_v05[-1] -%}
|
29 |
{%- endif -%}
|
30 |
+
{# ---------- 预处理 system 消息 ---------- #}
|
31 |
{%- if messages[0]["role"] == "system" %}
|
32 |
{%- set system_message = messages[0]["content"] %}
|
33 |
{%- set loop_messages = messages[1:] %}
|
34 |
{%- else %}
|
35 |
{%- set loop_messages = messages %}
|
36 |
{%- endif %}
|
37 |
+
{# ---------- 确保 tools 存在 ---------- #}
|
38 |
{%- if not tools is defined or tools is none %}
|
39 |
{%- set tools = [] %}
|
40 |
{%- endif %}
|
|
|
46 |
{%- elif t == "array" -%}list
|
47 |
{%- else -%}Any{%- endif -%}
|
48 |
{%- endmacro -%}
|
49 |
+
{# ---------- 输出 system 块 ---------- #}
|
50 |
{%- if system_message is defined %}
|
51 |
{{ bos_token + "system\n" + system_message }}
|
52 |
{%- else %}
|
|
|
100 |
|
101 |
{{"工具调用请遵循如下格式:\n<seed:tool_call>\n<function=example_function_name>\n<parameter=example_parameter_1>value_1</parameter>\n<parameter=example_parameter_2>This is the value for the second parameter\nthat can span\nmultiple lines</parameter>\n</function>\n</seed:tool_call>\n"}}
|
102 |
{%- endif %}
|
103 |
+
{# 结束 system 块行尾 #}
|
104 |
{%- if system_message is defined or tools is iterable and tools | length > 0 %}
|
105 |
{{ eos_token }}
|
106 |
{%- endif %}
|
|
|
116 |
{{ eos_token }}
|
117 |
{%- endif %}
|
118 |
{%- endif %}
|
119 |
+
{# ---------- 逐条写出历史消息 ---------- #}
|
120 |
{%- for message in loop_messages %}
|
121 |
{%- if message.role == "assistant"
|
122 |
and message.tool_calls is defined
|
|
|
152 |
{%- if message.content is defined and message.content is string and message.content | trim | length > 0 %}
|
153 |
{{ "\n" + message.content | trim + eos_token }}
|
154 |
{%- endif %}
|
155 |
+
{# 包括 tool 角色,在这个逻辑 #}
|
156 |
{%- else %}
|
157 |
{{ bos_token + message.role + "\n" + message.content + eos_token }}
|
158 |
{%- endif %}
|
159 |
{%- endfor %}
|
160 |
+
{# ---------- 控制模型开始续写 ---------- #}
|
161 |
{%- if add_generation_prompt %}
|
162 |
{{ bos_token+"assistant\n" }}
|
163 |
{%- if thinking_budget == 0 %}
|
164 |
+
{{ think_begin_token+budget_begin_token }}
|
165 |
{%- endif %}
|
166 |
{%- endif %}
|