guard-qwen-test / chat_template.jinja
kovsbo's picture
Upload 10 files
66cb7e0 verified
{%- set image_count = namespace(value=0) %}
{%- set video_count = namespace(value=0) %}
{%- if tools %}
{{- '<|im_start|>system
' }}
{%- if messages[0]['role'] in ['system', 'developer'] %}
{%- if messages[0]['content'] is string %}
{{- messages[0]['content'] }}
{%- else %}
{{- messages[0]['content'][0]['text'] }}
{%- endif %}
{%- set messages = messages[1:] %}
{%- else %}
{{- 'You are a helpful assistant.' }}
{%- endif %}
{{- "
# Tools
You may call one or more functions to assist with the user query.
You are provided with function signatures within <tools></tools> XML tags:
<tools>" }}
{%- for tool in tools %}
{{- "
" }}
{{- tool | tojson }}
{%- endfor %}
{{- "
</tools>
For each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags.<|im_end|>
" }}
{%- else %}
{%- if messages[0]['role'] in ['system', 'developer'] %}
{%- if messages[0]['content'] is string %}
{{- '<|im_start|>system
' + messages[0]['content'] + '<|im_end|>
' }}
{%- else %}
{{- '<|im_start|>system
' + messages[0]['content'][0]['text'] + '<|im_end|>
' }}
{%- endif %}
{%- set messages = messages[1:] %}
{%- else %}
{{- '<|im_start|>system
You are a helpful assistant.<|im_end|>
' }}
{%- endif %}
{%- endif %}
{%- for message in messages %}
{%- if not (message.role == 'tool' or 'tool_calls' in message) %}
{{- '<|im_start|>' + message.role }}
{%- if message['content'] is string %}
{{- '
' + message['content'] }}
{%- else %}
{%- for content in message['content'] %}
{%- if content['type'] == 'image' or content['type'] == 'image_url' %}
{%- set image_count.value = image_count.value + 1 %}
{{- '
Picture ' + image_count.value|string + ': ' }}
{{- '<|vision_start|><|image_pad|><|vision_end|>' }}
{%- elif content['type'] == 'video' or content['type'] == 'video_url' %}
{%- set video_count.value = video_count.value + 1 %}
{{- '
Video ' + video_count.value|string + ': ' }}
{{- '<|vision_start|><|video_pad|><|vision_end|>' }}
{%- elif 'text' in content %}
{{- '
' + content['text'] }}
{%- endif %}
{%- endfor %}
{%- endif %}
{{- '<|im_end|>
' }}
{%- elif 'tool_calls' in message %}
{{- '<|im_start|>' + message.role }}
{%- for tool_call in message.tool_calls %}
{%- if tool_call.function is defined %}
{%- set tool_call = tool_call.function %}
{%- endif %}
{{- '
<tool_call>
{"name": "' }}
{{- tool_call.name }}
{{- '", "arguments": ' }}
{{- tool_call.arguments | tojson }}
{{- '}
</tool_call>' }}
{%- endfor %}
{{- '<|im_end|>
' }}
{%- elif message.role == "tool" %}
{%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != "tool") %}
{{- '<|im_start|>user' }}
{%- endif %}
{{- '
<tool_response>
' }}
{{- message.content }}
{{- '
</tool_response>' }}
{%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}
{{- '<|im_end|>
' }}
{%- endif %}
{%- endif %}
{%- endfor %}
{%- if add_generation_prompt %}
{{- '<|im_start|>assistant
' }}
{%- endif %}