|
{{- bos_token -}} |
|
{%- set system_prompt = "" -%} |
|
{%- set ns = namespace(system_prompt="") -%} |
|
{%- if messages[0]["role"] == "system" -%} |
|
{%- set ns.system_prompt = messages[0]["content"] -%} |
|
{%- set messages = messages[1:] -%} |
|
{%- endif -%} |
|
{%- if tools -%} |
|
{%- set ns.system_prompt = ns.system_prompt + ("\n" 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 -%} |
|
{%- if ns.system_prompt -%} |
|
{{- "<|im_start|>system\n" + ns.system_prompt + "<|im_end|>\n" -}} |
|
{%- endif -%} |
|
{%- 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 -%} |
|
{%- if add_generation_prompt -%} |
|
{{- "<|im_start|>assistant\n" -}} |
|
{%- endif -%} |