DeepSeek-Prover-V1.5-Base / chat_template.jinja
HangHor's picture
Upload chat_template.jinja
4c62fa4 verified
{%- if not add_generation_prompt is defined -%}
{%- set add_generation_prompt = false -%}
{%- endif -%}
{%- set ns = namespace(is_first=false, is_tool=false, is_output_first=true, system_prompt="", is_first_sp=true, is_last_user=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 + "
" + message["content"] -%}
{%- endif -%}
{%- endif -%}
{%- endfor -%}
{{- bos_token -}}
{{- ns.system_prompt -}}
{%- for message in messages -%}
{%- set content = message["content"] -%}
{%- if message["role"] == "user" -%}
{%- set ns.is_tool = false -%}
{%- set ns.is_first = false -%}
{%- set ns.is_last_user = true -%}
{{- "<|User|>" + content -}}
{%- endif -%}
{%- if message["role"] == "assistant" -%}
{%- if "</think>" in content -%}
{%- set content = content.split("</think>")[-1] -%}
{%- endif -%}
{{- "<|assistant|>" -}}
{%- endif -%}
{%- if message["role"] == "assistant" and message["tool_calls"] is defined and message["tool_calls"] is not none -%}
{%- set ns.is_last_user = false -%}
{%- if ns.is_tool -%}
{{- "<|tool▁outputs▁end|>" -}}
{%- endif -%}
{%- set ns.is_first = false -%}
{%- set ns.is_tool = false -%}
{%- set ns.is_output_first = true -%}
{%- for tool in message["tool_calls"] -%}
{%- if not ns.is_first -%}
{%- if content is none -%}
{{- "<|tool▁calls▁begin|><|tool▁call▁begin|>" + tool["type"] + "<|tool▁sep|>" + tool["function"]["name"] + "
" + "```json" + "
" + tool["function"]["arguments"] + "
" + "```" + "<|tool▁call▁end|>" -}}
{%- else -%}
{{- content + "<|tool▁calls▁begin|><|tool▁call▁begin|>" + tool["type"] + "<|tool▁sep|>" + tool["function"]["name"] + "
" + "```json" + "
" + tool["function"]["arguments"] + "
" + "```" + "<|tool▁call▁end|>" -}}
{%- endif -%}
{%- set ns.is_first = true -%}
{%- else -%}
{{- "
" + "<|tool▁call▁begin|>" + tool["type"] + "<|tool▁sep|>" + tool["function"]["name"] + "
" + "```json" + "
" + 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) -%}
{%- set ns.is_last_user = false -%}
{%- if ns.is_tool -%}
{{- "<|tool▁outputs▁end|>" + content + "<|end▁of▁sentence|>" -}}
{%- set ns.is_tool = false -%}
{%- else -%}
{{- content + "<|end▁of▁sentence|>" -}}
{%- endif -%}
{%- endif -%}
{%- if message["role"] == "tool" -%}
{%- set ns.is_last_user = false -%}
{%- set ns.is_tool = true -%}
{%- if ns.is_output_first -%}
{{- "<|tool▁outputs▁begin|><|tool▁output▁begin|>" + content + "<|tool▁output▁end|>" -}}
{%- set ns.is_output_first = false -%}
{%- else -%}
{{- "
<|tool▁output▁begin|>" + content + "<|tool▁output▁end|>" -}}
{%- endif -%}
{%- endif -%}
{%- endfor -%}
{%- if ns.is_tool -%}
{{- "<|tool▁outputs▁end|>" -}}
{%- endif -%}
{%- if add_generation_prompt and ns.is_last_user and not ns.is_tool -%}
{{- "<|Assistant|>" -}}
{%- endif -%}