| {%- set language_pairs = {"en-zh-cn": {"source": "English", "target": "Simplified Chinese"}, "en-zh": {"source": "English", "target": "Simplified Chinese"}, "en-zh-tw": {"source": "English", "target": "Traditional Chinese"}, "en-ar": {"source": "English", "target": "Arabic"}, "en-de": {"source": "English", "target": "German"}, "en-es-es": {"source": "English", "target": "European Spanish"}, "en-es-us": {"source": "English", "target": "Latin American Spanish"}, "en-fr": {"source": "English", "target": "French"}, "en-ja": {"source": "English", "target": "Japanese"}, "en-ko": {"source": "English", "target": "Korean"}, "en-ru": {"source": "English", "target": "Russian"}, "en-pt-br": {"source": "English", "target": "Brazilian Portuguese"}} -%} | |
| {%- set system_message = '' -%} | |
| {%- set source_lang = '' -%} | |
| {%- set target_lang = '' -%} | |
| {%- if messages[0]['role'] == 'system' -%} | |
| {%- set lang_pair = messages[0]['content'] | trim -%} | |
| {%- set messages = messages[1:] -%} | |
| {%- if lang_pair in language_pairs -%} | |
| {%- set source_lang = language_pairs[lang_pair]['source'] -%} | |
| {%- set target_lang = language_pairs[lang_pair]['target'] -%} | |
| {%- set system_message = 'You are an expert at translating text from ' + source_lang + ' to ' + target_lang + '.' -%} | |
| {%- else -%} | |
| {%- set system_message = 'You are a translation expert.' -%} | |
| {%- endif -%} | |
| {%- endif -%} | |
| {{- '<s>System\n' + system_message + '</s>\n' -}} | |
| {%- for message in messages -%} | |
| {%- if (message['role'] in ['user']) != (loop.index0 % 2 == 0) -%} | |
| {{- raise_exception('Conversation roles must alternate between user and assistant') -}} | |
| {%- elif message['role'] == 'user' -%} | |
| {%- set user_content = (target_lang and 'What is the ' + target_lang + ' translation of the sentence: ' + message['content'] | trim or message['content'] | trim) -%} | |
| {{- '<s>User\n' + user_content + '</s>\n' -}} | |
| {%- elif message['role'] == 'assistant' -%} | |
| {{- '<s>Assistant\n' + message['content'] | trim + '</s>\n' -}} | |
| {%- endif -%} | |
| {%- endfor -%} | |
| {%- if add_generation_prompt -%} | |
| {{ '<s>Assistant\n' }} | |
| {%- endif -%} |