{%- 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 %}