|
{%- 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 %} |