Xenova HF Staff commited on
Commit
574842d
·
verified ·
1 Parent(s): afebd8d

Add tool calling support to chat template

Browse files
Files changed (1) hide show
  1. chat_template.jinja +26 -4
chat_template.jinja CHANGED
@@ -1,4 +1,26 @@
1
- {{bos_token}}{% 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
+ {{- 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 -%}