ChatTemplate / chat_template.jinja
menesnas's picture
Upload folder using huggingface_hub
5a4ba7f verified
Raw
History Blame Contribute Delete
2.38 kB
{#-
Pharmacy Prompt Serialization Format (PPSF) v1.0 / v1.1
Supported roles:
system -> @SYSTEM
user -> @PATIENT (with optional @REFERENCE via metadata)
assistant -> @PHARMACIST (with optional @THOUGHT via metadata)
tool -> @TOOL_RESPONSE
Tool Calling:
tools -> @TOOLS
tool_calls -> @TOOL_CALL
Copyright:
PPSF v1.0
-#}
{{- "@FORMAT PPSF/1.0\n\n" -}}
{#- ===========================
SYSTEM MESSAGE
=========================== -#}
{%- if messages and messages[0]["role"] == "system" -%}
@SYSTEM
{{ messages[0]["content"] | trim }}
{% endif -%}
{#- ===========================
TOOL DEFINITIONS
=========================== -#}
{%- if tools -%}
@TOOLS
Available tools:
{% for tool in tools -%}
{{ tool | tojson }}
{% endfor %}
To invoke a tool respond ONLY with:
@TOOL_CALL
{
"name": "...",
"arguments": { ... }
}
{% endif -%}
{#- ===========================
CHAT HISTORY
=========================== -#}
{%- for message in messages -%}
{%- if loop.first and message["role"] == "system" -%}
{# Handled in system block #}
{%- elif message["role"] == "user" -%}
{%- set ref = message.get("reference") or (message.get("metadata") and message.metadata.get("reference")) -%}
{%- if ref -%}
@REFERENCE
{{ ref | trim }}
{% endif -%}
@PATIENT
{{ message["content"] | trim }}
{% elif message["role"] == "assistant" -%}
{%- set thought = message.get("thought") or (message.get("metadata") and message.metadata.get("thought")) -%}
{%- if thought -%}
@THOUGHT
{{ thought | trim }}
{% endif -%}
{%- if message.get("content") -%}
@PHARMACIST
{{ message["content"] | trim }}
{% endif -%}
{%- if message.get("tool_calls") -%}
{%- for tc in message["tool_calls"] -%}
@TOOL_CALL
{
"name": {{ tc["function"]["name"] | tojson }},
"arguments": {{ tc["function"]["arguments"] if tc["function"]["arguments"] is string else (tc["function"]["arguments"] | tojson) }}
}
{% endfor -%}
{%- endif -%}
{%- elif message["role"] == "tool" -%}
@TOOL_RESPONSE
{{ message["content"] | trim }}
{% endif -%}
{%- endfor -%}
{#- ===========================
GENERATION PROMPT
=========================== -#}
{%- if add_generation_prompt -%}
@PHARMACIST
{%- endif -%}