| {%- set ns = namespace(system_text="") -%} | |
| {%- for m in messages -%} | |
| {%- if m.role == 'system' -%} | |
| {%- if m.content is string -%} | |
| {%- set ns.system_text = ns.system_text + m.content -%} | |
| {%- else -%} | |
| {%- for c in m.content -%} | |
| {%- if c.type == 'text' and (c.text is defined) -%} | |
| {%- set ns.system_text = ns.system_text + c.text -%} | |
| {%- endif -%} | |
| {%- endfor -%} | |
| {%- endif -%} | |
| {%- endif -%} | |
| {%- endfor -%} | |
| {%- set ns2 = namespace(audio_tokens="") -%} | |
| {%- for m in messages -%} | |
| {%- if m.content is not string -%} | |
| {%- for c in m.content -%} | |
| {%- if c.type == 'audio' or ('audio' in c) or ('audio_url' in c) -%} | |
| {%- set ns2.audio_tokens = ns2.audio_tokens + "<|audio_start|><|audio_pad|><|audio_end|>" -%} | |
| {%- endif -%} | |
| {%- endfor -%} | |
| {%- endif -%} | |
| {%- endfor -%} | |
| {{- '<|im_start|>system\n' + (ns.system_text if ns.system_text is string else '') + '<|im_end|>\n' -}} | |
| {{- '<|im_start|>user\n' + ns2.audio_tokens + '<|im_end|>\n' -}} | |
| {%- if add_generation_prompt -%} | |
| {{- '<|im_start|>assistant\n' -}} | |
| {%- endif -%} |