marvis-tts-250m-v0.1-transformers / chat_template.jinja
lucasnewman's picture
Upload 4 files
d93a6f6 verified
{%- for message in messages %}
{%- if not message['role'] is string or not message['role'].isdigit() %}
{{- raise_exception("Role must be a stringified integer speaker id.") }}
{%- endif %}
{%- set content = message['content'] %}
{%- if content is not iterable or content is string %}
{{- raise_exception("Content must be a list.") }}
{%- endif %}
{%- set texts = content | selectattr('type','equalto','text') | list %}
{%- set audios = content | selectattr('type','equalto','audio') | list %}
{%- if loop.last %}
{%- if texts|length != 1 or audios|length != 0 %}
{{- raise_exception("Last message must have one text and no audio.") }}
{%- endif %}
{%- else %}
{%- if texts|length != 1 or audios|length != 1 %}
{{- raise_exception("Each non-last message must have one text and one audio.") }}
{%- endif %}
{%- endif %}
{%- endfor %}
{{- bos_token }}
{%- for message in messages %}
{%- set text_item = message['content'] | selectattr('type','equalto','text') | list | first %}
{%- if not loop.last -%}
[{{ message['role'] }}]{{ text_item['text'] }}{{ " " }}
{%- else -%}
{{ text_item['text'] }}
{%- endif -%}
{%- endfor %}
{{- eos_token }}
{%- for message in messages %}
{%- if not loop.last %}
{{- '<|AUDIO|>' }}
{%- endif %}
{%- endfor %}