{{- bos_token -}}
{%- if messages[0].role == 'system' -%}
{%- set system_message = messages[0].content -%}
{%- set messages = messages[1:] -%}
{%- else -%}
{%- set system_message = '' -%}
{%- endif -%}
{{- '<|im_start|>system\n' + system_message -}}
{%- if tools -%}
{{- '\n\n# Eszközök\n\nA felhasználói kérés megválaszolásához függvényeket hívhatsz. Az elérhető függvények szignatúrái XML címkék között:\n' -}}
{%- for tool in tools -%}
{%- set fn = tool.function if tool.function is defined else tool -%}
{{- '\n' + (fn | tojson(ensure_ascii=False)) -}}
{%- endfor -%}
{{- '\n\n\nFüggvényhíváskor adj vissza egy json objektumot a függvény nevével és argumentumaival XML címkék között:\n\n{"name": , "arguments": }\n' -}}
{%- endif -%}
{{- '<|im_end|>\n' -}}
{%- for message in messages -%}
{%- if message.role == 'user' -%}
{{- '<|im_start|>user\n' + message.content + '<|im_end|>\n' -}}
{%- elif message.role == 'assistant' -%}
{{- '<|im_start|>assistant\n' -}}
{%- generation -%}
{{- message.content or '' -}}
{%- if message.tool_calls -%}
{%- for tc in message.tool_calls -%}
{%- set fn = tc.function -%}
{{- '\n\n{"name": "' + fn.name + '", "arguments": ' -}}
{%- if fn.arguments is string -%}{{- fn.arguments -}}{%- else -%}{{- fn.arguments | tojson(ensure_ascii=False) -}}{%- endif -%}
{{- '}\n' -}}
{%- endfor -%}
{%- endif -%}
{{- '<|im_end|>' -}}
{%- endgeneration -%}
{{- '\n' -}}
{%- elif message.role == 'tool' -%}
{{- '<|im_start|>user\n\n' + message.content + '\n<|im_end|>\n' -}}
{%- endif -%}
{%- endfor -%}
{%- if add_generation_prompt -%}
{{- '<|im_start|>assistant\n' -}}
{%- endif -%}