pipilok's picture
Upload yandex.jinja
8758caf verified
{%- set names = {'assistant': ' Ассистент:', 'user': ' Пользователь:', 'system': 'Система:'} %}
{%- set tools_prefix = 'Тебе доступны следующие функции:' %}
{%- macro __render_tool(tool) %}
{%- set name = tool.function.name %}
{%- set description = tool.function.description|default('') %}
{%- set parameters = tool.function.parameters|tojson %}
{{- '\n' }}function {{ '{' }}'name':'{{ name }}',
{%- if tool.description %}'description':'{{ description }}',{% endif %}
'parameters':{{ parameters }}
{{- '}' }}
{%- endmacro %}
{%- macro __render_tools(tools) %}
{{- tools_prefix }}
{%- for tool in tools %}
{{- __render_tool(tool) }}
{%- endfor %}
{{- '\n\n' }}
{%- endmacro %}
{%- macro __render_tool_message(message) %}
{{- '\n\nРезультат вызова' }} {{ message.name }}: {{ message.content }} {{ '\n\n' }}
{%- endmacro %}
{%- macro __render_user_message(message) %}
{{ names.user }} {{ message.content + '\n\n' }}
{%- endmacro %}
{%- macro __render_assistant_message(message) %}
{{- names.assistant }}
{%- set call = message['function_call'] %}
{%- if call %}
{{- '\n[TOOL_CALL_START]' }}{{ call.name }}{{ '\n' }}{{ call.arguments|tojson }}
{%- else %}
{{- ' ' + message.content + '\n\n' }}
{%- endif %}
{%- endmacro %}
{%- macro __render_system_message(message) %}
{{ names.system }} {{ message.content + '\n\n' }}
{%- endmacro %}
{%- if not add_generation_prompt is defined %}
{%- set add_generation_prompt = false %}
{%- endif %}
{%- for message in messages %}
{%- if message['role'] == 'system' %}
{{- __render_system_message(message) }}
{%- endif %}
{%- if message['role'] == 'user' %}
{{- __render_user_message(message) }}
{%- endif %}
{%- if message.role == 'assistant' and not loop.last %}
{{- __render_assistant_message(message) }}
{%- endif %}
{%- if message.role == 'tool' %}
{{- __render_tool_message(message) }}
{%- endif %}
{%- if loop.last %}
{{- ' Ассистент:[SEP]' }}
{%- endif %}
{%- endfor %}