openvino-ci commited on
Commit
76ab936
·
verified ·
1 Parent(s): 45c5518

Upload folder using huggingface_hub

Browse files
README.md CHANGED
@@ -84,7 +84,6 @@ import openvino_genai as ov_genai
84
 
85
  device = "CPU"
86
  pipe = ov_genai.LLMPipeline(model_path, device)
87
- pipe.get_tokenizer().set_chat_template(pipe.get_tokenizer().chat_template)
88
  print(pipe.generate("What is OpenVINO?", max_length=200))
89
  ```
90
 
 
84
 
85
  device = "CPU"
86
  pipe = ov_genai.LLMPipeline(model_path, device)
 
87
  print(pipe.generate("What is OpenVINO?", max_length=200))
88
  ```
89
 
config.json CHANGED
@@ -1,5 +1,4 @@
1
  {
2
- "_attn_implementation_autoset": true,
3
  "architectures": [
4
  "Qwen3ForCausalLM"
5
  ],
 
1
  {
 
2
  "architectures": [
3
  "Qwen3ForCausalLM"
4
  ],
openvino_config.json ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "dtype": "int4",
3
+ "input_info": null,
4
+ "optimum_version": "1.25.3",
5
+ "quantization_config": {
6
+ "all_layers": null,
7
+ "backup_precision": null,
8
+ "bits": 4,
9
+ "dataset": "wikitext2",
10
+ "dtype": "int4",
11
+ "gptq": null,
12
+ "group_size": 128,
13
+ "ignored_scope": null,
14
+ "lora_correction": null,
15
+ "num_samples": null,
16
+ "processor": null,
17
+ "quant_method": "default",
18
+ "ratio": 1.0,
19
+ "scale_estimation": true,
20
+ "sensitivity_metric": null,
21
+ "sym": false,
22
+ "tokenizer": null,
23
+ "trust_remote_code": false
24
+ },
25
+ "save_onnx_model": false,
26
+ "transformers_version": "4.51.3"
27
+ }
openvino_detokenizer.xml CHANGED
@@ -1,16 +1,16 @@
1
  <?xml version="1.0"?>
2
  <net name="detokenizer" version="11">
3
  <layers>
4
- <layer id="0" name="Parameter_110822" type="Parameter" version="opset1">
5
  <data shape="?,?" element_type="i64" />
6
  <output>
7
- <port id="0" precision="I64" names="Parameter_110822">
8
  <dim>-1</dim>
9
  <dim>-1</dim>
10
  </port>
11
  </output>
12
  </layer>
13
- <layer id="1" name="Convert_110992" type="Convert" version="opset1">
14
  <data destination_type="i32" />
15
  <input>
16
  <port id="0" precision="I64">
@@ -25,7 +25,7 @@
25
  </port>
26
  </output>
27
  </layer>
28
- <layer id="2" name="Constant_110824" type="Const" version="opset1">
29
  <data element_type="i32" shape="151669" offset="0" size="606676" />
30
  <output>
31
  <port id="0" precision="I32">
@@ -33,7 +33,7 @@
33
  </port>
34
  </output>
35
  </layer>
36
- <layer id="3" name="Constant_110826" type="Const" version="opset1">
37
  <data element_type="i32" shape="151669" offset="606676" size="606676" />
38
  <output>
39
  <port id="0" precision="I32">
@@ -41,7 +41,7 @@
41
  </port>
42
  </output>
43
  </layer>
44
- <layer id="4" name="Constant_110828" type="Const" version="opset1">
45
  <data element_type="u8" shape="976309" offset="1213352" size="976309" />
46
  <output>
47
  <port id="0" precision="U8">
@@ -49,7 +49,7 @@
49
  </port>
50
  </output>
51
  </layer>
52
- <layer id="5" name="Slice_110833" type="Const" version="opset1">
53
  <data element_type="i32" shape="14" offset="2189661" size="56" />
54
  <output>
55
  <port id="0" precision="I32">
@@ -57,7 +57,7 @@
57
  </port>
58
  </output>
59
  </layer>
60
- <layer id="6" name="VocabDecoder_110835" type="VocabDecoder" version="extension">
61
  <data skip_tokens="" />
62
  <input>
63
  <port id="0" precision="I32">
@@ -95,7 +95,7 @@
95
  </port>
96
  </output>
97
  </layer>
98
- <layer id="7" name="FuzeRagged_110836" type="FuzeRagged" version="extension">
99
  <input>
100
  <port id="0" precision="I32">
101
  <dim>-1</dim>
@@ -119,7 +119,7 @@
119
  </port>
120
  </output>
121
  </layer>
122
- <layer id="8" name="UTF8Validate_110837" type="UTF8Validate" version="extension">
123
  <data replace_mode="true" />
124
  <input>
125
  <port id="0" precision="I32">
@@ -144,7 +144,7 @@
144
  </port>
145
  </output>
146
  </layer>
147
- <layer id="9" name="StringTensorPack_110838" type="StringTensorPack" version="opset15">
148
  <input>
149
  <port id="0" precision="I32">
150
  <dim>-1</dim>
@@ -157,12 +157,12 @@
157
  </port>
158
  </input>
159
  <output>
160
- <port id="3" precision="STRING" names="Result_110839,string_output">
161
  <dim>-1</dim>
162
  </port>
163
  </output>
164
  </layer>
165
- <layer id="10" name="Result_110839" type="Result" version="opset1" output_names="Result_110839,string_output">
166
  <input>
167
  <port id="0" precision="STRING">
168
  <dim>-1</dim>
@@ -193,15 +193,15 @@
193
  <add_attention_mask value="True" />
194
  <add_prefix_space />
195
  <add_special_tokens value="True" />
196
- <chat_template value="{%- if tools %}&#10; {{- '&lt;|im_start|>system\n' }}&#10; {%- if messages[0].role == 'system' %}&#10; {{- messages[0].content + '\n\n' }}&#10; {%- endif %}&#10; {{- &quot;# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within &lt;tools>&lt;/tools> XML tags:\n&lt;tools>&quot; }}&#10; {%- for tool in tools %}&#10; {{- &quot;\n&quot; }}&#10; {{- tool | tojson }}&#10; {%- endfor %}&#10; {{- &quot;\n&lt;/tools>\n\nFor each function call, return a json object with function name and arguments within &lt;tool_call>&lt;/tool_call> XML tags:\n&lt;tool_call>\n{\&quot;name\&quot;: &lt;function-name>, \&quot;arguments\&quot;: &lt;args-json-object>}\n&lt;/tool_call>&lt;|im_end|>\n&quot; }}&#10;{%- else %}&#10; {%- if messages[0].role == 'system' %}&#10; {{- '&lt;|im_start|>system\n' + messages[0].content + '&lt;|im_end|>\n' }}&#10; {%- endif %}&#10;{%- endif %}&#10;{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}&#10;{%- for message in messages[::-1] %}&#10; {%- set index = (messages|length - 1) - loop.index0 %}&#10; {%- if ns.multi_step_tool and message.role == &quot;user&quot; and not(message.content.startswith('&lt;tool_response>') and message.content.endswith('&lt;/tool_response>')) %}&#10; {%- set ns.multi_step_tool = false %}&#10; {%- set ns.last_query_index = index %}&#10; {%- endif %}&#10;{%- endfor %}&#10;{%- for message in messages %}&#10; {%- if (message.role == &quot;user&quot;) or (message.role == &quot;system&quot; and not loop.first) %}&#10; {{- '&lt;|im_start|>' + message.role + '\n' + message.content + '&lt;|im_end|>' + '\n' }}&#10; {%- elif message.role == &quot;assistant&quot; %}&#10; {%- set content = message.content %}&#10; {%- set reasoning_content = '' %}&#10; {%- if message.reasoning_content is defined and message.reasoning_content is not none %}&#10; {%- set reasoning_content = message.reasoning_content %}&#10; {%- else %}&#10; {%- if '&lt;/think>' in message.content %}&#10; {%- set content = message.content.split('&lt;/think>')[-1].lstrip('\n') %}&#10; {%- set reasoning_content = message.content.split('&lt;/think>')[0].rstrip('\n').split('&lt;think>')[-1].lstrip('\n') %}&#10; {%- endif %}&#10; {%- endif %}&#10; {%- if loop.index0 > ns.last_query_index %}&#10; {%- if loop.last or (not loop.last and reasoning_content) %}&#10; {{- '&lt;|im_start|>' + message.role + '\n&lt;think>\n' + reasoning_content.strip('\n') + '\n&lt;/think>\n\n' + content.lstrip('\n') }}&#10; {%- else %}&#10; {{- '&lt;|im_start|>' + message.role + '\n' + content }}&#10; {%- endif %}&#10; {%- else %}&#10; {{- '&lt;|im_start|>' + message.role + '\n' + content }}&#10; {%- endif %}&#10; {%- if message.tool_calls %}&#10; {%- for tool_call in message.tool_calls %}&#10; {%- if (loop.first and content) or (not loop.first) %}&#10; {{- '\n' }}&#10; {%- endif %}&#10; {%- if tool_call.function %}&#10; {%- set tool_call = tool_call.function %}&#10; {%- endif %}&#10; {{- '&lt;tool_call>\n{&quot;name&quot;: &quot;' }}&#10; {{- tool_call.name }}&#10; {{- '&quot;, &quot;arguments&quot;: ' }}&#10; {%- if tool_call.arguments is string %}&#10; {{- tool_call.arguments }}&#10; {%- else %}&#10; {{- tool_call.arguments | tojson }}&#10; {%- endif %}&#10; {{- '}\n&lt;/tool_call>' }}&#10; {%- endfor %}&#10; {%- endif %}&#10; {{- '&lt;|im_end|>\n' }}&#10; {%- elif message.role == &quot;tool&quot; %}&#10; {%- if loop.first or (messages[loop.index0 - 1].role != &quot;tool&quot;) %}&#10; {{- '&lt;|im_start|>user' }}&#10; {%- endif %}&#10; {{- '\n&lt;tool_response>\n' }}&#10; {{- message.content }}&#10; {{- '\n&lt;/tool_response>' }}&#10; {%- if loop.last or (messages[loop.index0 + 1].role != &quot;tool&quot;) %}&#10; {{- '&lt;|im_end|>\n' }}&#10; {%- endif %}&#10; {%- endif %}&#10;{%- endfor %}&#10;{%- if add_generation_prompt %}&#10; {{- '&lt;|im_start|>assistant\n' }}&#10; {%- if enable_thinking is defined and enable_thinking is false %}&#10; {{- '&lt;think>\n\n&lt;/think>\n\n' }}&#10; {%- endif %}&#10;{%- endif %}" />
197
  <clean_up_tokenization_spaces />
198
  <detokenizer_input_type value="i64" />
199
  <eos_token_id value="151645" />
200
  <handle_special_tokens_with_re />
201
  <max_length />
202
  <number_of_inputs value="1" />
203
- <openvino_tokenizers_version value="2025.1.0.0-523-710ddf14de8" />
204
- <openvino_version value="2025.1.0-18503-6fec06580ab-releases/2025/1" />
205
  <original_post_processor_template value="{&quot;type&quot;: &quot;ByteLevel&quot;, &quot;add_prefix_space&quot;: false, &quot;trim_offsets&quot;: false, &quot;use_regex&quot;: false}" />
206
  <original_tokenizer_class value="&lt;class 'transformers.models.qwen2.tokenization_qwen2_fast.Qwen2TokenizerFast'>" />
207
  <pad_token_id value="151643" />
 
1
  <?xml version="1.0"?>
2
  <net name="detokenizer" version="11">
3
  <layers>
4
+ <layer id="0" name="Parameter_1381232" type="Parameter" version="opset1">
5
  <data shape="?,?" element_type="i64" />
6
  <output>
7
+ <port id="0" precision="I64" names="Parameter_1381232">
8
  <dim>-1</dim>
9
  <dim>-1</dim>
10
  </port>
11
  </output>
12
  </layer>
13
+ <layer id="1" name="Convert_1381422" type="Convert" version="opset1">
14
  <data destination_type="i32" />
15
  <input>
16
  <port id="0" precision="I64">
 
25
  </port>
26
  </output>
27
  </layer>
28
+ <layer id="2" name="Constant_1381234" type="Const" version="opset1">
29
  <data element_type="i32" shape="151669" offset="0" size="606676" />
30
  <output>
31
  <port id="0" precision="I32">
 
33
  </port>
34
  </output>
35
  </layer>
36
+ <layer id="3" name="Constant_1381236" type="Const" version="opset1">
37
  <data element_type="i32" shape="151669" offset="606676" size="606676" />
38
  <output>
39
  <port id="0" precision="I32">
 
41
  </port>
42
  </output>
43
  </layer>
44
+ <layer id="4" name="Constant_1381238" type="Const" version="opset1">
45
  <data element_type="u8" shape="976309" offset="1213352" size="976309" />
46
  <output>
47
  <port id="0" precision="U8">
 
49
  </port>
50
  </output>
51
  </layer>
52
+ <layer id="5" name="Slice_1381243" type="Const" version="opset1">
53
  <data element_type="i32" shape="14" offset="2189661" size="56" />
54
  <output>
55
  <port id="0" precision="I32">
 
57
  </port>
58
  </output>
59
  </layer>
60
+ <layer id="6" name="VocabDecoder_1381245" type="VocabDecoder" version="extension">
61
  <data skip_tokens="" />
62
  <input>
63
  <port id="0" precision="I32">
 
95
  </port>
96
  </output>
97
  </layer>
98
+ <layer id="7" name="FuzeRagged_1381246" type="FuzeRagged" version="extension">
99
  <input>
100
  <port id="0" precision="I32">
101
  <dim>-1</dim>
 
119
  </port>
120
  </output>
121
  </layer>
122
+ <layer id="8" name="UTF8Validate_1381247" type="UTF8Validate" version="extension">
123
  <data replace_mode="true" />
124
  <input>
125
  <port id="0" precision="I32">
 
144
  </port>
145
  </output>
146
  </layer>
147
+ <layer id="9" name="StringTensorPack_1381248" type="StringTensorPack" version="opset15">
148
  <input>
149
  <port id="0" precision="I32">
150
  <dim>-1</dim>
 
157
  </port>
158
  </input>
159
  <output>
160
+ <port id="3" precision="STRING" names="Result_1381249,string_output">
161
  <dim>-1</dim>
162
  </port>
163
  </output>
164
  </layer>
165
+ <layer id="10" name="Result_1381249" type="Result" version="opset1" output_names="Result_1381249,string_output">
166
  <input>
167
  <port id="0" precision="STRING">
168
  <dim>-1</dim>
 
193
  <add_attention_mask value="True" />
194
  <add_prefix_space />
195
  <add_special_tokens value="True" />
196
+ <chat_template value="{%- if tools %}&#10; {{- '&lt;|im_start|>system\n' }}&#10; {%- if messages[0].role == 'system' %}&#10; {{- messages[0].content + '\n\n' }}&#10; {%- endif %}&#10; {{- &quot;# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within &lt;tools>&lt;/tools> XML tags:\n&lt;tools>&quot; }}&#10; {%- for tool in tools %}&#10; {{- &quot;\n&quot; }}&#10; {{- tool | tojson }}&#10; {%- endfor %}&#10; {{- &quot;\n&lt;/tools>\n\nFor each function call, return a json object with function name and arguments within &lt;tool_call>&lt;/tool_call> XML tags:\n&lt;tool_call>\n{\&quot;name\&quot;: &lt;function-name>, \&quot;arguments\&quot;: &lt;args-json-object>}\n&lt;/tool_call>&lt;|im_end|>\n&quot; }}&#10;{%- else %}&#10; {%- if messages[0].role == 'system' %}&#10; {{- '&lt;|im_start|>system\n' + messages[0].content + '&lt;|im_end|>\n' }}&#10; {%- endif %}&#10;{%- endif %}&#10;{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}&#10;{%- for message in messages[::-1] %}&#10; {%- set index = (messages|length - 1) - loop.index0 %}&#10; {%- if ns.multi_step_tool and message.role == &quot;user&quot; and message.content is string and not(message.content.startswith('&lt;tool_response>') and message.content.endswith('&lt;/tool_response>')) %}&#10; {%- set ns.multi_step_tool = false %}&#10; {%- set ns.last_query_index = index %}&#10; {%- endif %}&#10;{%- endfor %}&#10;{%- for message in messages %}&#10; {%- if message.content is string %}&#10; {%- set content = message.content %}&#10; {%- else %}&#10; {%- set content = '' %}&#10; {%- endif %}&#10; {%- if (message.role == &quot;user&quot;) or (message.role == &quot;system&quot; and not loop.first) %}&#10; {{- '&lt;|im_start|>' + message.role + '\n' + content + '&lt;|im_end|>' + '\n' }}&#10; {%- elif message.role == &quot;assistant&quot; %}&#10; {%- set reasoning_content = '' %}&#10; {%- if message.reasoning_content is string %}&#10; {%- set reasoning_content = message.reasoning_content %}&#10; {%- else %}&#10; {%- if '&lt;/think>' in content %}&#10; {%- set reasoning_content = content.split('&lt;/think>')[0].rstrip('\n').split('&lt;think>')[-1].lstrip('\n') %}&#10; {%- set content = content.split('&lt;/think>')[-1].lstrip('\n') %}&#10; {%- endif %}&#10; {%- endif %}&#10; {%- if loop.index0 > ns.last_query_index %}&#10; {%- if loop.last or (not loop.last and reasoning_content) %}&#10; {{- '&lt;|im_start|>' + message.role + '\n&lt;think>\n' + reasoning_content.strip('\n') + '\n&lt;/think>\n\n' + content.lstrip('\n') }}&#10; {%- else %}&#10; {{- '&lt;|im_start|>' + message.role + '\n' + content }}&#10; {%- endif %}&#10; {%- else %}&#10; {{- '&lt;|im_start|>' + message.role + '\n' + content }}&#10; {%- endif %}&#10; {%- if message.tool_calls %}&#10; {%- for tool_call in message.tool_calls %}&#10; {%- if (loop.first and content) or (not loop.first) %}&#10; {{- '\n' }}&#10; {%- endif %}&#10; {%- if tool_call.function %}&#10; {%- set tool_call = tool_call.function %}&#10; {%- endif %}&#10; {{- '&lt;tool_call>\n{&quot;name&quot;: &quot;' }}&#10; {{- tool_call.name }}&#10; {{- '&quot;, &quot;arguments&quot;: ' }}&#10; {%- if tool_call.arguments is string %}&#10; {{- tool_call.arguments }}&#10; {%- else %}&#10; {{- tool_call.arguments | tojson }}&#10; {%- endif %}&#10; {{- '}\n&lt;/tool_call>' }}&#10; {%- endfor %}&#10; {%- endif %}&#10; {{- '&lt;|im_end|>\n' }}&#10; {%- elif message.role == &quot;tool&quot; %}&#10; {%- if loop.first or (messages[loop.index0 - 1].role != &quot;tool&quot;) %}&#10; {{- '&lt;|im_start|>user' }}&#10; {%- endif %}&#10; {{- '\n&lt;tool_response>\n' }}&#10; {{- content }}&#10; {{- '\n&lt;/tool_response>' }}&#10; {%- if loop.last or (messages[loop.index0 + 1].role != &quot;tool&quot;) %}&#10; {{- '&lt;|im_end|>\n' }}&#10; {%- endif %}&#10; {%- endif %}&#10;{%- endfor %}&#10;{%- if add_generation_prompt %}&#10; {{- '&lt;|im_start|>assistant\n' }}&#10; {%- if enable_thinking is defined and enable_thinking is false %}&#10; {{- '&lt;think>\n\n&lt;/think>\n\n' }}&#10; {%- endif %}&#10;{%- endif %}" />
197
  <clean_up_tokenization_spaces />
198
  <detokenizer_input_type value="i64" />
199
  <eos_token_id value="151645" />
200
  <handle_special_tokens_with_re />
201
  <max_length />
202
  <number_of_inputs value="1" />
203
+ <openvino_tokenizers_version value="2025.2.0.0-566-85be884a69f" />
204
+ <openvino_version value="2025.2.0-19140-c01cd93e24d-releases/2025/2" />
205
  <original_post_processor_template value="{&quot;type&quot;: &quot;ByteLevel&quot;, &quot;add_prefix_space&quot;: false, &quot;trim_offsets&quot;: false, &quot;use_regex&quot;: false}" />
206
  <original_tokenizer_class value="&lt;class 'transformers.models.qwen2.tokenization_qwen2_fast.Qwen2TokenizerFast'>" />
207
  <pad_token_id value="151643" />
openvino_model.bin CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:b3204fd8bb2963f386d3978948d29fbce26a6279c49046d63f836658c7c289d6
3
- size 5531479900
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c4824333ff1917ecaae5cce0eb6f0e572608106cbbb9acb9c8538d5a57e7dd20
3
+ size 4855348060
openvino_model.xml CHANGED
The diff for this file is too large to render. See raw diff
 
openvino_tokenizer.bin CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:1e31f7285e95a4d08f1e5516c5099f96e169253100b4919db936990fa1923395
3
- size 5588868
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7f5ad873902d49091f9698d375d992b80f988fc077014a24ba5c78336bf03573
3
+ size 5588885
openvino_tokenizer.xml CHANGED
@@ -1,21 +1,21 @@
1
  <?xml version="1.0"?>
2
  <net name="tokenizer" version="11">
3
  <layers>
4
- <layer id="0" name="Parameter_110703" type="Parameter" version="opset1">
5
  <data shape="?" element_type="string" />
6
  <output>
7
- <port id="0" precision="STRING" names="Parameter_110703">
8
  <dim>-1</dim>
9
  </port>
10
  </output>
11
  </layer>
12
- <layer id="1" name="Constant_110709" type="Const" version="opset1">
13
  <data element_type="i64" shape="" offset="0" size="8" />
14
  <output>
15
  <port id="0" precision="I64" />
16
  </output>
17
  </layer>
18
- <layer id="2" name="StringTensorUnpack_110704" type="StringTensorUnpack" version="opset15">
19
  <input>
20
  <port id="0" precision="STRING">
21
  <dim>-1</dim>
@@ -33,7 +33,7 @@
33
  </port>
34
  </output>
35
  </layer>
36
- <layer id="3" name="ShapeOf_110705" type="ShapeOf" version="opset3">
37
  <data output_type="i64" />
38
  <input>
39
  <port id="0" precision="I32">
@@ -46,19 +46,19 @@
46
  </port>
47
  </output>
48
  </layer>
49
- <layer id="4" name="Constant_110706" type="Const" version="opset1">
50
  <data element_type="i64" shape="" offset="0" size="8" />
51
  <output>
52
  <port id="0" precision="I64" />
53
  </output>
54
  </layer>
55
- <layer id="5" name="Constant_110707" type="Const" version="opset1">
56
  <data element_type="i64" shape="" offset="0" size="8" />
57
  <output>
58
  <port id="0" precision="I64" />
59
  </output>
60
  </layer>
61
- <layer id="6" name="Gather_110708" type="Gather" version="opset8">
62
  <data batch_dims="0" />
63
  <input>
64
  <port id="0" precision="I64">
@@ -71,13 +71,13 @@
71
  <port id="3" precision="I64" />
72
  </output>
73
  </layer>
74
- <layer id="7" name="Constant_110710" type="Const" version="opset1">
75
  <data element_type="i64" shape="" offset="8" size="8" />
76
  <output>
77
  <port id="0" precision="I64" />
78
  </output>
79
  </layer>
80
- <layer id="8" name="Range_110711" type="Range" version="opset4">
81
  <data output_type="i32" />
82
  <input>
83
  <port id="0" precision="I64" />
@@ -90,19 +90,19 @@
90
  </port>
91
  </output>
92
  </layer>
93
- <layer id="9" name="Constant_110712" type="Const" version="opset1">
94
  <data element_type="i64" shape="" offset="8" size="8" />
95
  <output>
96
  <port id="0" precision="I64" />
97
  </output>
98
  </layer>
99
- <layer id="10" name="Constant_110713" type="Const" version="opset1">
100
  <data element_type="i64" shape="" offset="8" size="8" />
101
  <output>
102
  <port id="0" precision="I64" />
103
  </output>
104
  </layer>
105
- <layer id="11" name="Add_110714" type="Add" version="opset1">
106
  <data auto_broadcast="numpy" />
107
  <input>
108
  <port id="0" precision="I64" />
@@ -112,13 +112,13 @@
112
  <port id="2" precision="I64" />
113
  </output>
114
  </layer>
115
- <layer id="12" name="Constant_110715" type="Const" version="opset1">
116
  <data element_type="i64" shape="" offset="8" size="8" />
117
  <output>
118
  <port id="0" precision="I64" />
119
  </output>
120
  </layer>
121
- <layer id="13" name="Range_110716" type="Range" version="opset4">
122
  <data output_type="i32" />
123
  <input>
124
  <port id="0" precision="I64" />
@@ -131,7 +131,7 @@
131
  </port>
132
  </output>
133
  </layer>
134
- <layer id="14" name="Constant_110778" type="Const" version="opset1">
135
  <data element_type="u8" shape="512" offset="16" size="512" />
136
  <output>
137
  <port id="0" precision="U8">
@@ -139,7 +139,7 @@
139
  </port>
140
  </output>
141
  </layer>
142
- <layer id="15" name="SpecialTokensSplit_110779" type="SpecialTokensSplit" version="extension">
143
  <input>
144
  <port id="0" precision="I32">
145
  <dim>-1</dim>
@@ -181,7 +181,7 @@
181
  </port>
182
  </output>
183
  </layer>
184
- <layer id="16" name="CharsMapNormalization_110780" type="CharsMapNormalization" version="extension">
185
  <data add_dummy_prefix="false" remove_extra_whitespaces="false" escape_whitespaces="false" normalization_form="nfc" case_fold="false" nmt="false" />
186
  <input>
187
  <port id="0" precision="I32">
@@ -212,7 +212,7 @@
212
  </port>
213
  </output>
214
  </layer>
215
- <layer id="17" name="Constant_110782" type="Const" version="opset1">
216
  <data element_type="u8" shape="110" offset="528" size="110" />
217
  <output>
218
  <port id="0" precision="U8">
@@ -220,7 +220,7 @@
220
  </port>
221
  </output>
222
  </layer>
223
- <layer id="18" name="RegexSplit_110783" type="RegexSplit" version="extension">
224
  <data behaviour="isolate" invert="false" max_splits="-1" />
225
  <input>
226
  <port id="0" precision="I32">
@@ -266,7 +266,7 @@
266
  </port>
267
  </output>
268
  </layer>
269
- <layer id="19" name="Constant_110785" type="Const" version="opset1">
270
  <data element_type="i32" shape="151669" offset="638" size="606676" />
271
  <output>
272
  <port id="0" precision="I32">
@@ -274,7 +274,7 @@
274
  </port>
275
  </output>
276
  </layer>
277
- <layer id="20" name="Constant_110787" type="Const" version="opset1">
278
  <data element_type="i32" shape="151669" offset="607314" size="606676" />
279
  <output>
280
  <port id="0" precision="I32">
@@ -282,7 +282,7 @@
282
  </port>
283
  </output>
284
  </layer>
285
- <layer id="21" name="Constant_110789" type="Const" version="opset1">
286
  <data element_type="u8" shape="976309" offset="1213990" size="976309" />
287
  <output>
288
  <port id="0" precision="U8">
@@ -290,7 +290,7 @@
290
  </port>
291
  </output>
292
  </layer>
293
- <layer id="22" name="Constant_110797" type="Const" version="opset1">
294
  <data element_type="i32" shape="151387" offset="2190299" size="605548" />
295
  <output>
296
  <port id="0" precision="I32">
@@ -298,7 +298,7 @@
298
  </port>
299
  </output>
300
  </layer>
301
- <layer id="23" name="Constant_110799" type="Const" version="opset1">
302
  <data element_type="i32" shape="151387" offset="2795847" size="605548" />
303
  <output>
304
  <port id="0" precision="I32">
@@ -306,7 +306,7 @@
306
  </port>
307
  </output>
308
  </layer>
309
- <layer id="24" name="Constant_110801" type="Const" version="opset1">
310
  <data element_type="u8" shape="491359" offset="3401395" size="491359" />
311
  <output>
312
  <port id="0" precision="U8">
@@ -314,7 +314,7 @@
314
  </port>
315
  </output>
316
  </layer>
317
- <layer id="25" name="Constant_110803" type="Const" version="opset1">
318
  <data element_type="i32" shape="151387" offset="3892754" size="605548" />
319
  <output>
320
  <port id="0" precision="I32">
@@ -322,7 +322,7 @@
322
  </port>
323
  </output>
324
  </layer>
325
- <layer id="26" name="Constant_110805" type="Const" version="opset1">
326
  <data element_type="i32" shape="151387" offset="4498302" size="605548" />
327
  <output>
328
  <port id="0" precision="I32">
@@ -330,7 +330,7 @@
330
  </port>
331
  </output>
332
  </layer>
333
- <layer id="27" name="Constant_110807" type="Const" version="opset1">
334
  <data element_type="u8" shape="484354" offset="5103850" size="484354" />
335
  <output>
336
  <port id="0" precision="U8">
@@ -338,7 +338,7 @@
338
  </port>
339
  </output>
340
  </layer>
341
- <layer id="28" name="Constant_110791" type="Const" version="opset1">
342
  <data element_type="i32" shape="26" offset="5588204" size="104" />
343
  <output>
344
  <port id="0" precision="I32">
@@ -346,7 +346,7 @@
346
  </port>
347
  </output>
348
  </layer>
349
- <layer id="29" name="Constant_110793" type="Const" version="opset1">
350
  <data element_type="i32" shape="26" offset="5588308" size="104" />
351
  <output>
352
  <port id="0" precision="I32">
@@ -354,7 +354,7 @@
354
  </port>
355
  </output>
356
  </layer>
357
- <layer id="30" name="Constant_110795" type="Const" version="opset1">
358
  <data element_type="u8" shape="340" offset="5588412" size="340" />
359
  <output>
360
  <port id="0" precision="U8">
@@ -362,7 +362,7 @@
362
  </port>
363
  </output>
364
  </layer>
365
- <layer id="31" name="Constant_110808" type="Const" version="opset1">
366
  <data element_type="i32" shape="26" offset="5588752" size="104" />
367
  <output>
368
  <port id="0" precision="I32">
@@ -370,7 +370,7 @@
370
  </port>
371
  </output>
372
  </layer>
373
- <layer id="32" name="BPETokenizer_110809" type="BPETokenizer" version="extension">
374
  <data unk_token="" fuse_unk="false" suffix_indicator="" end_suffix="" byte_fallback="false" cache_capacity="30328" />
375
  <input>
376
  <port id="0" precision="I32">
@@ -440,44 +440,30 @@
440
  </port>
441
  </output>
442
  </layer>
443
- <layer id="33" name="Subtract_110810" type="Subtract" version="opset1">
444
- <data auto_broadcast="numpy" />
445
- <input>
446
- <port id="0" precision="I32">
447
- <dim>-1</dim>
448
- </port>
449
- <port id="1" precision="I32">
450
- <dim>-1</dim>
451
- </port>
452
- </input>
453
- <output>
454
- <port id="2" precision="I32">
455
- <dim>-1</dim>
456
- </port>
457
- </output>
458
- </layer>
459
- <layer id="34" name="Constant_110811" type="Const" version="opset1">
460
  <data element_type="i32" shape="" offset="5588856" size="4" />
461
  <output>
462
  <port id="0" precision="I32" />
463
  </output>
464
  </layer>
465
- <layer id="35" name="Minimum_110812" type="Minimum" version="opset1">
466
- <data auto_broadcast="numpy" />
467
- <input>
468
- <port id="0" precision="I32">
469
- <dim>-1</dim>
470
  </port>
471
- <port id="1" precision="I32" />
472
- </input>
 
 
473
  <output>
474
- <port id="2" precision="I32">
475
- <dim>-1</dim>
476
  </port>
477
  </output>
478
  </layer>
479
- <layer id="36" name="Subtract_110813" type="Subtract" version="opset1">
480
- <data auto_broadcast="numpy" />
481
  <input>
482
  <port id="0" precision="I32">
483
  <dim>-1</dim>
@@ -485,14 +471,30 @@
485
  <port id="1" precision="I32">
486
  <dim>-1</dim>
487
  </port>
 
 
 
 
 
 
 
 
 
 
488
  </input>
489
  <output>
490
- <port id="2" precision="I32">
 
 
 
 
 
 
491
  <dim>-1</dim>
492
  </port>
493
  </output>
494
  </layer>
495
- <layer id="37" name="Subtract_110814" type="Subtract" version="opset1">
496
  <data auto_broadcast="numpy" />
497
  <input>
498
  <port id="0" precision="I32">
@@ -508,13 +510,13 @@
508
  </port>
509
  </output>
510
  </layer>
511
- <layer id="38" name="Constant_110815" type="Const" version="opset1">
512
- <data element_type="i32" shape="" offset="5588860" size="4" />
513
  <output>
514
  <port id="0" precision="I32" />
515
  </output>
516
  </layer>
517
- <layer id="39" name="ReduceMax_110816" type="ReduceMax" version="opset1">
518
  <data keep_dims="false" />
519
  <input>
520
  <port id="0" precision="I32">
@@ -526,13 +528,13 @@
526
  <port id="2" precision="I32" />
527
  </output>
528
  </layer>
529
- <layer id="40" name="Constant_110817" type="Const" version="opset1">
530
- <data element_type="i32" shape="" offset="5588864" size="4" />
531
  <output>
532
  <port id="0" precision="I32" />
533
  </output>
534
  </layer>
535
- <layer id="41" name="RaggedToDense_110818" type="RaggedToDense" version="extension">
536
  <data pad_right="false" m_pad_max_length="false" />
537
  <input>
538
  <port id="0" precision="I32">
@@ -558,7 +560,7 @@
558
  </port>
559
  </output>
560
  </layer>
561
- <layer id="42" name="Convert_110819" type="Convert" version="opset1">
562
  <data destination_type="i32" />
563
  <input>
564
  <port id="0" precision="BOOL">
@@ -573,7 +575,7 @@
573
  </port>
574
  </output>
575
  </layer>
576
- <layer id="43" name="Convert_110819.0" type="Convert" version="opset1">
577
  <data destination_type="i64" />
578
  <input>
579
  <port id="0" precision="I32">
@@ -588,7 +590,7 @@
588
  </port>
589
  </output>
590
  </layer>
591
- <layer id="45" name="RaggedToDense_110818.0" type="Convert" version="opset1">
592
  <data destination_type="i64" />
593
  <input>
594
  <port id="0" precision="I32">
@@ -603,7 +605,7 @@
603
  </port>
604
  </output>
605
  </layer>
606
- <layer id="46" name="Result_110820" type="Result" version="opset1" output_names="input_ids">
607
  <input>
608
  <port id="0" precision="I64">
609
  <dim>-1</dim>
@@ -611,7 +613,7 @@
611
  </port>
612
  </input>
613
  </layer>
614
- <layer id="44" name="Result_110821" type="Result" version="opset1" output_names="attention_mask">
615
  <input>
616
  <port id="0" precision="I64">
617
  <dim>-1</dim>
@@ -654,8 +656,8 @@
654
  <edge from-layer="18" from-port="11" to-layer="32" to-port="4" />
655
  <edge from-layer="18" from-port="10" to-layer="32" to-port="3" />
656
  <edge from-layer="18" from-port="8" to-layer="32" to-port="1" />
657
- <edge from-layer="18" from-port="7" to-layer="32" to-port="0" />
658
  <edge from-layer="18" from-port="9" to-layer="32" to-port="2" />
 
659
  <edge from-layer="19" from-port="0" to-layer="32" to-port="5" />
660
  <edge from-layer="20" from-port="0" to-layer="32" to-port="6" />
661
  <edge from-layer="21" from-port="0" to-layer="32" to-port="7" />
@@ -669,17 +671,17 @@
669
  <edge from-layer="29" from-port="0" to-layer="32" to-port="15" />
670
  <edge from-layer="30" from-port="0" to-layer="32" to-port="16" />
671
  <edge from-layer="31" from-port="0" to-layer="32" to-port="17" />
672
- <edge from-layer="32" from-port="19" to-layer="33" to-port="0" />
673
- <edge from-layer="32" from-port="18" to-layer="33" to-port="1" />
674
- <edge from-layer="32" from-port="20" to-layer="41" to-port="2" />
675
- <edge from-layer="32" from-port="19" to-layer="36" to-port="0" />
676
- <edge from-layer="32" from-port="19" to-layer="41" to-port="1" />
677
- <edge from-layer="32" from-port="19" to-layer="37" to-port="0" />
678
- <edge from-layer="33" from-port="2" to-layer="35" to-port="0" />
679
- <edge from-layer="34" from-port="0" to-layer="35" to-port="1" />
680
- <edge from-layer="35" from-port="2" to-layer="36" to-port="1" />
681
- <edge from-layer="36" from-port="2" to-layer="37" to-port="1" />
682
- <edge from-layer="36" from-port="2" to-layer="41" to-port="0" />
683
  <edge from-layer="37" from-port="2" to-layer="39" to-port="0" />
684
  <edge from-layer="38" from-port="0" to-layer="39" to-port="1" />
685
  <edge from-layer="39" from-port="2" to-layer="41" to-port="3" />
@@ -694,20 +696,19 @@
694
  <add_attention_mask value="True" />
695
  <add_prefix_space />
696
  <add_special_tokens value="True" />
697
- <chat_template value="{%- if tools %}&#10; {{- '&lt;|im_start|>system\n' }}&#10; {%- if messages[0].role == 'system' %}&#10; {{- messages[0].content + '\n\n' }}&#10; {%- endif %}&#10; {{- &quot;# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within &lt;tools>&lt;/tools> XML tags:\n&lt;tools>&quot; }}&#10; {%- for tool in tools %}&#10; {{- &quot;\n&quot; }}&#10; {{- tool | tojson }}&#10; {%- endfor %}&#10; {{- &quot;\n&lt;/tools>\n\nFor each function call, return a json object with function name and arguments within &lt;tool_call>&lt;/tool_call> XML tags:\n&lt;tool_call>\n{\&quot;name\&quot;: &lt;function-name>, \&quot;arguments\&quot;: &lt;args-json-object>}\n&lt;/tool_call>&lt;|im_end|>\n&quot; }}&#10;{%- else %}&#10; {%- if messages[0].role == 'system' %}&#10; {{- '&lt;|im_start|>system\n' + messages[0].content + '&lt;|im_end|>\n' }}&#10; {%- endif %}&#10;{%- endif %}&#10;{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}&#10;{%- for message in messages[::-1] %}&#10; {%- set index = (messages|length - 1) - loop.index0 %}&#10; {%- if ns.multi_step_tool and message.role == &quot;user&quot; and not(message.content.startswith('&lt;tool_response>') and message.content.endswith('&lt;/tool_response>')) %}&#10; {%- set ns.multi_step_tool = false %}&#10; {%- set ns.last_query_index = index %}&#10; {%- endif %}&#10;{%- endfor %}&#10;{%- for message in messages %}&#10; {%- if (message.role == &quot;user&quot;) or (message.role == &quot;system&quot; and not loop.first) %}&#10; {{- '&lt;|im_start|>' + message.role + '\n' + message.content + '&lt;|im_end|>' + '\n' }}&#10; {%- elif message.role == &quot;assistant&quot; %}&#10; {%- set content = message.content %}&#10; {%- set reasoning_content = '' %}&#10; {%- if message.reasoning_content is defined and message.reasoning_content is not none %}&#10; {%- set reasoning_content = message.reasoning_content %}&#10; {%- else %}&#10; {%- if '&lt;/think>' in message.content %}&#10; {%- set content = message.content.split('&lt;/think>')[-1].lstrip('\n') %}&#10; {%- set reasoning_content = message.content.split('&lt;/think>')[0].rstrip('\n').split('&lt;think>')[-1].lstrip('\n') %}&#10; {%- endif %}&#10; {%- endif %}&#10; {%- if loop.index0 > ns.last_query_index %}&#10; {%- if loop.last or (not loop.last and reasoning_content) %}&#10; {{- '&lt;|im_start|>' + message.role + '\n&lt;think>\n' + reasoning_content.strip('\n') + '\n&lt;/think>\n\n' + content.lstrip('\n') }}&#10; {%- else %}&#10; {{- '&lt;|im_start|>' + message.role + '\n' + content }}&#10; {%- endif %}&#10; {%- else %}&#10; {{- '&lt;|im_start|>' + message.role + '\n' + content }}&#10; {%- endif %}&#10; {%- if message.tool_calls %}&#10; {%- for tool_call in message.tool_calls %}&#10; {%- if (loop.first and content) or (not loop.first) %}&#10; {{- '\n' }}&#10; {%- endif %}&#10; {%- if tool_call.function %}&#10; {%- set tool_call = tool_call.function %}&#10; {%- endif %}&#10; {{- '&lt;tool_call>\n{&quot;name&quot;: &quot;' }}&#10; {{- tool_call.name }}&#10; {{- '&quot;, &quot;arguments&quot;: ' }}&#10; {%- if tool_call.arguments is string %}&#10; {{- tool_call.arguments }}&#10; {%- else %}&#10; {{- tool_call.arguments | tojson }}&#10; {%- endif %}&#10; {{- '}\n&lt;/tool_call>' }}&#10; {%- endfor %}&#10; {%- endif %}&#10; {{- '&lt;|im_end|>\n' }}&#10; {%- elif message.role == &quot;tool&quot; %}&#10; {%- if loop.first or (messages[loop.index0 - 1].role != &quot;tool&quot;) %}&#10; {{- '&lt;|im_start|>user' }}&#10; {%- endif %}&#10; {{- '\n&lt;tool_response>\n' }}&#10; {{- message.content }}&#10; {{- '\n&lt;/tool_response>' }}&#10; {%- if loop.last or (messages[loop.index0 + 1].role != &quot;tool&quot;) %}&#10; {{- '&lt;|im_end|>\n' }}&#10; {%- endif %}&#10; {%- endif %}&#10;{%- endfor %}&#10;{%- if add_generation_prompt %}&#10; {{- '&lt;|im_start|>assistant\n' }}&#10; {%- if enable_thinking is defined and enable_thinking is false %}&#10; {{- '&lt;think>\n\n&lt;/think>\n\n' }}&#10; {%- endif %}&#10;{%- endif %}" />
698
  <clean_up_tokenization_spaces />
699
  <detokenizer_input_type value="i64" />
700
  <eos_token_id value="151645" />
701
  <handle_special_tokens_with_re />
702
  <max_length />
703
  <number_of_inputs value="1" />
704
- <openvino_tokenizers_version value="2025.1.0.0-523-710ddf14de8" />
705
- <openvino_version value="2025.1.0-18503-6fec06580ab-releases/2025/1" />
706
  <original_post_processor_template value="{&quot;type&quot;: &quot;ByteLevel&quot;, &quot;add_prefix_space&quot;: false, &quot;trim_offsets&quot;: false, &quot;use_regex&quot;: false}" />
707
  <original_tokenizer_class value="&lt;class 'transformers.models.qwen2.tokenization_qwen2_fast.Qwen2TokenizerFast'>" />
708
  <pad_token_id value="151643" />
709
  <sentencepiece_version value="0.2.0" />
710
- <simplified_chat_template value="{% for message in messages %}{% if loop.first and messages[0]['role'] != 'system' %}{{ '&lt;|im_start|>system&#10;You are a helpful assistant.&lt;|im_end|>&#10;' }}{% endif %}{{'&lt;|im_start|>' + message['role'] + '&#10;' + message['content'] + '&lt;|im_end|>' + '&#10;'}}{% endfor %}{% if add_generation_prompt %}{{ '&lt;|im_start|>assistant&#10;' }}{% endif %}" />
711
  <skip_special_tokens value="True" />
712
  <streaming_detokenizer value="False" />
713
  <tiktoken_version value="0.9.0" />
 
1
  <?xml version="1.0"?>
2
  <net name="tokenizer" version="11">
3
  <layers>
4
+ <layer id="0" name="Parameter_1381111" type="Parameter" version="opset1">
5
  <data shape="?" element_type="string" />
6
  <output>
7
+ <port id="0" precision="STRING" names="Parameter_1381111">
8
  <dim>-1</dim>
9
  </port>
10
  </output>
11
  </layer>
12
+ <layer id="1" name="Constant_1381117" type="Const" version="opset1">
13
  <data element_type="i64" shape="" offset="0" size="8" />
14
  <output>
15
  <port id="0" precision="I64" />
16
  </output>
17
  </layer>
18
+ <layer id="2" name="StringTensorUnpack_1381112" type="StringTensorUnpack" version="opset15">
19
  <input>
20
  <port id="0" precision="STRING">
21
  <dim>-1</dim>
 
33
  </port>
34
  </output>
35
  </layer>
36
+ <layer id="3" name="ShapeOf_1381113" type="ShapeOf" version="opset3">
37
  <data output_type="i64" />
38
  <input>
39
  <port id="0" precision="I32">
 
46
  </port>
47
  </output>
48
  </layer>
49
+ <layer id="4" name="Constant_1381114" type="Const" version="opset1">
50
  <data element_type="i64" shape="" offset="0" size="8" />
51
  <output>
52
  <port id="0" precision="I64" />
53
  </output>
54
  </layer>
55
+ <layer id="5" name="Constant_1381115" type="Const" version="opset1">
56
  <data element_type="i64" shape="" offset="0" size="8" />
57
  <output>
58
  <port id="0" precision="I64" />
59
  </output>
60
  </layer>
61
+ <layer id="6" name="Gather_1381116" type="Gather" version="opset8">
62
  <data batch_dims="0" />
63
  <input>
64
  <port id="0" precision="I64">
 
71
  <port id="3" precision="I64" />
72
  </output>
73
  </layer>
74
+ <layer id="7" name="Constant_1381118" type="Const" version="opset1">
75
  <data element_type="i64" shape="" offset="8" size="8" />
76
  <output>
77
  <port id="0" precision="I64" />
78
  </output>
79
  </layer>
80
+ <layer id="8" name="Range_1381119" type="Range" version="opset4">
81
  <data output_type="i32" />
82
  <input>
83
  <port id="0" precision="I64" />
 
90
  </port>
91
  </output>
92
  </layer>
93
+ <layer id="9" name="Constant_1381120" type="Const" version="opset1">
94
  <data element_type="i64" shape="" offset="8" size="8" />
95
  <output>
96
  <port id="0" precision="I64" />
97
  </output>
98
  </layer>
99
+ <layer id="10" name="Constant_1381121" type="Const" version="opset1">
100
  <data element_type="i64" shape="" offset="8" size="8" />
101
  <output>
102
  <port id="0" precision="I64" />
103
  </output>
104
  </layer>
105
+ <layer id="11" name="Add_1381122" type="Add" version="opset1">
106
  <data auto_broadcast="numpy" />
107
  <input>
108
  <port id="0" precision="I64" />
 
112
  <port id="2" precision="I64" />
113
  </output>
114
  </layer>
115
+ <layer id="12" name="Constant_1381123" type="Const" version="opset1">
116
  <data element_type="i64" shape="" offset="8" size="8" />
117
  <output>
118
  <port id="0" precision="I64" />
119
  </output>
120
  </layer>
121
+ <layer id="13" name="Range_1381124" type="Range" version="opset4">
122
  <data output_type="i32" />
123
  <input>
124
  <port id="0" precision="I64" />
 
131
  </port>
132
  </output>
133
  </layer>
134
+ <layer id="14" name="Constant_1381186" type="Const" version="opset1">
135
  <data element_type="u8" shape="512" offset="16" size="512" />
136
  <output>
137
  <port id="0" precision="U8">
 
139
  </port>
140
  </output>
141
  </layer>
142
+ <layer id="15" name="SpecialTokensSplit_1381187" type="SpecialTokensSplit" version="extension">
143
  <input>
144
  <port id="0" precision="I32">
145
  <dim>-1</dim>
 
181
  </port>
182
  </output>
183
  </layer>
184
+ <layer id="16" name="CharsMapNormalization_1381188" type="CharsMapNormalization" version="extension">
185
  <data add_dummy_prefix="false" remove_extra_whitespaces="false" escape_whitespaces="false" normalization_form="nfc" case_fold="false" nmt="false" />
186
  <input>
187
  <port id="0" precision="I32">
 
212
  </port>
213
  </output>
214
  </layer>
215
+ <layer id="17" name="Constant_1381190" type="Const" version="opset1">
216
  <data element_type="u8" shape="110" offset="528" size="110" />
217
  <output>
218
  <port id="0" precision="U8">
 
220
  </port>
221
  </output>
222
  </layer>
223
+ <layer id="18" name="RegexSplit_1381191" type="RegexSplit" version="extension">
224
  <data behaviour="isolate" invert="false" max_splits="-1" />
225
  <input>
226
  <port id="0" precision="I32">
 
266
  </port>
267
  </output>
268
  </layer>
269
+ <layer id="19" name="Constant_1381193" type="Const" version="opset1">
270
  <data element_type="i32" shape="151669" offset="638" size="606676" />
271
  <output>
272
  <port id="0" precision="I32">
 
274
  </port>
275
  </output>
276
  </layer>
277
+ <layer id="20" name="Constant_1381195" type="Const" version="opset1">
278
  <data element_type="i32" shape="151669" offset="607314" size="606676" />
279
  <output>
280
  <port id="0" precision="I32">
 
282
  </port>
283
  </output>
284
  </layer>
285
+ <layer id="21" name="Constant_1381197" type="Const" version="opset1">
286
  <data element_type="u8" shape="976309" offset="1213990" size="976309" />
287
  <output>
288
  <port id="0" precision="U8">
 
290
  </port>
291
  </output>
292
  </layer>
293
+ <layer id="22" name="Constant_1381205" type="Const" version="opset1">
294
  <data element_type="i32" shape="151387" offset="2190299" size="605548" />
295
  <output>
296
  <port id="0" precision="I32">
 
298
  </port>
299
  </output>
300
  </layer>
301
+ <layer id="23" name="Constant_1381207" type="Const" version="opset1">
302
  <data element_type="i32" shape="151387" offset="2795847" size="605548" />
303
  <output>
304
  <port id="0" precision="I32">
 
306
  </port>
307
  </output>
308
  </layer>
309
+ <layer id="24" name="Constant_1381209" type="Const" version="opset1">
310
  <data element_type="u8" shape="491359" offset="3401395" size="491359" />
311
  <output>
312
  <port id="0" precision="U8">
 
314
  </port>
315
  </output>
316
  </layer>
317
+ <layer id="25" name="Constant_1381211" type="Const" version="opset1">
318
  <data element_type="i32" shape="151387" offset="3892754" size="605548" />
319
  <output>
320
  <port id="0" precision="I32">
 
322
  </port>
323
  </output>
324
  </layer>
325
+ <layer id="26" name="Constant_1381213" type="Const" version="opset1">
326
  <data element_type="i32" shape="151387" offset="4498302" size="605548" />
327
  <output>
328
  <port id="0" precision="I32">
 
330
  </port>
331
  </output>
332
  </layer>
333
+ <layer id="27" name="Constant_1381215" type="Const" version="opset1">
334
  <data element_type="u8" shape="484354" offset="5103850" size="484354" />
335
  <output>
336
  <port id="0" precision="U8">
 
338
  </port>
339
  </output>
340
  </layer>
341
+ <layer id="28" name="Constant_1381199" type="Const" version="opset1">
342
  <data element_type="i32" shape="26" offset="5588204" size="104" />
343
  <output>
344
  <port id="0" precision="I32">
 
346
  </port>
347
  </output>
348
  </layer>
349
+ <layer id="29" name="Constant_1381201" type="Const" version="opset1">
350
  <data element_type="i32" shape="26" offset="5588308" size="104" />
351
  <output>
352
  <port id="0" precision="I32">
 
354
  </port>
355
  </output>
356
  </layer>
357
+ <layer id="30" name="Constant_1381203" type="Const" version="opset1">
358
  <data element_type="u8" shape="340" offset="5588412" size="340" />
359
  <output>
360
  <port id="0" precision="U8">
 
362
  </port>
363
  </output>
364
  </layer>
365
+ <layer id="31" name="Constant_1381216" type="Const" version="opset1">
366
  <data element_type="i32" shape="26" offset="5588752" size="104" />
367
  <output>
368
  <port id="0" precision="I32">
 
370
  </port>
371
  </output>
372
  </layer>
373
+ <layer id="32" name="BPETokenizer_1381217" type="BPETokenizer" version="extension">
374
  <data unk_token="" fuse_unk="false" suffix_indicator="" end_suffix="" byte_fallback="false" cache_capacity="30328" />
375
  <input>
376
  <port id="0" precision="I32">
 
440
  </port>
441
  </output>
442
  </layer>
443
+ <layer id="33" name="Constant_1381218" type="Const" version="opset1">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
444
  <data element_type="i32" shape="" offset="5588856" size="4" />
445
  <output>
446
  <port id="0" precision="I32" />
447
  </output>
448
  </layer>
449
+ <layer id="34" name="Constant_1381220" type="Const" version="opset1">
450
+ <data element_type="u8" shape="4" offset="5588860" size="4" />
451
+ <output>
452
+ <port id="0" precision="U8">
453
+ <dim>4</dim>
454
  </port>
455
+ </output>
456
+ </layer>
457
+ <layer id="35" name="Constant_1381222" type="Const" version="opset1">
458
+ <data element_type="u8" shape="13" offset="5588864" size="13" />
459
  <output>
460
+ <port id="0" precision="U8">
461
+ <dim>13</dim>
462
  </port>
463
  </output>
464
  </layer>
465
+ <layer id="36" name="Truncate_1381223" type="Truncate" version="extension">
466
+ <data m_num_inputs="1" />
467
  <input>
468
  <port id="0" precision="I32">
469
  <dim>-1</dim>
 
471
  <port id="1" precision="I32">
472
  <dim>-1</dim>
473
  </port>
474
+ <port id="2" precision="I32">
475
+ <dim>-1</dim>
476
+ </port>
477
+ <port id="3" precision="I32" />
478
+ <port id="4" precision="U8">
479
+ <dim>4</dim>
480
+ </port>
481
+ <port id="5" precision="U8">
482
+ <dim>13</dim>
483
+ </port>
484
  </input>
485
  <output>
486
+ <port id="6" precision="I32">
487
+ <dim>-1</dim>
488
+ </port>
489
+ <port id="7" precision="I32">
490
+ <dim>-1</dim>
491
+ </port>
492
+ <port id="8" precision="I32">
493
  <dim>-1</dim>
494
  </port>
495
  </output>
496
  </layer>
497
+ <layer id="37" name="Subtract_1381224" type="Subtract" version="opset1">
498
  <data auto_broadcast="numpy" />
499
  <input>
500
  <port id="0" precision="I32">
 
510
  </port>
511
  </output>
512
  </layer>
513
+ <layer id="38" name="Constant_1381225" type="Const" version="opset1">
514
+ <data element_type="i32" shape="" offset="5588877" size="4" />
515
  <output>
516
  <port id="0" precision="I32" />
517
  </output>
518
  </layer>
519
+ <layer id="39" name="ReduceMax_1381226" type="ReduceMax" version="opset1">
520
  <data keep_dims="false" />
521
  <input>
522
  <port id="0" precision="I32">
 
528
  <port id="2" precision="I32" />
529
  </output>
530
  </layer>
531
+ <layer id="40" name="Constant_1381227" type="Const" version="opset1">
532
+ <data element_type="i32" shape="" offset="5588881" size="4" />
533
  <output>
534
  <port id="0" precision="I32" />
535
  </output>
536
  </layer>
537
+ <layer id="41" name="RaggedToDense_1381228" type="RaggedToDense" version="extension">
538
  <data pad_right="false" m_pad_max_length="false" />
539
  <input>
540
  <port id="0" precision="I32">
 
560
  </port>
561
  </output>
562
  </layer>
563
+ <layer id="42" name="Convert_1381229" type="Convert" version="opset1">
564
  <data destination_type="i32" />
565
  <input>
566
  <port id="0" precision="BOOL">
 
575
  </port>
576
  </output>
577
  </layer>
578
+ <layer id="43" name="Convert_1381229.0" type="Convert" version="opset1">
579
  <data destination_type="i64" />
580
  <input>
581
  <port id="0" precision="I32">
 
590
  </port>
591
  </output>
592
  </layer>
593
+ <layer id="45" name="RaggedToDense_1381228.0" type="Convert" version="opset1">
594
  <data destination_type="i64" />
595
  <input>
596
  <port id="0" precision="I32">
 
605
  </port>
606
  </output>
607
  </layer>
608
+ <layer id="46" name="Result_1381230" type="Result" version="opset1" output_names="input_ids">
609
  <input>
610
  <port id="0" precision="I64">
611
  <dim>-1</dim>
 
613
  </port>
614
  </input>
615
  </layer>
616
+ <layer id="44" name="Result_1381231" type="Result" version="opset1" output_names="attention_mask">
617
  <input>
618
  <port id="0" precision="I64">
619
  <dim>-1</dim>
 
656
  <edge from-layer="18" from-port="11" to-layer="32" to-port="4" />
657
  <edge from-layer="18" from-port="10" to-layer="32" to-port="3" />
658
  <edge from-layer="18" from-port="8" to-layer="32" to-port="1" />
 
659
  <edge from-layer="18" from-port="9" to-layer="32" to-port="2" />
660
+ <edge from-layer="18" from-port="7" to-layer="32" to-port="0" />
661
  <edge from-layer="19" from-port="0" to-layer="32" to-port="5" />
662
  <edge from-layer="20" from-port="0" to-layer="32" to-port="6" />
663
  <edge from-layer="21" from-port="0" to-layer="32" to-port="7" />
 
671
  <edge from-layer="29" from-port="0" to-layer="32" to-port="15" />
672
  <edge from-layer="30" from-port="0" to-layer="32" to-port="16" />
673
  <edge from-layer="31" from-port="0" to-layer="32" to-port="17" />
674
+ <edge from-layer="32" from-port="20" to-layer="36" to-port="2" />
675
+ <edge from-layer="32" from-port="18" to-layer="36" to-port="0" />
676
+ <edge from-layer="32" from-port="19" to-layer="36" to-port="1" />
677
+ <edge from-layer="33" from-port="0" to-layer="36" to-port="3" />
678
+ <edge from-layer="34" from-port="0" to-layer="36" to-port="4" />
679
+ <edge from-layer="35" from-port="0" to-layer="36" to-port="5" />
680
+ <edge from-layer="36" from-port="6" to-layer="41" to-port="0" />
681
+ <edge from-layer="36" from-port="8" to-layer="41" to-port="2" />
682
+ <edge from-layer="36" from-port="7" to-layer="41" to-port="1" />
683
+ <edge from-layer="36" from-port="6" to-layer="37" to-port="1" />
684
+ <edge from-layer="36" from-port="7" to-layer="37" to-port="0" />
685
  <edge from-layer="37" from-port="2" to-layer="39" to-port="0" />
686
  <edge from-layer="38" from-port="0" to-layer="39" to-port="1" />
687
  <edge from-layer="39" from-port="2" to-layer="41" to-port="3" />
 
696
  <add_attention_mask value="True" />
697
  <add_prefix_space />
698
  <add_special_tokens value="True" />
699
+ <chat_template value="{%- if tools %}&#10; {{- '&lt;|im_start|>system\n' }}&#10; {%- if messages[0].role == 'system' %}&#10; {{- messages[0].content + '\n\n' }}&#10; {%- endif %}&#10; {{- &quot;# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within &lt;tools>&lt;/tools> XML tags:\n&lt;tools>&quot; }}&#10; {%- for tool in tools %}&#10; {{- &quot;\n&quot; }}&#10; {{- tool | tojson }}&#10; {%- endfor %}&#10; {{- &quot;\n&lt;/tools>\n\nFor each function call, return a json object with function name and arguments within &lt;tool_call>&lt;/tool_call> XML tags:\n&lt;tool_call>\n{\&quot;name\&quot;: &lt;function-name>, \&quot;arguments\&quot;: &lt;args-json-object>}\n&lt;/tool_call>&lt;|im_end|>\n&quot; }}&#10;{%- else %}&#10; {%- if messages[0].role == 'system' %}&#10; {{- '&lt;|im_start|>system\n' + messages[0].content + '&lt;|im_end|>\n' }}&#10; {%- endif %}&#10;{%- endif %}&#10;{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}&#10;{%- for message in messages[::-1] %}&#10; {%- set index = (messages|length - 1) - loop.index0 %}&#10; {%- if ns.multi_step_tool and message.role == &quot;user&quot; and message.content is string and not(message.content.startswith('&lt;tool_response>') and message.content.endswith('&lt;/tool_response>')) %}&#10; {%- set ns.multi_step_tool = false %}&#10; {%- set ns.last_query_index = index %}&#10; {%- endif %}&#10;{%- endfor %}&#10;{%- for message in messages %}&#10; {%- if message.content is string %}&#10; {%- set content = message.content %}&#10; {%- else %}&#10; {%- set content = '' %}&#10; {%- endif %}&#10; {%- if (message.role == &quot;user&quot;) or (message.role == &quot;system&quot; and not loop.first) %}&#10; {{- '&lt;|im_start|>' + message.role + '\n' + content + '&lt;|im_end|>' + '\n' }}&#10; {%- elif message.role == &quot;assistant&quot; %}&#10; {%- set reasoning_content = '' %}&#10; {%- if message.reasoning_content is string %}&#10; {%- set reasoning_content = message.reasoning_content %}&#10; {%- else %}&#10; {%- if '&lt;/think>' in content %}&#10; {%- set reasoning_content = content.split('&lt;/think>')[0].rstrip('\n').split('&lt;think>')[-1].lstrip('\n') %}&#10; {%- set content = content.split('&lt;/think>')[-1].lstrip('\n') %}&#10; {%- endif %}&#10; {%- endif %}&#10; {%- if loop.index0 > ns.last_query_index %}&#10; {%- if loop.last or (not loop.last and reasoning_content) %}&#10; {{- '&lt;|im_start|>' + message.role + '\n&lt;think>\n' + reasoning_content.strip('\n') + '\n&lt;/think>\n\n' + content.lstrip('\n') }}&#10; {%- else %}&#10; {{- '&lt;|im_start|>' + message.role + '\n' + content }}&#10; {%- endif %}&#10; {%- else %}&#10; {{- '&lt;|im_start|>' + message.role + '\n' + content }}&#10; {%- endif %}&#10; {%- if message.tool_calls %}&#10; {%- for tool_call in message.tool_calls %}&#10; {%- if (loop.first and content) or (not loop.first) %}&#10; {{- '\n' }}&#10; {%- endif %}&#10; {%- if tool_call.function %}&#10; {%- set tool_call = tool_call.function %}&#10; {%- endif %}&#10; {{- '&lt;tool_call>\n{&quot;name&quot;: &quot;' }}&#10; {{- tool_call.name }}&#10; {{- '&quot;, &quot;arguments&quot;: ' }}&#10; {%- if tool_call.arguments is string %}&#10; {{- tool_call.arguments }}&#10; {%- else %}&#10; {{- tool_call.arguments | tojson }}&#10; {%- endif %}&#10; {{- '}\n&lt;/tool_call>' }}&#10; {%- endfor %}&#10; {%- endif %}&#10; {{- '&lt;|im_end|>\n' }}&#10; {%- elif message.role == &quot;tool&quot; %}&#10; {%- if loop.first or (messages[loop.index0 - 1].role != &quot;tool&quot;) %}&#10; {{- '&lt;|im_start|>user' }}&#10; {%- endif %}&#10; {{- '\n&lt;tool_response>\n' }}&#10; {{- content }}&#10; {{- '\n&lt;/tool_response>' }}&#10; {%- if loop.last or (messages[loop.index0 + 1].role != &quot;tool&quot;) %}&#10; {{- '&lt;|im_end|>\n' }}&#10; {%- endif %}&#10; {%- endif %}&#10;{%- endfor %}&#10;{%- if add_generation_prompt %}&#10; {{- '&lt;|im_start|>assistant\n' }}&#10; {%- if enable_thinking is defined and enable_thinking is false %}&#10; {{- '&lt;think>\n\n&lt;/think>\n\n' }}&#10; {%- endif %}&#10;{%- endif %}" />
700
  <clean_up_tokenization_spaces />
701
  <detokenizer_input_type value="i64" />
702
  <eos_token_id value="151645" />
703
  <handle_special_tokens_with_re />
704
  <max_length />
705
  <number_of_inputs value="1" />
706
+ <openvino_tokenizers_version value="2025.2.0.0-566-85be884a69f" />
707
+ <openvino_version value="2025.2.0-19140-c01cd93e24d-releases/2025/2" />
708
  <original_post_processor_template value="{&quot;type&quot;: &quot;ByteLevel&quot;, &quot;add_prefix_space&quot;: false, &quot;trim_offsets&quot;: false, &quot;use_regex&quot;: false}" />
709
  <original_tokenizer_class value="&lt;class 'transformers.models.qwen2.tokenization_qwen2_fast.Qwen2TokenizerFast'>" />
710
  <pad_token_id value="151643" />
711
  <sentencepiece_version value="0.2.0" />
 
712
  <skip_special_tokens value="True" />
713
  <streaming_detokenizer value="False" />
714
  <tiktoken_version value="0.9.0" />
tokenizer_config.json CHANGED
@@ -227,7 +227,7 @@
227
  "<|video_pad|>"
228
  ],
