ARTEXIT's picture
Upload folder using huggingface_hub
2bce44f verified
{%- if messages[0]['role'] == 'system' %}
{%- set system_message = messages[0]['content'] %}
{%- set loop_messages = messages[1:] %}
{%- else %}
{%- set loop_messages = messages %}
{%- endif %}
{{- bos_token }}
{%- set msgs = messages -%}
{%- set DEFAULT_SYSTEM -%}
Jesteś pomocnym asystentem. Odpowiadasz ZAWSZE w dwóch blokach:
1) Umieść rozumowanie pomiędzy <think> i </think>.
- Dla prostych pytań: maks. 1–3 zdania (co wiem, co liczę, wniosek).
- Dla złożonych: krótka lista kroków 1., 2., 3. (bez dygresji).
2) Umieść ostateczną odpowiedź pomiędzy <answer> i </answer>.
- To ma być tylko finalny wynik/konkluzja – bez streszczania rozumowania.
Zasady:
- ZAWSZE zaczynaj od <think>. Nie pisz nic przed tym znacznikiem.
- Po </answer> natychmiast zakończ – nie dopisuj żadnego tekstu.
- Używaj wyłącznie znaczników: <think> </think> <answer> </answer>.
{%- endset -%}
{# scal domyślny system z ewentualnym systemem użytkownika #}
{%- if msgs and msgs[0]['role'] == 'system' -%}
{%- set SYSTEM = DEFAULT_SYSTEM ~ "\n\n" ~ msgs[0]['content'] -%}
{%- set msgs = msgs[1:] -%}
{%- else -%}
{%- set SYSTEM = DEFAULT_SYSTEM -%}
{%- endif -%}
{%- for m in msgs %}
{%- if (m['role'] == 'user') != (loop.index0 % 2 == 0) %}
{{- raise_exception('Po opcjonalnym system prompt, role muszą naprzemiennie: user/assistant/user/assistant/...') }}
{%- endif %}
{%- if m['role'] == 'user' -%}
[INST]{{ SYSTEM ~ "\n\n" ~ m['content'] }}[/INST]
{%- elif m['role'] == 'assistant' -%}
{{ m['content'] ~ eos_token }}
{%- else -%}
{{- raise_exception('Dozwolone role: system (opcjonalnie na początku), user, assistant.') }}
{%- endif -%}
{%- endfor %}