File size: 1,601 Bytes
0c3b3bb | 1 2 3 | {
"chat_template": "{%- for message in messages %}\n{{- '<|im_start|>' + message.role + '\\n' }}\n{%- if message.role == 'system' or message.role == 'user' %}\n{%- if message.content is string %}\n{{- message.content }}\n{%- else %}\n{%- for item in message.content %}\n{%- if item.type == 'text' and 'text' in item %}\n{{- item.text }}\n{%- elif item.type == 'image' %}\n{{- '<image>' }}\n{%- elif item.type == 'video' %}\n{{- '<video>' }}\n{%- else %}\n{{- raise_exception('Invalid content type. Supported types for system and user are text, image, video.') }}\n{%- endif %}\n{%- if not loop.last %}{{- '\\n' }}{%- endif %}\n{%- endfor %}\n{%- endif %}\n{%- elif message.role == 'assistant' %}\n{%- set content = '' %}\n{%- if message.content is string %}\n{%- set content = message.content %}\n{%- else %}\n{%- set ns = namespace(content='') -%}\n{%- for item in message.content %}\n{%- if item.type == 'text' and 'text' in item %}\n{%- set ns.content = ns.content ~ item.text %}\n{%- else %}\n{{- raise_exception('Invalid content type. Supported type for assistant is text.') }}\n{%- endif %}\n{%- endfor %}\n{%- set content = ns.content -%}\n{%- endif %}\n{%- set content = content.split('</think>')[-1].lstrip('\\n') %}\n{{- content }}\n{%- else %}\n{{- raise_exception('Invalid role. Supported roles are system, user, assistant.') }}\n{%- endif %}\n{{- '<|im_end|>\\n' }}\n{%- endfor %}\n{%- if add_generation_prompt %}\n{{- '<|im_start|>assistant\\n' }}\n{%- if enable_thinking is defined and enable_thinking is false %}\n{{- '<think>\\n\\n</think>\\n\\n' }}\n{%- endif %}\n{%- endif %}\n"
} |