{%- if messages[0]['role'] == 'system' %} {{- '<|im_start|>system\n' }} {%- if messages[0]['content'] is string %} {{- messages[0]['content'] }} {%- else %} {%- for item in messages[0]['content'] %} {%- if item['type'] == 'text' %} {{- item['text'] }} {%- endif %} {%- endfor %} {%- endif %} {{- '<|im_end|>\n' }} {%- else %} {{- '<|im_start|>system\n你是Qianfan-VL,由百度智能云研发的多模态大语言模型。<|im_end|>\n' }} {%- endif %} {%- set ns = namespace(found_last_user=false, last_query_index=messages|length - 1) %} {%- for message in messages[::-1] %} {%- set index = (messages|length - 1) - loop.index0 %} {%- if not ns.found_last_user and message['role'] == 'user' %} {%- set ns.found_last_user = true %} {%- set ns.last_query_index = index %} {%- endif %} {%- endfor %} {%- for message in messages %} {%- if messages[0]['role'] != 'system' or not loop.first %} {%- if message['role'] == 'user' or (message['role'] == 'system' and not loop.first) %} {%- set append_think = (enable_thinking is defined and enable_thinking and message['role'] == 'user' and loop.index0 == ns.last_query_index) %} {{- '<|im_start|>' + message['role'] + '\n' }} {%- if message['content'] is string %} {{- message['content'] }} {%- else %} {%- for item in message['content'] %} {%- if item['type'] == 'image' %} {{- '\n' }} {%- elif item['type'] == 'video' %} {{- '