File size: 1,989 Bytes
6ce8db3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<s>{%- set names = {'assistant': ' Ассистент:', 'user': ' Пользователь:'} %}
{%- 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 %}

{%- if tools -%}
    {{- __render_tools(tools) }}
{%- endif -%}

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

{%- if not add_generation_prompt is defined %}
{%- set add_generation_prompt = false %}
{%- endif %}

{%- for message in messages %}
    {%- 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 %}