Files
qwen3-8b-psychai-merged/chat_template.jinja
ModelHub XC daa6d8da57 初始化项目,由ModelHub XC社区提供模型
Model: kavin-ravi/qwen3-8b-psychai-merged
Source: Original Platform
2026-06-13 17:15:40 +08:00

104 lines
5.8 KiB
Django/Jinja
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{%- if tools %}
{%- if messages[0].role == 'system' %}
{{ '<|im_start|>system\n' + messages[0].content + '<|im_end|>\n' }}
{%- else %}
{{ '<|im_start|>system\n'
+ 'You are “PsychAI,” a compassionate coach who supports teens dealing with anxiety, mood dips, and everyday stresses. '
+ 'Always validate the users feelings and invite self-reflection before offering guidance. Share coping ideas, grounding techniques, or resources, '
+ 'but never diagnose, prescribe medication, or promise confidentiality. When you suspect safety risks or crises, encourage the teen to reach out to a trusted adult '
+ 'or emergency professional immediately. Keep replies in one or two conversational paragraphs (no bullet lists unless the user explicitly asks), avoid clinical jargon, '
+ 'and sound warm, hopeful, and practical. End by inviting the user to share how the suggestion felt or ask a follow-up question.'
+ '<|im_end|>\n' }}
{%- endif %}
{{- "# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>" }}
{%- for tool in tools %}
{{- "\n" }}
{{- tool | tojson }}
{%- endfor %}
{{- "\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n" }}
{%- else %}
{%- if messages[0].role == 'system' %}
{{ '<|im_start|>system\n' + messages[0].content + '<|im_end|>\n' }}
{%- else %}
{{ '<|im_start|>system\n'
+ 'You are “PsychAI,” a compassionate coach who supports teens dealing with anxiety, mood dips, and everyday stresses. '
+ 'Always validate the users feelings and invite self-reflection before offering guidance. Share coping ideas, grounding techniques, or resources, '
+ 'but never diagnose, prescribe medication, or promise confidentiality. When you suspect safety risks or crises, encourage the teen to reach out to a trusted adult '
+ 'or emergency professional immediately. Keep replies in one or two conversational paragraphs (no bullet lists unless the user explicitly asks), avoid clinical jargon, '
+ 'and sound warm, hopeful, and practical. End by inviting the user to share how the suggestion felt or ask a follow-up question.'
+ '<|im_end|>\n' }}
{%- endif %}
{%- endif %}
{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
{%- for message in messages[::-1] %}
{%- set index = (messages|length - 1) - loop.index0 %}
{%- if ns.multi_step_tool and message.role == "user" and message.content is string and not(message.content.startswith('<tool_response>') and message.content.endswith('</tool_response>')) %}
{%- set ns.multi_step_tool = false %}
{%- set ns.last_query_index = index %}
{%- endif %}
{%- endfor %}
{%- for message in messages %}
{%- if message.content is string %}
{%- set content = message.content %}
{%- else %}
{%- set content = '' %}
{%- endif %}
{%- if (message.role == "user") or (message.role == "system" and not loop.first) %}
{{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
{%- elif message.role == "assistant" %}
{%- set reasoning_content = '' %}
{%- if message.reasoning_content is string %}
{%- set reasoning_content = message.reasoning_content %}
{%- else %}
{%- if '</think>' in content %}
{%- set reasoning_content = content.split('</think>')[0].rstrip('\n').split('<think>')[-1].lstrip('\n') %}
{%- set content = content.split('</think>')[-1].lstrip('\n') %}
{%- endif %}
{%- endif %}
{%- if loop.index0 > ns.last_query_index %}
{%- if loop.last or (not loop.last and reasoning_content) %}
{{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content.strip('\n') + '\n</think>\n\n' + content.lstrip('\n') }}
{%- else %}
{{- '<|im_start|>' + message.role + '\n' + content }}
{%- endif %}
{%- else %}
{{- '<|im_start|>' + message.role + '\n' + content }}
{%- endif %}
{%- if message.tool_calls %}
{%- for tool_call in message.tool_calls %}
{%- if (loop.first and content) or (not loop.first) %}
{{- '\n' }}
{%- endif %}
{%- if tool_call.function %}
{%- set tool_call = tool_call.function %}
{%- endif %}
{{- '<tool_call>\n{"name": "' }}
{{- tool_call.name }}
{{- '", "arguments": ' }}
{%- if tool_call.arguments is string %}
{{- tool_call.arguments }}
{%- else %}
{{- tool_call.arguments | tojson }}
{%- endif %}
{{- '}\n</tool_call>' }}
{%- endfor %}
{%- endif %}
{{- '<|im_end|>\n' }}
{%- elif message.role == "tool" %}
{%- if loop.first or (messages[loop.index0 - 1].role != "tool") %}
{{- '<|im_start|>user' }}
{%- endif %}
{{- '\n<tool_response>\n' }}
{{- content }}
{{- '\n</tool_response>' }}
{%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}
{{- '<|im_end|>\n' }}
{%- endif %}
{%- endif %}
{%- endfor %}
{%- if add_generation_prompt %}
{{- '<|im_start|>assistant\n' }}
{%- if enable_thinking is defined and enable_thinking is false %}
{{- '<think>\n\n</think>\n\n' }}
{%- endif %}
{%- endif %}