229
  "bos_token": null,
230
- "chat_template": "{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0].role == 'system' %}\n {{- messages[0].content + '\\n\\n' }}\n {%- endif %}\n {{- \"# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0].role == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0].content + '<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}\n{%- for message in messages[::-1] %}\n {%- set index = (messages|length - 1) - loop.index0 %}\n {%- if ns.multi_step_tool and message.role == \"user\" and not(message.content.startswith('<tool_response>') and message.content.endswith('</tool_response>')) %}\n {%- set ns.multi_step_tool = false %}\n {%- set ns.last_query_index = index %}\n {%- endif %}\n{%- endfor %}\n{%- for message in messages %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) %}\n {{- '<|im_start|>' + message.role + '\\n' + message.content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {%- set content = message.content %}\n {%- set reasoning_content = '' %}\n {%- if message.reasoning_content is defined and message.reasoning_content is not none %}\n {%- set reasoning_content = message.reasoning_content %}\n {%- else %}\n {%- if '</think>' in message.content %}\n {%- set content = message.content.split('</think>')[-1].lstrip('\\n') %}\n {%- set reasoning_content = message.content.split('</think>')[0].rstrip('\\n').split('<think>')[-1].lstrip('\\n') %}\n {%- endif %}\n {%- endif %}\n {%- if loop.index0 > ns.last_query_index %}\n {%- if loop.last or (not loop.last and reasoning_content) %}\n {{- '<|im_start|>' + message.role + '\\n<think>\\n' + reasoning_content.strip('\\n') + '\\n</think>\\n\\n' + content.lstrip('\\n') }}\n {%- else %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- endif %}\n {%- else %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- endif %}\n {%- if message.tool_calls %}\n {%- for tool_call in message.tool_calls %}\n {%- if (loop.first and content) or (not loop.first) %}\n {{- '\\n' }}\n {%- endif %}\n {%- if tool_call.function %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {%- if tool_call.arguments is string %}\n {{- tool_call.arguments }}\n {%- else %}\n {{- tool_call.arguments | tojson }}\n {%- endif %}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if loop.first or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- message.content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n {%- if enable_thinking is defined and enable_thinking is false %}\n {{- '<think>\\n\\n</think>\\n\\n' }}\n {%- endif %}\n{%- endif %}",
231
  "clean_up_tokenization_spaces": false,
