tokenizer_config.json
26.3 KB · 785 lines · json Raw
1 {
2 "add_prefix_space": false,
3 "bos_token": "<s>",
4 "clean_up_tokenization_spaces": false,
5 "eos_token": "<|im_end|>",
6 "errors": "replace",
7 "local_files_only": false,
8 "model_max_length": 131072,
9 "pad_token": "<|im_end|>",
10 "padding_side": "left",
11 "tokenizer_class": "PreTrainedTokenizerFast",
12 "unk_token": "<unk>",
13 "added_tokens_decoder": {
14 "100256": {
15 "content": "<|im_start|>",
16 "lstrip": false,
17 "normalized": false,
18 "rstrip": false,
19 "single_word": false,
20 "special": true
21 },
22 "100257": {
23 "content": "<|im_end|>",
24 "lstrip": false,
25 "normalized": false,
26 "rstrip": false,
27 "single_word": false,
28 "special": true
29 },
30 "100258": {
31 "content": "<|fim_prefix|>",
32 "lstrip": false,
33 "normalized": false,
34 "rstrip": false,
35 "single_word": false,
36 "special": false
37 },
38 "100259": {
39 "content": "<|fim_middle|>",
40 "lstrip": false,
41 "normalized": false,
42 "rstrip": false,
43 "single_word": false,
44 "special": false
45 },
46 "100260": {
47 "content": "<|fim_suffix|>",
48 "lstrip": false,
49 "normalized": false,
50 "rstrip": false,
51 "single_word": false,
52 "special": false
53 },
54 "100261": {
55 "content": "<|fim_pad|>",
56 "lstrip": false,
57 "normalized": false,
58 "rstrip": false,
59 "single_word": false,
60 "special": false
61 },
62 "100262": {
63 "content": "<|filename|>",
64 "lstrip": false,
65 "normalized": false,
66 "rstrip": false,
67 "single_word": false,
68 "special": false
69 },
70 "100263": {
71 "content": "<|reponame|>",
72 "lstrip": false,
73 "normalized": false,
74 "rstrip": false,
75 "single_word": false,
76 "special": false
77 },
78 "100264": {
79 "content": "<|unused_11|>",
80 "lstrip": false,
81 "normalized": false,
82 "rstrip": false,
83 "single_word": false,
84 "special": true
85 },
86 "100265": {
87 "content": "<|unused_12|>",
88 "lstrip": false,
89 "normalized": false,
90 "rstrip": false,
91 "single_word": false,
92 "special": true
93 },
94 "100266": {
95 "content": "<|unused_13|>",
96 "lstrip": false,
97 "normalized": false,
98 "rstrip": false,
99 "single_word": false,
100 "special": true
101 },
102 "100267": {
103 "content": "<|unused_14|>",
104 "lstrip": false,
105 "normalized": false,
106 "rstrip": false,
107 "single_word": false,
108 "special": true
109 },
110 "100268": {
111 "content": "<|unused_15|>",
112 "lstrip": false,
113 "normalized": false,
114 "rstrip": false,
115 "single_word": false,
116 "special": true
117 },
118 "100269": {
119 "content": "<unk>",
120 "lstrip": false,
121 "normalized": false,
122 "rstrip": false,
123 "single_word": false,
124 "special": true
125 },
126 "100270": {
127 "content": "<tool_call>",
128 "lstrip": false,
129 "normalized": false,
130 "rstrip": false,
131 "single_word": false,
132 "special": false
133 },
134 "100271": {
135 "content": "</tool_call>",
136 "lstrip": false,
137 "normalized": false,
138 "rstrip": false,
139 "single_word": false,
140 "special": false
141 },
142 "100272": {
143 "content": "<tool_response>",
144 "lstrip": false,
145 "normalized": false,
146 "rstrip": false,
147 "single_word": false,
148 "special": false
149 },
150 "100273": {
151 "content": "</tool_response>",
152 "lstrip": false,
153 "normalized": false,
154 "rstrip": false,
155 "single_word": false,
156 "special": false
157 },
158 "100274": {
159 "content": "<think>",
160 "lstrip": false,
161 "normalized": false,
162 "rstrip": false,
163 "single_word": false,
164 "special": false
165 },
166 "100275": {
167 "content": "</think>",
168 "lstrip": false,
169 "normalized": false,
170 "rstrip": false,
171 "single_word": false,
172 "special": false
173 },
174 "100276": {
175 "content": "[INST]",
176 "lstrip": false,
177 "normalized": false,
178 "rstrip": false,
179 "single_word": false,
180 "special": true
181 },
182 "100277": {
183 "content": "[/INST]",
184 "lstrip": false,
185 "normalized": false,
186 "rstrip": false,
187 "single_word": false,
188 "special": true
189 },
190 "100278": {
191 "content": "[AVAILABLE_TOOLS]",
192 "lstrip": false,
193 "normalized": false,
194 "rstrip": false,
195 "single_word": false,
196 "special": true
197 },
198 "100279": {
199 "content": "[/AVAILABLE_TOOLS]",
200 "lstrip": false,
201 "normalized": false,
202 "rstrip": false,
203 "single_word": false,
204 "special": true
205 },
206 "100280": {
207 "content": "[TOOL_RESULTS]",
208 "lstrip": false,
209 "normalized": false,
210 "rstrip": false,
211 "single_word": false,
212 "special": true
213 },
214 "100281": {
215 "content": "[/TOOL_RESULTS]",
216 "lstrip": false,
217 "normalized": false,
218 "rstrip": false,
219 "single_word": false,
220 "special": true
221 },
222 "100282": {
223 "content": "[TOOL_CALLS]",
224 "lstrip": false,
225 "normalized": false,
226 "rstrip": false,
227 "single_word": false,
228 "special": true
229 },
230 "100283": {
231 "content": "<s>",
232 "lstrip": false,
233 "normalized": false,
234 "rstrip": false,
235 "single_word": false,
236 "special": true
237 },
238 "100284": {
239 "content": "</s>",
240 "lstrip": false,
241 "normalized": false,
242 "rstrip": false,
243 "single_word": false,
244 "special": true
245 },
246 "100285": {
247 "content": "<|unused_16|>",
248 "lstrip": false,
249 "normalized": false,
250 "rstrip": false,
251 "single_word": false,
252 "special": true
253 },
254 "100286": {
255 "content": "<|unused_17|>",
256 "lstrip": false,
257 "normalized": false,
258 "rstrip": false,
259 "single_word": false,
260 "special": true
261 },
262 "100287": {
263 "content": "<|unused_18|>",
264 "lstrip": false,
265 "normalized": false,
266 "rstrip": false,
267 "single_word": false,
268 "special": true
269 },
270 "100288": {
271 "content": "<|unused_19|>",
272 "lstrip": false,
273 "normalized": false,
274 "rstrip": false,
275 "single_word": false,
276 "special": true
277 },
278 "100289": {
279 "content": "<|unused_20|>",
280 "lstrip": false,
281 "normalized": false,
282 "rstrip": false,
283 "single_word": false,
284 "special": true
285 },
286 "100290": {
287 "content": "<|unused_21|>",
288 "lstrip": false,
289 "normalized": false,
290 "rstrip": false,
291 "single_word": false,
292 "special": true
293 },
294 "100291": {
295 "content": "<|unused_22|>",
296 "lstrip": false,
297 "normalized": false,
298 "rstrip": false,
299 "single_word": false,
300 "special": true
301 },
302 "100292": {
303 "content": "<|unused_23|>",
304 "lstrip": false,
305 "normalized": false,
306 "rstrip": false,
307 "single_word": false,
308 "special": true
309 },
310 "100293": {
311 "content": "<|unused_24|>",
312 "lstrip": false,
313 "normalized": false,
314 "rstrip": false,
315 "single_word": false,
316 "special": true
317 },
318 "100294": {
319 "content": "<|unused_25|>",
320 "lstrip": false,
321 "normalized": false,
322 "rstrip": false,
323 "single_word": false,
324 "special": true
325 },
326 "100295": {
327 "content": "<|unused_26|>",
328 "lstrip": false,
329 "normalized": false,
330 "rstrip": false,
331 "single_word": false,
332 "special": true
333 },
334 "100296": {
335 "content": "<|unused_27|>",
336 "lstrip": false,
337 "normalized": false,
338 "rstrip": false,
339 "single_word": false,
340 "special": true
341 },
342 "100297": {
343 "content": "<|unused_28|>",
344 "lstrip": false,
345 "normalized": false,
346 "rstrip": false,
347 "single_word": false,
348 "special": true
349 },
350 "100298": {
351 "content": "<|unused_29|>",
352 "lstrip": false,
353 "normalized": false,
354 "rstrip": false,
355 "single_word": false,
356 "special": true
357 },
358 "100299": {
359 "content": "<|unused_30|>",
360 "lstrip": false,
361 "normalized": false,
362 "rstrip": false,
363 "single_word": false,
364 "special": true
365 },
366 "100300": {
367 "content": "<|unused_31|>",
368 "lstrip": false,
369 "normalized": false,
370 "rstrip": false,
371 "single_word": false,
372 "special": true
373 },
374 "100301": {
375 "content": "<|unused_32|>",
376 "lstrip": false,
377 "normalized": false,
378 "rstrip": false,
379 "single_word": false,
380 "special": true
381 },
382 "100302": {
383 "content": "<|unused_33|>",
384 "lstrip": false,
385 "normalized": false,
386 "rstrip": false,
387 "single_word": false,
388 "special": true
389 },
390 "100303": {
391 "content": "<|unused_34|>",
392 "lstrip": false,
393 "normalized": false,
394 "rstrip": false,
395 "single_word": false,
396 "special": true
397 },
398 "100304": {
399 "content": "<|unused_35|>",
400 "lstrip": false,
401 "normalized": false,
402 "rstrip": false,
403 "single_word": false,
404 "special": true
405 },
406 "100305": {
407 "content": "<|unused_36|>",
408 "lstrip": false,
409 "normalized": false,
410 "rstrip": false,
411 "single_word": false,
412 "special": true
413 },
414 "100306": {
415 "content": "<|unused_37|>",
416 "lstrip": false,
417 "normalized": false,
418 "rstrip": false,
419 "single_word": false,
420 "special": true
421 },
422 "100307": {
423 "content": "<|unused_38|>",
424 "lstrip": false,
425 "normalized": false,
426 "rstrip": false,
427 "single_word": false,
428 "special": true
429 },
430 "100308": {
431 "content": "<|unused_39|>",
432 "lstrip": false,
433 "normalized": false,
434 "rstrip": false,
435 "single_word": false,
436 "special": true
437 },
438 "100309": {
439 "content": "<|unused_40|>",
440 "lstrip": false,
441 "normalized": false,
442 "rstrip": false,
443 "single_word": false,
444 "special": true
445 },
446 "100310": {
447 "content": "<|unused_41|>",
448 "lstrip": false,
449 "normalized": false,
450 "rstrip": false,
451 "single_word": false,
452 "special": true
453 },
454 "100311": {
455 "content": "<|unused_42|>",
456 "lstrip": false,
457 "normalized": false,
458 "rstrip": false,
459 "single_word": false,
460 "special": true
461 },
462 "100312": {
463 "content": "<|unused_43|>",
464 "lstrip": false,
465 "normalized": false,
466 "rstrip": false,
467 "single_word": false,
468 "special": true
469 },
470 "100313": {
471 "content": "<|unused_44|>",
472 "lstrip": false,
473 "normalized": false,
474 "rstrip": false,
475 "single_word": false,
476 "special": true
477 },
478 "100314": {
479 "content": "<|unused_45|>",
480 "lstrip": false,
481 "normalized": false,
482 "rstrip": false,
483 "single_word": false,
484 "special": true
485 },
486 "100315": {
487 "content": "<|unused_46|>",
488 "lstrip": false,
489 "normalized": false,
490 "rstrip": false,
491 "single_word": false,
492 "special": true
493 },
494 "100316": {
495 "content": "<|unused_47|>",
496 "lstrip": false,
497 "normalized": false,
498 "rstrip": false,
499 "single_word": false,
500 "special": true
501 },
502 "100317": {
503 "content": "<|unused_48|>",
504 "lstrip": false,
505 "normalized": false,
506 "rstrip": false,
507 "single_word": false,
508 "special": true
509 },
510 "100318": {
511 "content": "<|unused_49|>",
512 "lstrip": false,
513 "normalized": false,
514 "rstrip": false,
515 "single_word": false,
516 "special": true
517 },
518 "100319": {
519 "content": "<|unused_50|>",
520 "lstrip": false,
521 "normalized": false,
522 "rstrip": false,
523 "single_word": false,
524 "special": true
525 },
526 "100320": {
527 "content": "<|unused_51|>",
528 "lstrip": false,
529 "normalized": false,
530 "rstrip": false,
531 "single_word": false,
532 "special": true
533 },
534 "100321": {
535 "content": "<|unused_52|>",
536 "lstrip": false,
537 "normalized": false,
538 "rstrip": false,
539 "single_word": false,
540 "special": true
541 },
542 "100322": {
543 "content": "<|unused_53|>",
544 "lstrip": false,
545 "normalized": false,
546 "rstrip": false,
547 "single_word": false,
548 "special": true
549 },
550 "100323": {
551 "content": "<|unused_54|>",
552 "lstrip": false,
553 "normalized": false,
554 "rstrip": false,
555 "single_word": false,
556 "special": true
557 },
558 "100324": {
559 "content": "<|unused_55|>",
560 "lstrip": false,
561 "normalized": false,
562 "rstrip": false,
563 "single_word": false,
564 "special": true
565 },
566 "100325": {
567 "content": "<|unused_56|>",
568 "lstrip": false,
569 "normalized": false,
570 "rstrip": false,
571 "single_word": false,
572 "special": true
573 },
574 "100326": {
575 "content": "<|unused_57|>",
576 "lstrip": false,
577 "normalized": false,
578 "rstrip": false,
579 "single_word": false,
580 "special": true
581 },
582 "100327": {
583 "content": "<|unused_58|>",
584 "lstrip": false,
585 "normalized": false,
586 "rstrip": false,
587 "single_word": false,
588 "special": true
589 },
590 "100328": {
591 "content": "<|unused_59|>",
592 "lstrip": false,
593 "normalized": false,
594 "rstrip": false,
595 "single_word": false,
596 "special": true
597 },
598 "100329": {
599 "content": "<|unused_60|>",
600 "lstrip": false,
601 "normalized": false,
602 "rstrip": false,
603 "single_word": false,
604 "special": true
605 },
606 "100330": {
607 "content": "<|unused_61|>",
608 "lstrip": false,
609 "normalized": false,
610 "rstrip": false,
611 "single_word": false,
612 "special": true
613 },
614 "100331": {
615 "content": "<|unused_62|>",
616 "lstrip": false,
617 "normalized": false,
618 "rstrip": false,
619 "single_word": false,
620 "special": true
621 },
622 "100332": {
623 "content": "<|unused_63|>",
624 "lstrip": false,
625 "normalized": false,
626 "rstrip": false,
627 "single_word": false,
628 "special": true
629 },
630 "100333": {
631 "content": "<|unused_64|>",
632 "lstrip": false,
633 "normalized": false,
634 "rstrip": false,
635 "single_word": false,
636 "special": true
637 },
638 "100334": {
639 "content": "<|unused_65|>",
640 "lstrip": false,
641 "normalized": false,
642 "rstrip": false,
643 "single_word": false,
644 "special": true
645 },
646 "100335": {
647 "content": "<|unused_66|>",
648 "lstrip": false,
649 "normalized": false,
650 "rstrip": false,
651 "single_word": false,
652 "special": true
653 },
654 "100336": {
655 "content": "<|unused_67|>",
656 "lstrip": false,
657 "normalized": false,
658 "rstrip": false,
659 "single_word": false,
660 "special": true
661 },
662 "100337": {
663 "content": "<|unused_68|>",
664 "lstrip": false,
665 "normalized": false,
666 "rstrip": false,
667 "single_word": false,
668 "special": true
669 },
670 "100338": {
671 "content": "<|unused_69|>",
672 "lstrip": false,
673 "normalized": false,
674 "rstrip": false,
675 "single_word": false,
676 "special": true
677 },
678 "100339": {
679 "content": "<|unused_70|>",
680 "lstrip": false,
681 "normalized": false,
682 "rstrip": false,
683 "single_word": false,
684 "special": true
685 },
686 "100340": {
687 "content": "<|unused_71|>",
688 "lstrip": false,
689 "normalized": false,
690 "rstrip": false,
691 "single_word": false,
692 "special": true
693 },
694 "100341": {
695 "content": "<|unused_72|>",
696 "lstrip": false,
697 "normalized": false,
698 "rstrip": false,
699 "single_word": false,
700 "special": true
701 },
702 "100342": {
703 "content": "<|unused_73|>",
704 "lstrip": false,
705 "normalized": false,
706 "rstrip": false,
707 "single_word": false,
708 "special": true
709 },
710 "100343": {
711 "content": "<|unused_74|>",
712 "lstrip": false,
713 "normalized": false,
714 "rstrip": false,
715 "single_word": false,
716 "special": true
717 },
718 "100344": {
719 "content": "<|unused_75|>",
720 "lstrip": false,
721 "normalized": false,
722 "rstrip": false,
723 "single_word": false,
724 "special": true
725 },
726 "100345": {
727 "content": "<|unused_76|>",
728 "lstrip": false,
729 "normalized": false,
730 "rstrip": false,
731 "single_word": false,
732 "special": true
733 },
734 "100346": {
735 "content": "<|unused_77|>",
736 "lstrip": false,
737 "normalized": false,
738 "rstrip": false,
739 "single_word": false,
740 "special": true
741 },
742 "100347": {
743 "content": "<|unused_78|>",
744 "lstrip": false,
745 "normalized": false,
746 "rstrip": false,
747 "single_word": false,
748 "special": true
749 },
750 "100348": {
751 "content": "<|unused_79|>",
752 "lstrip": false,
753 "normalized": false,
754 "rstrip": false,
755 "single_word": false,
756 "special": true
757 },
758 "100349": {
759 "content": "<|unused_80|>",
760 "lstrip": false,
761 "normalized": false,
762 "rstrip": false,
763 "single_word": false,
764 "special": true
765 },
766 "100350": {
767 "content": "<|unused_81|>",
768 "lstrip": false,
769 "normalized": false,
770 "rstrip": false,
771 "single_word": false,
772 "special": true
773 },
774 "100351": {
775 "content": "<|unused_82|>",
776 "lstrip": false,
777 "normalized": false,
778 "rstrip": false,
779 "single_word": false,
780 "special": true
781 }
782 },
783 "chat_template": "{%- macro tool_to_json(tool) -%}\n {%- set ns_tool = namespace(first=true) -%}\n {{- '{' -}}\n {%- for k, v in tool.items() -%}\n {%- if k != 'defer_loading' and k != 'strict' -%}\n {%- if not ns_tool.first -%}{{- ', ' -}}{%- endif -%}\n {%- set ns_tool.first = false -%}\n {{- '\"' ~ k ~ '\": ' ~ (v | tojson(ensure_ascii=False)) -}}\n {%- endif -%}\n {%- endfor -%}\n {{- '}' -}}\n{%- endmacro -%}\n{%- set enable_thinking = enable_thinking if enable_thinking is defined else True %}\n{%- set low_effort = low_effort if low_effort is defined else False %}\n{%- if reasoning_effort is defined and reasoning_effort is not none %}\n {%- set low_effort = reasoning_effort == \"low\" %}\n{%- endif %}\n{%- set truncate_history_thinking = truncate_history_thinking if truncate_history_thinking is defined else True %}\n\n{%- set ns = namespace(last_user_idx = -1) %}\n{%- set loop_messages = messages %}\n{%- for m in loop_messages %}\n {%- if m[\"role\"] == \"user\" %}\n {%- set ns.last_user_idx = loop.index0 %}\n {%- endif %}\n{%- endfor %}\n\n{%- if messages[0][\"role\"] == \"system\" %}\n {%- set system_message = messages[0][\"content\"] %}\n {%- set loop_messages = messages[1:] %}\n{%- else %}\n {%- set system_message = \"\" %}\n {%- set loop_messages = messages %}\n{%- endif %}\n{%- if not tools is defined %}\n {%- set tools = [] %}\n{%- endif %}\n{# Recompute last_user_idx relative to loop_messages after handling system #}\n{%- set ns = namespace(last_user_idx = -1) %}\n{%- for m in loop_messages %}\n {%- if m[\"role\"] == \"user\" %}\n {%- set ns.last_user_idx = loop.index0 %}\n {%- endif %}\n{%- endfor %}\n{%- if system_message is defined %}\n {{- \"<|im_start|>system\\n\" + system_message }}\n{%- else %}\n {%- if tools is iterable and tools | length > 0 %}\n {{- \"<|im_start|>system\\n\" }}\n {%- endif %}\n{%- endif %}\n{%- if tools is iterable and tools | length > 0 %}\n {%- if system_message is defined and system_message | length > 0 %}\n {{- \"\\n\\n\" }}\n {%- endif %}\n {{- \"# Tools\\n\\nYou have access to the following functions:\\n\\n\" }}\n {{- \"<tools>\" }}\n {%- for tool in tools %}\n {%- if tool.function is defined %}\n {%- set tool = tool.function %}\n {%- endif %}\n {%- if tool.defer_loading is not defined or not tool.defer_loading %}\n {{- '\\n' ~ tool_to_json(tool) }}\n {%- endif %}\n {%- endfor %}\n {{- \"\\n</tools>\" }}\n\n {{- '\\n\\nIf you choose to call a function ONLY reply in the following format with NO suffix:\\n\\n<tool_call>\\n<function=example_function_name>\\n<parameter=example_parameter_1>\\nvalue_1\\n</parameter>\\n<parameter=example_parameter_2>\\nThis is the value for the second parameter\\nthat can span\\nmultiple lines\\n</parameter>\\n</function>\\n</tool_call>\\n\\n<IMPORTANT>\\nReminder:\\n- Function calls MUST follow the specified format: an inner <function=...></function> block must be nested within <tool_call></tool_call> XML tags\\n- Required parameters MUST be specified\\n- You may provide optional reasoning for your function call in natural language BEFORE the function call, but NOT after\\n- If there is no function call available, answer the question like normal with your current knowledge and do not tell the user about function calls\\n</IMPORTANT>' }}\n{%- endif %}\n\n\n{%- if system_message is defined %}\n {{- '<|im_end|>\\n' }}\n{%- else %}\n {%- if tools is iterable and tools | length > 0 %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n\n{%- for message in loop_messages %}\n {%- if message.role == \"assistant\" %}\n {# Add reasoning content in to content field for unified processing below. #}\n {%- if message.reasoning_content is defined and message.reasoning_content is string and message.reasoning_content | trim | length > 0 %}\n {%- set content = \"<think>\\n\" ~ message.reasoning_content ~ \"\\n</think>\\n\" ~ (message.content | default('', true)) %}\n {%- else %}\n {%- set content = message.content | default('', true) %}\n {%- if content is string -%}\n {# Allow downstream logic to to take care of broken thought, only handle coherent reasoning here. #}\n {%- if '<think>' not in content and '</think>' not in content -%}\n {%- set content = \"<think></think>\" ~ content -%}\n {%- endif -%}\n {%- else -%}\n {%- set content = content -%}\n {%- endif -%}\n {%- endif %}\n {%- if message.tool_calls is defined and message.tool_calls is iterable and message.tool_calls | length > 0 %}\n {# Assistant message has tool calls. #}\n {{- '<|im_start|>assistant\\n' }}\n {%- set include_content = not (truncate_history_thinking and loop.index0 < ns.last_user_idx) %}\n {%- if content is string and content | trim | length > 0 %}\n {%- if include_content %}\n {{- (content | trim) ~ '\\n' -}}\n {%- else %}\n {%- set c = (content | string) %}\n {%- if '</think>' in c %}\n {# Keep only content after the last closing think. Also generation prompt causes this. #}\n {%- set c = c.split('</think>')[-1] %}\n {%- elif '<think>' in c %}\n {# If <think> was opened but never closed, drop the trailing think segment #}\n {%- set c = c.split('<think>')[0] %}\n {%- endif %}\n {%- set c = \"<think></think>\" ~ c | trim %}\n {%- if c | length > 0 %}\n {{- c ~ '\\n' -}}\n {%- endif %}\n {%- endif %}\n {%- else %}\n {{- \"<think></think>\" -}}\n {%- endif %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '<tool_call>\\n<function=' ~ tool_call.name ~ '>\\n' -}}\n {%- if tool_call.arguments is defined %}\n {%- for args_name, args_value in tool_call.arguments|items %}\n {{- '<parameter=' ~ args_name ~ '>\\n' -}}\n {%- set args_value = args_value | tojson | safe if args_value is mapping or (args_value is sequence and args_value is not string) else args_value | string %}\n {{- args_value ~ '\\n</parameter>\\n' -}}\n {%- endfor %}\n {%- endif %}\n {{- '</function>\\n</tool_call>\\n' -}}\n {%- endfor %}\n {{- '<|im_end|>\\n' }}\n {%- else %}\n {# Assistant message doesn't have tool calls. #}\n {%- if not (truncate_history_thinking and loop.index0 < ns.last_user_idx) %}\n {{- '<|im_start|>assistant\\n' ~ (content | default('', true) | string | trim) ~ '<|im_end|>\\n' }}\n {%- else %}\n {%- set c = (content | default('', true) | string) %}\n {%- if '<think>' in c and '</think>' in c %}\n {%- set c = \"<think></think>\" ~ c.split('</think>')[-1] %}\n {%- endif %}\n {%- set c = c | trim %}\n {%- if c | length > 0 %}\n {{- '<|im_start|>assistant\\n' ~ c ~ '<|im_end|>\\n' }}\n {%- else %}\n {{- '<|im_start|>assistant\\n<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n {%- endif %}\n {%- elif message.role == \"user\" or message.role == \"system\" %}\n {{- '<|im_start|>' + message.role + '\\n' }}\n {%- set content = message.content | string %}\n {%- if message.role == \"user\" and loop.index0 == ns.last_user_idx and low_effort %}\n {{- content + '\\n\\n{reasoning effort: low}' }}\n {%- else %}\n {{- content }}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if loop.previtem and loop.previtem.role != \"tool\" %}\n {{- '<|im_start|>user\\n' }}\n {%- endif %}\n {{- '<tool_response>\\n' }}\n {{- message.content }}\n {{- '\\n</tool_response>\\n' }}\n {%- if not loop.last and loop.nextitem.role != \"tool\" %}\n {{- '<|im_end|>\\n' }}\n {%- elif loop.last %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- else %}\n {{- '<|im_start|>' + message.role + '\\n' + message.content + '<|im_end|>\\n' }}\n {%- endif %}\n{%- endfor %}\n\n{%- if add_generation_prompt %}\n {%- if enable_thinking %}\n {{- '<|im_start|>assistant\\n<think>\\n' }}\n {%- else %}\n {{- '<|im_start|>assistant\\n<think></think>' }}\n {%- endif %}\n{%- endif %}\n"
784 }
785