Update chat_template.jinja to match tokenizer_config.json
#5
by
nbroad
- opened
- chat_template.jinja +30 -44
chat_template.jinja
CHANGED
@@ -1,17 +1,12 @@
|
|
1 |
-
{% macro
|
2 |
-
{%- if
|
3 |
-
{%-
|
4 |
-
{
|
5 |
-
{
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
{{ item }}
|
11 |
-
{%- endif -%}
|
12 |
-
{%- endfor -%}
|
13 |
-
{{- ']' }}
|
14 |
-
{%- if tag_name %}{{- '</' ~ tag_name ~ '>' -}}{% endif %}
|
15 |
{%- endif %}
|
16 |
{% endmacro %}
|
17 |
|
@@ -41,39 +36,30 @@
|
|
41 |
{%- set tool = tool.function %}
|
42 |
{%- endif %}
|
43 |
{{- "\n<function>\n<name>" ~ tool.name ~ "</name>" }}
|
44 |
-
{
|
|
|
|
|
45 |
{{- '\n<parameters>' }}
|
46 |
-
{%-
|
47 |
-
{
|
48 |
-
|
49 |
-
|
50 |
-
{
|
51 |
-
|
52 |
-
{%- if param_fields.description is defined %}
|
53 |
-
{{- '\n<description>' ~ (param_fields.description | trim) ~ '</description>' }}
|
54 |
-
{%- endif %}
|
55 |
-
{{- render_item_list(param_fields.enum, 'enum') }}
|
56 |
-
{%- set handled_keys = ['type', 'description', 'enum', 'required'] %}
|
57 |
-
{%- for json_key in param_fields.keys() | reject("in", handled_keys) %}
|
58 |
-
{%- set normed_json_key = json_key | replace("-", "_") | replace(" ", "_") | replace("$", "") %}
|
59 |
-
{%- if param_fields[json_key] is mapping %}
|
60 |
-
{{- '\n<' ~ normed_json_key ~ '>' ~ (param_fields[json_key] | tojson | safe) ~ '</' ~ normed_json_key ~ '>' }}
|
61 |
-
{%- else %}
|
62 |
-
{{-'\n<' ~ normed_json_key ~ '>' ~ (param_fields[json_key] | string) ~ '</' ~ normed_json_key ~ '>' }}
|
63 |
{%- endif %}
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
{%- endfor %}
|
65 |
-
{{- render_item_list(param_fields.required, 'required') }}
|
66 |
-
{{- '\n</parameter>' }}
|
67 |
-
{%- endfor %}
|
68 |
-
{{- render_item_list(tool.parameters.required, 'required') }}
|
69 |
-
{{- '\n</parameters>' }}
|
70 |
-
{%- if tool.return is defined %}
|
71 |
-
{%- if tool.return is mapping %}
|
72 |
-
{{- '\n<return>' ~ (tool.return | tojson | safe) ~ '</return>' }}
|
73 |
-
{%- else %}
|
74 |
-
{{- '\n<return>' ~ (tool.return | string) ~ '</return>' }}
|
75 |
-
{%- endif %}
|
76 |
{%- endif %}
|
|
|
|
|
|
|
|
|
|
|
77 |
{{- '\n</function>' }}
|
78 |
{%- endfor %}
|
79 |
{{- "\n</tools>" }}
|
@@ -100,7 +86,7 @@
|
|
100 |
{%- if tool_call.arguments is defined %}
|
101 |
{%- for args_name, args_value in tool_call.arguments|items %}
|
102 |
{{- '<parameter=' + args_name + '>\n' }}
|
103 |
-
{%- set args_value = args_value if args_value is
|
104 |
{{- args_value }}
|
105 |
{{- '\n</parameter>\n' }}
|
106 |
{%- endfor %}
|
|
|
1 |
+
{% macro render_extra_keys(json_dict, handled_keys) %}
|
2 |
+
{%- if json_dict is mapping %}
|
3 |
+
{%- for json_key in json_dict if json_key not in handled_keys %}
|
4 |
+
{%- if json_dict[json_key] is mapping %}
|
5 |
+
{{- '\n<' ~ json_key ~ '>' ~ (json_dict[json_key] | tojson | safe) ~ '</' ~ json_key ~ '>' }}
|
6 |
+
{%- else %}
|
7 |
+
{{-'\n<' ~ json_key ~ '>' ~ (json_dict[json_key] | string) ~ '</' ~ json_key ~ '>' }}
|
8 |
+
{%- endif %}
|
9 |
+
{%- endfor %}
|
|
|
|
|
|
|
|
|
|
|
10 |
{%- endif %}
|
11 |
{% endmacro %}
|
12 |
|
|
|
36 |
{%- set tool = tool.function %}
|
37 |
{%- endif %}
|
38 |
{{- "\n<function>\n<name>" ~ tool.name ~ "</name>" }}
|
39 |
+
{%- if tool.description is defined %}
|
40 |
+
{{- '\n<description>' ~ (tool.description | trim) ~ '</description>' }}
|
41 |
+
{%- endif %}
|
42 |
{{- '\n<parameters>' }}
|
43 |
+
{%- if tool.parameters is defined and tool.parameters is mapping and tool.parameters.properties is defined and tool.parameters.properties is mapping %}
|
44 |
+
{%- for param_name, param_fields in tool.parameters.properties|items %}
|
45 |
+
{{- '\n<parameter>' }}
|
46 |
+
{{- '\n<name>' ~ param_name ~ '</name>' }}
|
47 |
+
{%- if param_fields.type is defined %}
|
48 |
+
{{- '\n<type>' ~ (param_fields.type | string) ~ '</type>' }}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
{%- endif %}
|
50 |
+
{%- if param_fields.description is defined %}
|
51 |
+
{{- '\n<description>' ~ (param_fields.description | trim) ~ '</description>' }}
|
52 |
+
{%- endif %}
|
53 |
+
{%- set handled_keys = ['name', 'type', 'description'] %}
|
54 |
+
{{- render_extra_keys(param_fields, handled_keys) }}
|
55 |
+
{{- '\n</parameter>' }}
|
56 |
{%- endfor %}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
{%- endif %}
|
58 |
+
{% set handled_keys = ['type', 'properties'] %}
|
59 |
+
{{- render_extra_keys(tool.parameters, handled_keys) }}
|
60 |
+
{{- '\n</parameters>' }}
|
61 |
+
{%- set handled_keys = ['type', 'name', 'description', 'parameters'] %}
|
62 |
+
{{- render_extra_keys(tool, handled_keys) }}
|
63 |
{{- '\n</function>' }}
|
64 |
{%- endfor %}
|
65 |
{{- "\n</tools>" }}
|
|
|
86 |
{%- if tool_call.arguments is defined %}
|
87 |
{%- for args_name, args_value in tool_call.arguments|items %}
|
88 |
{{- '<parameter=' + args_name + '>\n' }}
|
89 |
+
{%- set args_value = args_value | tojson | safe if args_value is mapping else args_value | string %}
|
90 |
{{- args_value }}
|
91 |
{{- '\n</parameter>\n' }}
|
92 |
{%- endfor %}
|