232
  "eos_token": "<|im_end|>",
233
  "errors": "replace",
 
227
  "<|video_pad|>"
228
  ],
229
  "bos_token": null,
230
+ "chat_template": "{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0].role == 'system' %}\n {{- messages[0].content + '\\n\\n' }}\n {%- endif %}\n {{- \"# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0].role == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0].content + '<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}\n{%- for message in messages[::-1] %}\n {%- set index = (messages|length - 1) - loop.index0 %}\n {%- if ns.multi_step_tool and message.role == \"user\" and message.content is string and not(message.content.startswith('<tool_response>') and message.content.endswith('</tool_response>')) %}\n {%- set ns.multi_step_tool = false %}\n {%- set ns.last_query_index = index %}\n {%- endif %}\n{%- endfor %}\n{%- for message in messages %}\n {%- if message.content is string %}\n {%- set content = message.content %}\n {%- else %}\n {%- set content = '' %}\n {%- endif %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) %}\n {{- '<|im_start|>' + message.role + '\\n' + content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {%- set reasoning_content = '' %}\n {%- if message.reasoning_content is string %}\n {%- set reasoning_content = message.reasoning_content %}\n {%- else %}\n {%- if '</think>' in content %}\n {%- set reasoning_content = content.split('</think>')[0].rstrip('\\n').split('<think>')[-1].lstrip('\\n') %}\n {%- set content = content.split('</think>')[-1].lstrip('\\n') %}\n {%- endif %}\n {%- endif %}\n {%- if loop.index0 > ns.last_query_index %}\n {%- if loop.last or (not loop.last and reasoning_content) %}\n {{- '<|im_start|>' + message.role + '\\n<think>\\n' + reasoning_content.strip('\\n') + '\\n</think>\\n\\n' + content.lstrip('\\n') }}\n {%- else %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- endif %}\n {%- else %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- endif %}\n {%- if message.tool_calls %}\n {%- for tool_call in message.tool_calls %}\n {%- if (loop.first and content) or (not loop.first) %}\n {{- '\\n' }}\n {%- endif %}\n {%- if tool_call.function %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {%- if tool_call.arguments is string %}\n {{- tool_call.arguments }}\n {%- else %}\n {{- tool_call.arguments | tojson }}\n {%- endif %}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if loop.first or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n {%- if enable_thinking is defined and enable_thinking is false %}\n {{- '<think>\\n\\n</think>\\n\\n' }}\n {%- endif %}\n{%- endif %}",
231
  "clean_up_tokenization_spaces": false,
232
  "eos_token": "<|im_end|>",
233
  "errors": "replace",