{%- if not add_generation_prompt is defined -%} {%- set add_generation_prompt = false -%} {%- endif -%} {%- set ns = namespace(is_first=false, is_tool=false, is_output_first=true, system_prompt="", is_first_sp=true) -%} {%- for message in messages -%} {%- if message["role"] == "system" -%} {%- if ns.is_first_sp -%} {%- set ns.system_prompt = ns.system_prompt + message["content"] -%} {%- set ns.is_first_sp = false -%} {%- else -%} {%- set ns.system_prompt = ns.system_prompt + "\n\n" + message["content"] -%} {%- endif -%} {%- endif -%} {%- endfor -%} {{- bos_token -}} {{- ns.system_prompt -}} {%- for message in messages -%} {%- if message["role"] == "user" -%} {%- set ns.is_tool = false -%} {{- "<|User|>" + message["content"] -}} {%- endif -%} {%- if message["role"] == "assistant" and message["content"] is not none -%} {%- if ns.is_tool -%} {{- "<|tool▁outputs▁end|>" + message["content"] + "<|end▁of▁sentence|>" -}} {%- set ns.is_tool = false -%} {%- else -%} {{- "<|Assistant|>" + message["content"] + "<|end▁of▁sentence|>" -}} {%- endif -%} {%- endif -%} {%- endfor -%} {%- if add_generation_prompt -%} {{- "<|Assistant|>" -}} {%- endif -%}