| {%- macro to_text(content) -%} |
| {%- if content is string -%} |
| {{- content -}} |
| {%- elif content is iterable and content is not mapping -%} |
| {%- for item in content -%} |
| {%- if item is mapping and item.type == 'text' and item.text is defined -%} |
| {{- item.text -}} |
| {%- elif item is mapping and (item.type == 'audio' or 'audio' in item) -%} |
| <|begin_of_audio|><|pad|><|end_of_audio|><|user|> |
| {% elif item is string -%} |
| {{- item -}} |
| {%- endif -%} |
| {%- endfor -%} |
| {%- else -%} |
| {{- content -}} |
| {%- endif -%} |
| {%- endmacro -%} |
| {%- for m in messages -%} |
| {%- if m.role == 'system' -%} |
| <|system|> |
| {{ to_text(m.content) | trim }} |
| {%- elif m.role == 'user' -%} |
| <|user|> |
| {{ to_text(m.content) | trim }} |
| {%- elif m.role == 'assistant' -%} |
| <|assistant|> |
| {{ to_text(m.content) | trim }} |
| {%- endif -%} |
| {%- endfor -%} |
| {%- if add_generation_prompt -%} |
| <|assistant|> |
| {% endif -%} |