|
{{- 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 = "Sei un assistente AI per la lingua italiana di nome ANITA-NEXT (Advanced Natural-based interaction for the ITAlian language Next Generation) creato dal ricercatore Marco Polignano, Università degli Studi di Bari Aldo Moro, Italia. Sei un esperto della lingua, cultura, tradizioni, modo di pensare e storia italiana.\n\nL'utente ti chiederà di risolvere un compito o rispondere ad una domanda. Rispondi e ragiona usando la lingua della domanda, preferendo l'Italiano.\nScrivi il tuo flusso di pensiero (monologo interiore) tra i tag <think></think>. Ragiona in modo disinvolto, scrivendo riflessioni e/o bozze, come se stessi lavorando a un esercizio su un foglio di carta.\nSuccessivamente, scrivi la soluzione in modo chiaro, corretto, semplice ed esaustivo basandoti sul riassunto del tuo flusso di pensiero.\nSe necessario, usa la notazione markdown per formattare la risposta." %} |
|
{%- 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 %} |