{ "chat_template": "{% if messages[0][\"role\"] == \"system\" %}\n {% set system_message = messages[0][\"content\"][0][\"text\"] %}\n {% set loop_messages = messages[1:] %}\n{% else %}\n {% set loop_messages = messages %}\n{% endif %}\n\n{{ bos_token }}\n{% for message in loop_messages %}\n {% if (message['role'] == 'user') != (loop.index0 % 2 == 0) %}\n {{ raise_exception('After the optional system message, conversation roles must alternate user/assistant/user/assistant/...') }}\n {% endif %}\n {% if message[\"role\"] == \"user\" %}\n {% if loop.first and system_message is defined %}\n {{ \"[INST]\" + system_message + \"\\n\\n\" }}\n {% else %}\n {{ \"[INST]\" }}\n {% endif %}\n {% if message[\"content\"] is not string %}\n {% for chunk in message[\"content\"] %}\n {% if chunk[\"type\"] == \"text\" %}\n {{ chunk[\"text\"] }}\n {% elif chunk[\"type\"] == \"image_url\" %}\n {{ \"[IMG]\" }}\n {% else %}\n {{ raise_exception(\"Unrecognized content type!\") }}\n {% endif %}\n {% endfor %}\n {% else %}\n {{ message[\"content\"] }}\n {% endif %}\n {{ \"[/INST]\" }}\n {% elif message[\"role\"] == \"assistant\" %}\n {% if message[\"content\"] is not string %}\n {% for chunk in message[\"content\"] %}\n {% if chunk[\"type\"] == \"text\" %}\n {{ chunk[\"text\"] }}\n {% else %}\n {{ raise_exception(\"Unrecognized content type!\") }}\n {% endif %}\n {% endfor %}\n {% else %}\n {{ message[\"content\"] }}\n {% endif %}\n {% else %}\n {{ raise_exception(\"Only user and assistant roles are supported, with the exception of an initial optional system message!\") }}\n {% endif %}\n{% endfor %}" }