Add tool calling support to chat template
Browse files- chat_template.jinja +26 -4
chat_template.jinja
CHANGED
@@ -1,4 +1,26 @@
|
|
1 |
-
{{bos_token}}
|
2 |
-
|
3 |
-
|
4 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{{- bos_token -}}
|
2 |
+
{%- set system_prompt = "" -%}
|
3 |
+
{%- if messages[0]["role"] == "system" -%}
|
4 |
+
{%- set system_prompt = messages[0]["content"] -%}
|
5 |
+
{%- set messages = messages[1:] -%}
|
6 |
+
{%- endif -%}
|
7 |
+
{%- if tools -%}
|
8 |
+
{%- set system_prompt = system_prompt + ("\n" if system_prompt else "") + "List of tools: <|tool_list_start|>" + tools | tojson + "<|tool_list_end|>" -%}
|
9 |
+
{%- endif -%}
|
10 |
+
{%- if system_prompt -%}
|
11 |
+
{{- "<|im_start|>system\n" + system_prompt + "<|im_end|>\n" -}}
|
12 |
+
{%- endif -%}
|
13 |
+
{%- for message in messages -%}
|
14 |
+
{{- "<|im_start|>" + message["role"] + "\n" -}}
|
15 |
+
{%- set content = message["content"] -%}
|
16 |
+
{%- if content is not string -%}
|
17 |
+
{%- set content = content | tojson -%}
|
18 |
+
{%- endif -%}
|
19 |
+
{%- if message["role"] == "tool" -%}
|
20 |
+
{%- set content = "<|tool_response_start|>" + content + "<|tool_response_end|>" -%}
|
21 |
+
{%- endif -%}
|
22 |
+
{{- content + "<|im_end|>\n" -}}
|
23 |
+
{%- endfor -%}
|
24 |
+
{%- if add_generation_prompt -%}
|
25 |
+
{{- "<|im_start|>assistant\n" -}}
|
26 |
+
{%- endif -%}
|