|
{%- set default_system_message = "You are Mistral Small 3, a Large Language Model (LLM) created by Mistral AI" %} |
|
|
|
{{- bos_token }} |
|
|
|
{%- if messages[0]['role'] == 'system' %} |
|
{%- if messages[0]['content'] is string %} |
|
{%- set system_message = messages[0]['content'] %} |
|
{%- else %} |
|
{%- set system_message = messages[0]['content'][0]['text'] %} |
|
{%- endif %} |
|
{%- set loop_messages = messages[1:] %} |
|
{%- else %} |
|
{%- set system_message = default_system_message %} |
|
{%- set loop_messages = messages %} |
|
{%- endif %} |
|
{{- '[SYSTEM_PROMPT]' + system_message + '[/SYSTEM_PROMPT]' }} |
|
|
|
{%- for message in loop_messages %} |
|
{%- if message['role'] == 'user' %} |
|
{%- if message['content'] is string %} |
|
{{- '[INST]' + message['content'] + '[/INST]' }} |
|
{%- else %} |
|
{{- '[INST]' }} |
|
{%- for block in message['content'] %} |
|
{%- if block['type'] == 'text' %} |
|
{{- block['text'] }} |
|
{%- elif block['type'] in ['image', 'image_url'] %} |
|
{{- '[IMG]' }} |
|
{%- else %} |
|
{{- raise_exception('Only text and image blocks are supported in message content!') }} |
|
{%- endif %} |
|
{%- endfor %} |
|
{{- '[/INST]' }} |
|
{%- endif %} |
|
{%- elif message['role'] == 'system' %} |
|
{%- if message['content'] is string %} |
|
{{- '[SYSTEM_PROMPT]' + message['content'] + '[/SYSTEM_PROMPT]' }} |
|
{%- else %} |
|
{{- '[SYSTEM_PROMPT]' + message['content'][0]['text'] + '[/SYSTEM_PROMPT]' }} |
|
{%- endif %} |
|
{%- elif message['role'] == 'assistant' %} |
|
{%- if message['content'] is string %} |
|
{{- message['content'] + eos_token }} |
|
{%- else %} |
|
{{- message['content'][0]['text'] + eos_token }} |
|
{%- endif %} |
|
{%- else %} |
|
{{- raise_exception('Only user, system and assistant roles are supported!') }} |
|
{%- endif %} |
|
{%- endfor %} |