Apparently setting variables also adds extraneous whitespace before
the template itself.
Doing {%- set stop_strings = ["string1"] -%} fixes this issue.
Signed-off-by: kingbri <bdashore3@proton.me>
33 lines
778 B
Django/Jinja
33 lines
778 B
Django/Jinja
{# Metadata #}
|
|
{%- set stop_strings = ["### Instruction:", "### Input:", "### Response:"] -%}
|
|
|
|
{# Template #}
|
|
{{ (messages|selectattr('role', 'equalto', 'system')|list|last).content|trim if (messages|selectattr('role', 'equalto', 'system')|list) else '' }}
|
|
|
|
{% for message in messages %}
|
|
{% if message['role'] == 'user' %}
|
|
### Instruction:
|
|
{{ message['content']|trim -}}
|
|
{% if not loop.last %}
|
|
|
|
|
|
{% endif %}
|
|
{% elif message['role'] == 'assistant' %}
|
|
### Response:
|
|
{{ message['content']|trim -}}
|
|
{% if not loop.last %}
|
|
|
|
|
|
{% endif %}
|
|
{% elif message['role'] == 'user_context' %}
|
|
### Input:
|
|
{{ message['content']|trim -}}
|
|
{% if not loop.last %}
|
|
|
|
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% if add_generation_prompt and messages[-1]['role'] != 'assistant' %}
|
|
### Response:
|
|
{% endif %}
|