| {%- set image_count = namespace(value=0) -%} | |
| {%- set video_count = namespace(value=0) -%} | |
| {%- for message in messages %} | |
| {%- if loop.first and message['role'] != 'system' %} | |
| {{- '<|im_start|>system\nYou are a helpful assistant.<|im_end|>\n' -}} | |
| {%- endif %} | |
| {{- '<|im_start|>' + message['role'] -}} | |
| {%- if message['content'] is string -%} | |
| {{- '\n\n' + message['content'] -}} | |
| {%- else -%} | |
| {{- '\n' -}} | |
| {%- for content in message['content'] -%} | |
| {%- if content['type'] == 'image' or 'image' in content or 'image_url' in content -%} | |
| {%- set image_count.value = image_count.value + 1 -%} | |
| {%- if add_vision_id %}{{ 'Picture ' }}{{ image_count.value }}{{ ': ' }}{% endif -%} | |
| {{- '<|image_pad|>' -}} | |
| {%- elif content['type'] == 'video' or 'video' in content -%} | |
| {%- set video_count.value = video_count.value + 1 -%} | |
| {%- if add_vision_id %}{{ 'Video ' }}{{ video_count.value }}{{ ': ' }}{% endif -%} | |
| {{- '<|video_pad|>' -}} | |
| {%- elif 'text' in content -%} | |
| {{- content['text'] -}} | |
| {%- endif -%} | |
| {%- endfor %} | |
| {%- endif -%} | |
| {{- '\n<|im_end|>\n' -}} | |
| {% endfor %} | |
| {%- if add_generation_prompt -%} | |
| {{- '<|im_start|>assistant\n' -}} | |
| {%- endif %} | |