Created
October 7, 2025 23:38
-
-
Save createthis/1467af177656a034f14ae01053a714f9 to your computer and use it in GitHub Desktop.
DeepSeek V3.2-Exp chat_template.jinja
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| {% if not add_generation_prompt is defined %} | |
| {% set add_generation_prompt = false %} | |
| {% endif %} | |
| {% if not thinking is defined %} | |
| {% set thinking = false %} | |
| {% endif %} | |
| {% set ns = namespace(is_first=false, is_tool=false, system_prompt='', is_first_sp=true, is_last_user=false, is_only_sys=false, is_prefix=false) %} | |
| {%- for message in messages %} | |
| {%- if message['role'] == 'system' %} | |
| {%- if ns.is_first_sp %} | |
| {% set ns.system_prompt = ns.system_prompt + message['content'] %} | |
| {% set ns.is_first_sp = false %} | |
| {%- else %} | |
| {% set ns.system_prompt = ns.system_prompt + '\n\n' + message['content'] %} | |
| {%- endif %} | |
| {% set ns.is_only_sys = true %} | |
| {%- endif %} | |
| {%- endfor %} | |
| {{ bos_token }} | |
| {{ ns.system_prompt }} | |
| {%- for message in messages %} | |
| {%- if message['role'] == 'user' %} | |
| {%- set ns.is_tool = false -%} | |
| {%- set ns.is_first = false -%} | |
| {%- set ns.is_last_user = true -%} | |
| {{'<|User|>' + message['content']}} | |
| {%- endif %} | |
| {%- if message['role'] == 'assistant' and message['tool_calls'] is defined and message['tool_calls'] is not none %} | |
| {%- if ns.is_last_user or ns.is_only_sys %} | |
| {{'<|Assistant|></think>'}} | |
| {%- endif %} | |
| {%- set ns.is_last_user = false -%} | |
| {%- set ns.is_first = false %} | |
| {%- set ns.is_tool = false -%} | |
| {%- for tool in message['tool_calls'] %} | |
| {%- if not ns.is_first %} | |
| {%- if message['content'] is none %} | |
| {{'<|tool▁calls▁begin|><|tool▁call▁begin|>'+ tool['function']['name'] + '<|tool▁sep|>' + tool['function']['arguments'] + '<|tool▁call▁end|>'}} | |
| {%- else %} | |
| {{message['content'] + '<|tool▁calls▁begin|><|tool▁call▁begin|>' + tool['function']['name'] + '<|tool▁sep|>' + tool['function']['arguments'] + '<|tool▁call▁end|>'}} | |
| {%- endif %} | |
| {%- set ns.is_first = true -%} | |
| {%- else %} | |
| {{'<|tool▁call▁begin|>'+ tool['function']['name'] + '<|tool▁sep|>' + tool['function']['arguments'] + '<|tool▁call▁end|>'}} | |
| {%- endif %} | |
| {%- endfor %} | |
| {{'<|tool▁calls▁end|><|end▁of▁sentence|>'}} | |
| {%- endif %} | |
| {%- if message['role'] == 'assistant' and (message['tool_calls'] is not defined or message['tool_calls'] is none) %} | |
| {%- if ns.is_last_user %} | |
| {{'<|Assistant|>'}} | |
| {%- if message['prefix'] is defined and message['prefix'] and thinking %} | |
| {{'<think>'}} | |
| {%- else %} | |
| {{'</think>'}} | |
| {%- endif %} | |
| {%- endif %} | |
| {%- if message['prefix'] is defined and message['prefix'] %} | |
| {%- set ns.is_prefix = true -%} | |
| {%- endif %} | |
| {%- set ns.is_last_user = false -%} | |
| {%- if ns.is_tool %} | |
| {{message['content'] + '<|end▁of▁sentence|>'}} | |
| {%- set ns.is_tool = false -%} | |
| {%- else %} | |
| {%- set content = message['content'] -%} | |
| {%- if '</think>' in content %} | |
| {%- set content = content.split('</think>', 1)[1] -%} | |
| {%- endif %} | |
| {{content + '<|end▁of▁sentence|>'}} | |
| {%- endif %} | |
| {%- endif %} | |
| {%- if message['role'] == 'tool' %} | |
| {%- set ns.is_last_user = false -%} | |
| {%- set ns.is_tool = true -%} | |
| {{'<|tool▁output▁begin|>' + message['content'] + '<|tool▁output▁end|>'}} | |
| {%- endif %} | |
| {%- if message['role'] != 'system' %} | |
| {% set ns.is_only_sys = false %} | |
| {%- endif %} | |
| {%- endfor -%} | |
| {% if add_generation_prompt and not ns.is_tool%} | |
| {% if ns.is_last_user or ns.is_only_sys or not ns.is_prefix %} | |
| {{'<|Assistant|>'}} | |
| {%- if not thinking %} | |
| {{'</think>'}} | |
| {%- else %} | |
| {{'<think>'}} | |
| {%- endif %} | |
| {% endif %} | |
| {% endif %} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment