{ "add_prefix_space": false, "added_tokens_decoder": { "200000": { "content": "]!p~[", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200001": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200002": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200003": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200004": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200005": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200006": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200007": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200008": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200009": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200010": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200011": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200012": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200013": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200014": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200015": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200016": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200017": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200018": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200019": { "content": "]~b]", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200020": { "content": "[e~[", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200021": { "content": "]!d~[", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200022": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200023": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200024": { "content": "]<]speech[>[", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200025": { "content": "]<]image[>[", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200026": { "content": "]<]video[>[", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200027": { "content": "]<]start of speech[>[", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200028": { "content": "]<]end of speech[>[", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200029": { "content": "]<]start of image[>[", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200030": { "content": "]<]end of image[>[", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200031": { "content": "]<]start of video[>[", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200032": { "content": "]<]end of video[>[", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200033": { "content": "]<]vision pad[>[", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200034": { "content": "]~!b[", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200035": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200036": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200037": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200038": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200039": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200040": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200041": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200042": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200043": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200044": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200045": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200046": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200047": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200048": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200049": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "200050": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": false }, "200051": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": false }, "200052": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": false }, "200053": { "content": "", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": false } }, "additional_special_tokens": [ "", "", "", "", "", "", "", "", "", "", "", "", "]<]speech[>[", "]<]image[>[", "]<]video[>[", "]<]start of speech[>[", "]<]end of speech[>[", "]<]start of image[>[", "]<]end of image[>[", "]<]start of video[>[", "]<]end of video[>[", "]<]vision pad[>[", "]~!b[", "", "", "", "", "", "", "", "", "[e~[", "]!d~[", "]!p~[", "]~b]", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ], "bos_token": "]~!b[", "clean_up_tokenization_spaces": false, "eos_token": "[e~[", "extra_special_tokens": {}, "model_max_length": 40960000, "tokenizer_class": "GPT2Tokenizer", "unk_token": "]!d~[", "chat_template": "{# ----------\u2011\u2011\u2011 special token variables \u2011\u2011\u2011---------- #}\n{%- set toolcall_begin_token = '' -%}\n{%- set toolcall_end_token = '' -%}\n{#- Tool Rendering Functions ============================================== -#}\n{%- macro render_tool_namespace(namespace_name, tool_list) -%}\n{%- for tool in tool_list -%}\n{{ tool.function | tojson(ensure_ascii=False) }}\n{% endfor -%}\n{%- endmacro -%}\n{%- macro visible_text(content) -%}\n {%- if content is string -%}\n {{ content }}\n {%- elif content is iterable and content is not mapping -%}\n {%- for item in content -%}\n {%- if item is mapping and item.type == 'text' -%}\n {{- item.text }}\n {%- elif item is string -%}\n {{- item }}\n {%- endif -%}\n {%- endfor -%}\n {%- else -%}\n {{- content }}\n {%- endif -%}\n{%- endmacro -%}\n{#- System Message Construction ============================================ -#}\n{%- macro build_system_message(system_message) -%}\n {%- if system_message and system_message.content -%}\n {{- visible_text(system_message.content) }}\n {%- else -%}\n {%- if model_identity is not defined -%}\n {%- set model_identity = \"You are a helpful assistant.\" -%}\n {%- endif -%}\n {{- model_identity }}\n {%- endif -%}\n \n {#- Handle current_date -#}\n {%- if system_message and system_message.current_date -%}\n {{- '\\n' ~ 'Current date: ' + system_message.current_date }}\n {%- endif -%}\n {#- Handle current_location -#}\n {%- if system_message and system_message.current_location -%}\n {{- '\\n' ~ 'Current location: ' + system_message.current_location }}\n {%- endif -%}\n{%- endmacro -%}\n{#- Main Template Logic ================================================= -#}\n{#- Extract system message (only first message if it's system) -#}\n{%- set system_message = none -%}\n{%- set conversation_messages = messages -%}\n{%- if messages and messages[0].role == \"system\" -%}\n {%- set system_message = messages[0] -%}\n {%- set conversation_messages = messages[1:] -%}\n{%- endif -%}\n{#- Get the last user message turn, for interleved thinking -#}\n{%- set ns = namespace(last_user_index=-1) %}\n{% for m in conversation_messages %}\n {%- if m.role == 'user' %}\n {% set ns.last_user_index = loop.index0 -%}\n {%- endif %}\n{%- endfor %}\n{#- Render system message -#}\n{{- ']~!b[' ~ ']~b]system' ~ '\\n' }}\n{{- build_system_message(system_message) }}\n{#- Render tools if available -#}\n{%- if tools -%}\n {{- '\\n\\n' ~ '# Tools' ~ '\\n' ~ 'You may call one or more tools to assist with the user query.\\nHere are the tools available in JSONSchema format:' ~ '\\n' }}\n {{- '\\n' ~ '' ~ '\\n' }}\n {{- render_tool_namespace(\"functions\", tools) }}\n {{- '' ~ '\\n\\n' }}\n{{- 'When making tool calls, use XML format to invoke tools and pass parameters:' ~ '\\n' }}\n{{- '\\n' ~ toolcall_begin_token }}\n\nparam-value-1\nparam-value-2\n...\n\n{{- '\\n' ~ toolcall_end_token }}\n{%- endif -%}\n{{- '[e~[\\n' }}\n\n{#- Render messages -#}\n{%- set last_tool_call = namespace(name=none) -%}\n{%- for message in conversation_messages -%}\n {%- if message.role == 'assistant' -%}\n {#- Only render reasoning_content if no user message follows -#}\n {{- ']~b]ai' ~ '\\n' }}\n\n {%- set reasoning_content = '' %}\n {%- set content = visible_text(message.content) %}\n {%- if message.reasoning_content is string %}\n {%- set reasoning_content = message.reasoning_content %}\n {%- else %}\n {%- if '' in content %}\n {%- set reasoning_content = content.split('')[0].strip('\\n').split('')[-1].strip('\\n') %}\n {%- set content = content.split('')[-1].strip('\\n') %}\n {%- endif %}\n {%- endif %}\n {%- if reasoning_content and loop.index0 > ns.last_user_index -%}\n {{- '' ~ '\\n' ~ reasoning_content ~ '\\n' ~ '' ~ '\\n\\n' }}\n {%- endif -%}\n {%- if content -%}\n {{- content }}\n {%- endif -%}\n {%- if message.tool_calls -%}\n {{- '\\n' ~ toolcall_begin_token ~ '\\n' }}\n\n {%- for tool_call in message.tool_calls -%}\n {%- if tool_call.function %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '' }}\n {% set _args = tool_call.arguments %}\n {%- for k, v in _args.items() %}\n {{- '' }}\n {{- v | tojson(ensure_ascii=False) if v is not string else v }}\n {{- '' }}\n {% endfor %}\n {{- '' ~ '\\n' }}\n {%- endfor -%}\n \n {{- toolcall_end_token}}\n {%- set last_tool_call.name = message.tool_calls[-1].name -%}\n {%- else -%}\n {%- set last_tool_call.name = none -%}\n {%- endif -%}\n {{- '[e~[' ~ '\\n' }}\n \n {%- elif message.role == 'tool' -%}\n {%- if last_tool_call.name is none -%}\n {{- raise_exception(\"Message has tool role, but there was no previous assistant message with a tool call!\") }}\n {%- endif -%}\n {%- if loop.first or (conversation_messages[loop.index0 - 1].role != 'tool') -%}\n {{- ']~b]tool' }}\n {%- endif -%}\n {%- if message.content is string -%}\n {{- '\\n' }}\n {{- message.content }}\n {{- '' }}\n {%- else -%}\n {%- for tr in message.content -%}\n {{- '\\n' }}\n {{- tr.output if tr.output is defined else (tr.text if tr.type == 'text' and tr.text is defined else tr) }}\n {{- '\\n' }}\n {%- endfor -%}\n {%- endif -%}\n {%- if loop.last or (conversation_messages[loop.index0 + 1].role != 'tool') -%}\n {{- '[e~[\\n' -}}\n {%- endif -%}\n \n {%- elif message.role == 'user' -%}\n {{- ']~b]user' ~ '\\n' }}\n {{- visible_text(message.content) }}\n {{- '[e~[' ~ '\\n' }}\n {%- endif -%}\n{%- endfor -%}\n\n{#- Generation prompt -#}\n{%- if add_generation_prompt -%}\n{{- ']~b]ai' ~ '\\n' ~ '' ~ '\\n' }}\n{%- endif -%}\n" }