CISCai commited on
Commit
9d72af5
·
verified ·
1 Parent(s): b4ccfb0

Support tool calls

Browse files
Files changed (1) hide show
  1. chat_template.jinja +49 -4
chat_template.jinja CHANGED
@@ -1,4 +1,49 @@
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
+ {%- if tools %}
3
+ {%- set tool_message = 'List of tools: <|tool_list_start|>' + tools|selectattr('type','eq','function')|map(attribute='function')|list|tojson + '<|tool_list_end|>' %}
4
+ {%- endif %}
5
+
6
+ {%- if messages[0]['role'] == 'system' %}
7
+ {%- set system_message = messages[0]['content'] + ('\n' + tool_message if tool_message else '') %}
8
+ {%- set loop_messages = messages[1:] %}
9
+ {%- else %}
10
+ {%- set system_message = tool_message if tool_message else none %}
11
+ {%- set loop_messages = messages %}
12
+ {%- endif %}
13
+
14
+ {{- '<|im_start|>system\n' + system_message + '<|im_end|>\n' if system_message }}
15
+
16
+ {%- for message in loop_messages %}
17
+ {%- set message_content = message['content'] if message['content'] else '' %}
18
+ {{- '<|im_start|>' + message['role'] + '\n' }}
19
+
20
+ {%- if message['role'] == 'assistant' and message['tool_calls'] %}
21
+ {{- '<|tool_call_start|>[' }}
22
+
23
+ {%- for tool_call_function in message['tool_calls']|selectattr('type','eq','function')|map(attribute='function')|list %}
24
+ {{- tool_call_function['name'] + '(' }}
25
+
26
+ {%- for k, v in tool_call_function['arguments'].items() %}
27
+ {{- k + '=' + v|tojson }}
28
+
29
+ {%- if not loop.last %}
30
+ {{- ', ' }}
31
+ {%- endif %}
32
+ {%- endfor %}
33
+
34
+ {%- if not loop.last %}
35
+ {{- '), ' }}
36
+ {%- else %}
37
+ {{- ')' }}
38
+ {%- endif %}
39
+ {%- endfor %}
40
+
41
+ {{- ']<|tool_call_end|>' }}
42
+ {%- endif %}
43
+
44
+ {{- message_content + '<|im_end|>\n' }}
45
+ {%- endfor %}
46
+
47
+ {%- if add_generation_prompt %}
48
+ {{- '<|im_start|>assistant\n' }}
49
+ {%- endif %}