1{{- bos_token -}}
 2{%- set system_prompt = "" -%}
 3{%- set ns = namespace(system_prompt="") -%}
 4{%- if messages[0]["role"] == "system" -%}
 5	{%- set ns.system_prompt = messages[0]["content"] -%}
 6	{%- set messages = messages[1:] -%}
 7{%- endif -%}
 8{%- if tools -%}
 9	{%- set ns.system_prompt = ns.system_prompt + ("\n" if ns.system_prompt else "") + "List of tools: <|tool_list_start|>[" -%}
10	{%- for tool in tools -%}
11		{%- if tool is not string -%}
12			{%- set tool = tool | tojson -%}
13		{%- endif -%}
14		{%- set ns.system_prompt = ns.system_prompt + tool -%}
15		{%- if not loop.last -%}
16			{%- set ns.system_prompt = ns.system_prompt + ", " -%}
17		{%- endif -%}
18	{%- endfor -%}
19	{%- set ns.system_prompt = ns.system_prompt + "]<|tool_list_end|>" -%}
20{%- endif -%}
21{%- if ns.system_prompt -%}
22	{{- "<|im_start|>system\n" + ns.system_prompt + "<|im_end|>\n" -}}
23{%- endif -%}
24{%- for message in messages -%}
25	{{- "<|im_start|>" + message["role"] + "\n" -}}
26	{%- set content = message["content"] -%}
27	{%- if content is not string -%}
28		{%- set content = content | tojson -%}
29	{%- endif -%}
30	{%- if message["role"] == "tool" -%}
31		{%- set content = "<|tool_response_start|>" + content + "<|tool_response_end|>" -%}
32	{%- endif -%}
33	{{- content + "<|im_end|>\n" -}}
34{%- endfor -%}
35{%- if add_generation_prompt -%}
36	{{- "<|im_start|>assistant\n" -}}
37{%- endif -%}