LFM2-350M-PII-Extract-JP / chat_template.jinja
AiCoderv2's picture
Upload 10 files
0f930dd verified
{{- bos_token -}}
{%- set ns = namespace(system_prompt="") -%}
{# --- 1. Extract system prompt if provided --- #}
{%- if messages[0]["role"] == "system" -%}
{%- set ns.system_prompt = messages[0]["content"] -%}
{%- set messages = messages[1:] -%}
{%- else -%}
{# --- 2. Default system prompt if none provided --- #}
{%- set ns.system_prompt = "Extract <address>, <company_name>, <email_address>, <human_name>, <phone_number>" -%}
{%- endif -%}
{# --- 3. Add tool list if any --- #}
{%- if tools -%}
{%- set ns.system_prompt = ns.system_prompt + ("
" if ns.system_prompt else "") + "List of tools: <|tool_list_start|>[" -%}
{%- for tool in tools -%}
{%- if tool is not string -%}
{%- set tool = tool | tojson -%}
{%- endif -%}
{%- set ns.system_prompt = ns.system_prompt + tool -%}
{%- if not loop.last -%}
{%- set ns.system_prompt = ns.system_prompt + ", " -%}
{%- endif -%}
{%- endfor -%}
{%- set ns.system_prompt = ns.system_prompt + "]<|tool_list_end|>" -%}
{%- endif -%}
{# --- 4. Render system prompt --- #}
{%- if ns.system_prompt -%}
{{- "<|im_start|>system\n" + ns.system_prompt + "<|im_end|>\n" -}}
{%- endif -%}
{# --- 5. Render all conversation messages --- #}
{%- for message in messages -%}
{{- "<|im_start|>" + message["role"] + "\n" -}}
{%- set content = message["content"] -%}
{%- if content is not string -%}
{%- set content = content | tojson -%}
{%- endif -%}
{%- if message["role"] == "tool" -%}
{%- set content = "<|tool_response_start|>" + content + "<|tool_response_end|>" -%}
{%- endif -%}
{{- content + "<|im_end|>\n" -}}
{%- endfor -%}
{# --- 6. Append generation prompt for assistant --- #}
{%- if add_generation_prompt -%}
{{- "<|im_start|>assistant\n" -}}
{%- endif -%}