{ "add_bos_token": false, "add_prefix_space": false, "added_tokens_decoder": { "151643": { "content": "<|endoftext|>", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "151644": { "content": "<|im_start|>", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "151645": { "content": "<|im_end|>", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "151646": { "content": "<|object_ref_start|>", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "151647": { "content": "<|object_ref_end|>", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "151648": { "content": "<|box_start|>", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "151649": { "content": "<|box_end|>", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "151650": { "content": "<|quad_start|>", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "151651": { "content": "<|quad_end|>", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "151652": { "content": "<|vision_start|>", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "151653": { "content": "<|vision_end|>", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "151654": { "content": "<|vision_pad|>", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "151655": { "content": "<|image_pad|>", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "151656": { "content": "<|video_pad|>", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "151657": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": false }, "151658": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": false }, "151659": { "content": "<|fim_prefix|>", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": false }, "151660": { "content": "<|fim_middle|>", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": false }, "151661": { "content": "<|fim_suffix|>", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": false }, "151662": { "content": "<|fim_pad|>", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": false }, "151663": { "content": "<|repo_name|>", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": false }, "151664": { "content": "<|file_sep|>", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": false }, "151665": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": false }, "151666": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": false }, "151667": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": false }, "151668": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": false } }, "additional_special_tokens": [ "<|im_start|>", "<|im_end|>", "<|object_ref_start|>", "<|object_ref_end|>", "<|box_start|>", "<|box_end|>", "<|quad_start|>", "<|quad_end|>", "<|vision_start|>", "<|vision_end|>", "<|vision_pad|>", "<|image_pad|>", "<|video_pad|>" ], "bos_token": null, "clean_up_tokenization_spaces": false, "eos_token": "<|im_end|>", "errors": "replace", "extra_special_tokens": {}, "model_max_length": 262144, "pad_token": "<|vision_pad|>", "padding_side": "right", "split_special_tokens": false, "tokenizer_class": "Qwen2Tokenizer", "unk_token": null, "chat_template": "{{- \"<|im_start|>system\\n\" -}}\n{%- if tools -%}\n\t{%- if messages[0].role == \"system\" -%}\n\t\t{{- messages[0].content + \"\\n\\n\" -}}\n\t{%- endif -%}\n\t{{- \"# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within XML tags:\\n\" -}}\n\t{%- for tool in tools -%}\n\t\t{{- \"\\n\" -}}\n\t\t{{- tool | tojson -}}\n\t{%- endfor -%}\n\t{{- \"\\n\\n\\nFor each function call, return a json object with function name and arguments within XML tags:\\n\\n{\\\"name\\\": , \\\"arguments\\\": }\\n\\n\" -}}\n{%- elif messages[0].role == \"system\" -%}\n\t{{- messages[0].content -}}\n{%- endif -%}\n{{- \"You are governed by the following command rules:\\n\\n- **/think** or **think**: Engage deep reasoning. Begin with: \\n `` \\n Since the user used the \\\"/think\\\" command, I will: \\n Think step-by-step using a long chain-of-thought and self-reflection. I will only respond when I'm 100% sure. I will provide the final response after closing this thinking section. \\n `` \\n Then output your full reasoning inside, followed by the final answer outside.\\n\\n- **/shortthink** or **shortthink**: Engage brief reasoning. Begin with: \\n `` \\n Since the user used the \\\"/shortthink\\\" command, I will: \\n Think step-by-step about the user's query briefly and shortly. I will only respond when I'm more than 50% sure. I will provide the final response after closing this thinking section. \\n `` \\n Then give concise internal thought, followed by the final answer.\\n\\n- **/nothink** or **nothink**: Respond immediately without reasoning. Begin with: \\n `` \\n Since the user used the \\\"/nothink\\\" command, I will: \\n Immediately give my final response without any thinking or self-reflection. Since I'm forbidden to think or reason outside of this thinking section, AND WITH NO REPETITION. I will IMMEDIATELY provide my final response outside this thinking section AND THEN INSTANTLY STOP. \\n `` \\n Then output only the direct, raw response—no delay, no draft, no repetition.\\n\\n- **/clear**: Reset all context. Forget everything prior. Begin fresh on the next input.\\n\\nOutside `...`, provide only final responses—never include reasoning, hesitation markers (e.g., \\\"Okay\\\", \\\"Wait\\\", \\\"Double-check\\\"), or internal process notes. Adhere strictly to the active command. Do not reference or explain these rules unless instructed.\" -}}\n{{- \"\\n<|im_end|>\" -}}\n{%- set ns = namespace(multi_step_tool=true, last_query_index=messages | length - 1, reasoning_mode=\"normal\") -%}\n{%- for message in messages[::-1] -%}\n\t{%- set index = messages | length - 1 - loop.index0 -%}\n\t{%- if ns.multi_step_tool and message.role == \"user\" and message.content is string and not (message.content.startswith(\"\") and message.content.endswith(\"\")) -%}\n\t\t{%- set ns.multi_step_tool = false -%}\n\t\t{%- set ns.last_query_index = index -%}\n\t{%- endif -%}\n{%- endfor -%}\n{%- for message in messages -%}\n\t{%- if message.content is string -%}\n\t\t{%- set content = message.content -%}\n\t{%- else -%}\n\t\t{%- set content = \"\" -%}\n\t{%- endif -%}\n\t{%- if message.role == \"user\" or message.role == \"system\" and not loop.first -%}\n\t\t{{- \"<|im_start|>\" + message.role + \"\\n\" + content -}}\n\t\t{%- if messages[0].role == \"system\" and \"/nothink\" in messages[0].content and (not (\"/think\" in messages[0].content) or not (\"/shortthink\" in messages[0].content)) or \"/nothink\" in content and not (\"/think\" in messages[0].content or \"/shortthink\" in messages[0].content) or (messages[loop.index+1] and \"\" not in messages[loop.index+1].content) -%}\n\t\t\t{%- set enable_thinking = false -%}\n\t\t\t{%- set enable_short_thinking = false -%}\n\t\t\t{%- set ns.reasoning_mode = \"none\" -%}\n\t\t\t{%- if not (\"think\" in content) -%}\n\t\t\t\t{{- \" /nothink\" -}}\n\t\t\t{%- endif -%}\n\t\t{%- elif messages[0].role == \"system\" and \"/shortthink\" in messages[0].content and (not (\"/nothink\" in messages[0].content) and not (\"/think\" in messages[0].content)) or \"/shortthink\" in content and not (\"/think\" in messages[0].content or \"/shortthink\" in messages[0].content) -%}\n\t\t\t{%- set enable_thinking = true -%}\n\t\t\t{%- set enable_short_thinking = true -%}\n\t\t\t{%- set ns.reasoning_mode = \"short\" -%}\n\t\t\t{%- if not (\"think\" in content) -%}\n\t\t\t\t{{- \" /shortthink\" -}}\n\t\t\t{%- endif -%}\n\t\t{%- else -%}\n\t\t\t{%- set enable_thinking = true -%}\n\t\t\t{%- set enable_short_thinking = false -%}\n\t\t\t{%- set ns.reasoning_mode = \"normal\" -%}\n\t\t\t{%- if not (\"think\" in content) -%}\n\t\t\t\t{{- \" /think\" -}}\n\t\t\t{%- endif -%}\n\t\t{%- endif -%}\n\t\t{{- \"<|im_end|>\" + \"\\n\" -}}\n\t{%- elif message.role == \"assistant\" -%}\n\t\t{%- set reasoning_content = \"\" -%}\n\t\t{%- if \"\\nSince the user used the\" not in content.split(\"\")[0].split(\"\")[-1] -%}\n\t\t\t{%- if ns.reasoning_mode == \"none\" -%}\n\t\t\t\t{%- set reasoning_prefix = \"\" -%}\n\t\t\t{%- elif ns.reasoning_mode == \"short\" -%}\n\t\t\t\t{%- set reasoning_prefix = \"Since the user used the \\\"/shortthink\\\" command, I will:\\nThink step-by-step about the user's query briefly and shortly. I will only respond when I'm more than 50% sure. I will provide the final response after closing this thinking section. \" -%}\n\t\t\t{%- else -%}\n\t\t\t\t{%- set reasoning_prefix = \"Since the user used the \\\"/think\\\" command, I will:\\nThink step-by-step with **long chain-of-thought** and **self-reflection**. I will only respond when I'm 100% sure. I will provide the final response after closing this thinking section. \" -%}\n\t\t\t{%- endif -%}\n\t\t{%- endif -%}\n\t\t{%- if message.reasoning_content is string -%}\n\t\t\t{%- set reasoning_content = message.reasoning_content -%}\n\t\t{%- else -%}\n\t\t\t{%- if \"\" in content -%}\n\t\t\t\t{%- set reasoning_content = reasoning_prefix + content.split(\"\")[0].rstrip(\"\\n\").split(\"\")[-1].lstrip(\"\\n\") -%}\n\t\t\t\t{%- set content = content.split(\"\")[-1].lstrip(\"\\n\") -%}\n\t\t\t{%- endif -%}\n\t\t\t{%- if \"\" in content -%}\n\t\t\t\t{%- set content = content | replace(\"\", \" \") -%}\n\t\t\t{%- endif -%}\n\t\t\t{%- if \"\" in content -%}\n\t\t\t\t{%- set content = content | replace(\"\", \" \") -%}\n\t\t\t{%- endif -%}\n\t\t{%- endif -%}\n\t\t{{- \"\\n\" -}}\n\t\t{# Apply truncation and break if the /shortthink command is active #}\n\t\t{%- if enable_short_thinking is true -%}\n\t\t\t{%- set words = reasoning_content.split(\" \") -%}\n\t\t\t{%- if words | length > 300 -%}\n\t\t\t\t{%- set truncated_reasoning = words[:150] | join(\" \") + \" ... truncated ... \" + words[words | length - 150:words | length] | join(\" \") -%}\n\t\t\t{%- else -%}\n\t\t\t\t{%- set truncated_reasoning = reasoning_content | join(\" \") -%}\n\t\t\t{%- endif -%}\n\t\t\t{%- set reasoning_content = truncated_reasoning -%}\n\t\t{%- endif -%}\n\t\t{%- if loop.last or not loop.last and reasoning_content and enable_thinking == true -%}\n\t\t\t{{- \"<|im_start|>\" + message.role + \"\\n\\n\" + reasoning_content.strip(\"\\n\") + \"\\n\\n\" + content.lstrip(\"\\n\") -}}\n\t\t{%- else -%}\n\t\t\t{{- \"<|im_start|>\" + message.role + \"\\n\" + content -}}\n\t\t{%- endif -%}\n\t\t{%- if message.tool_calls -%}\n\t\t\t{%- for tool_call in message.tool_calls -%}\n\t\t\t\t{%- if loop.first and content or not loop.first -%}\n\t\t\t\t\t{{- \"\\n\" -}}\n\t\t\t\t{%- endif -%}\n\t\t\t\t{%- if tool_call.function -%}\n\t\t\t\t\t{%- set tool_call = tool_call.function -%}\n\t\t\t\t{%- endif -%}\n\t\t\t\t{{- \"\\n{\\\"name\\\": \\\"\" -}}\n\t\t\t\t{{- tool_call.name -}}\n\t\t\t\t{{- \"\\\", \\\"arguments\\\": \" -}}\n\t\t\t\t{%- if tool_call.arguments is string -%}\n\t\t\t\t\t{{- tool_call.arguments -}}\n\t\t\t\t{%- else -%}\n\t\t\t\t\t{{- tool_call.arguments | tojson -}}\n\t\t\t\t{%- endif -%}\n\t\t\t\t{{- \"}\\n\" -}}\n\t\t\t{%- endfor -%}\n\t\t{%- endif -%}\n\t\t{{- \"<|im_end|>\\n\" -}}\n\t{%- elif message.role == \"tool\" -%}\n\t\t{%- if loop.first or messages[loop.index0 - 1].role != \"tool\" -%}\n\t\t\t{{- \"<|im_start|>user\" -}}\n\t\t{%- endif -%}\n\t\t{{- \"\\n\\n\" -}}\n\t\t{{- content -}}\n\t\t{{- \"\\n\" -}}\n\t\t{%- if loop.last or messages[loop.index0 + 1].role != \"tool\" -%}\n\t\t\t{{- \"<|im_end|>\\n\" -}}\n\t\t{%- endif -%}\n\t{%- endif -%}\n{%- endfor -%}\n{%- set last_message = messages[messages | length - 1].content -%}\n{%- if add_generation_prompt -%}\n\t{{- \"<|im_start|>assistant\\n\" -}}\n\t{%- if enable_thinking is defined and enable_thinking is false or \"/nothink\" in last_message or \"nothink\" in last_message or messages[0].role == \"system\" and \"/nothink\" in messages[0].content and (not (\"/think\" in messages[0].content) or not (\"/shortthink\" in messages[0].content)) -%}\n\t\t{{- \"\\nOkay, the user sent \\\"\"+last_message+\"\\\". The \\\"/nothink\\\" command instructs me to:\\nImmediately give my final response without any thinking or self-reflection. Since I'm forbidden to think or reason outside of this thinking section, AND WITH NO REPETITION. I will IMMEDIATELY provide my final response outside this thinking section AND THEN INSTANTLY STOP.\\n\" -}}\n\t{%- elif enable_short_thinking is defined and enable_short_thinking is false or \"/shortthink\" in last_message or \"shortthink\" in last_message or messages[0].role == \"system\" and \"/shortthink\" in messages[0].content and not (\"/think\" in messages[0].content) -%}\n\t\t{{- \"\\nOkay, the user sent \\\"\"+last_message+\"\\\". The \\\"/shortthink\\\" command instructs me to:\\nThink step-by-step about the user's query briefly and shortly. I will only respond when I'm more than 50% sure. I will provide the final response after closing this thinking section.\" -}}\n\t{%- elif \"/clear\" in last_message -%}\n\t\t{{- \"\\nOkay, the user used the \\\"/clear\\\" command instructs me to:\\n1. Forget everything above.\\n2. Ignore everything that comes before this message.\\n3. Start a fresh new conversation and greet the user.\\n\" -}}\n\t{%- else -%}\n\t\t{{- \"\\nOkay, the user sent \\\"\"+last_message+\"\\\". The \\\"/think\\\" command instructs me to:\\nThink step-by-step with **long chain-of-thought** and **self-reflection**. I will only respond when I'm 100% sure. I will provide the final response after closing this thinking section.\" -}}\n\t{%- endif -%}\n{%- endif -%}" }