LFM2.5-1.2B-Instruct-MLX-6bit / chat_template.jinja
lmmy's picture
Add files using upload-large-folder tool
477b976 verified
Raw
History Blame Contribute Delete
3.7 kB
{{- bos_token -}}
{%- set keep_past_thinking = keep_past_thinking | default(false) -%}
{%- set ns = namespace(system_prompt="") -%}
{%- if messages[0]["role"] == "system" -%}
{%- set ns.system_prompt = messages[0]["content"] -%}
{%- set messages = messages[1:] -%}
{%- endif -%}
{%- if tools -%}
{%- set ns.system_prompt = ns.system_prompt + ("\n" if ns.system_prompt else "") + "List of tools: [" -%}
{%- for tool in tools -%}
{%- if tool is not string -%}
{%- set tool = tool | tojson -%}
{%- endif -%}
{%- set ns.system_prompt = ns.system_prompt + tool -%}
{%- if not loop.last -%}
{%- set ns.system_prompt = ns.system_prompt + ", " -%}
{%- endif -%}
{%- endfor -%}
{%- set ns.system_prompt = ns.system_prompt + "]" -%}
{%- endif -%}
{%- if ns.system_prompt -%}
{{- "<|im_start|>system\n" + ns.system_prompt + "<|im_end|>\n" -}}
{%- endif -%}
{%- set ns.last_assistant_index = -1 -%}
{%- for message in messages -%}
{%- if message["role"] == "assistant" -%}
{%- set ns.last_assistant_index = loop.index0 -%}
{%- endif -%}
{%- endfor -%}
{%- for message in messages -%}
{{- "<|im_start|>" + message["role"] + "\n" -}}
{%- if message.get('tool_calls') %}
{# ───── create a list to append tool calls to ───── #}
{%- set tool_calls_ns = namespace(tool_calls=[])%}
{%- for tool_call in message['tool_calls'] %}
{%- set func_name = tool_call['function']['name'] %}
{%- set func_args = tool_call['function']['arguments'] %}
{# ───── create a list of func_arg strings to accumulate for each tool call ───── #}
{%- set args_ns = namespace(arg_strings=[])%}
{%- for arg_name, arg_value in func_args.items() %}
{%- if arg_value is none %}
{%- set formatted_arg_value = 'null' %}
{%- elif arg_value is boolean %}
{%- set formatted_arg_value = 'True' if arg_value else 'False' %}
{%- elif arg_value is string %}
{%- set formatted_arg_value = '"' ~ arg_value ~ '"' %}
{%- elif arg_value is mapping or arg_value is iterable %}
{%- set formatted_arg_value = arg_value | tojson %}
{%- else %}
{%- set formatted_arg_value = arg_value | string %}
{%- endif %}
{# ───── format each argument key,value pair ───── #}
{%- set args_ns.arg_strings = args_ns.arg_strings + [arg_name ~ '=' ~ formatted_arg_value] %}
{%- endfor %}
{# ───── append each formatted tool call ───── #}
{%- set tool_calls_ns.tool_calls = tool_calls_ns.tool_calls + [(func_name + '(' + (args_ns.arg_strings | join(", ")) + ')' )]%}
{%- endfor %}
{# ───── format the final tool calls ───── #}
{{-'<|tool_call_start|>[' + (tool_calls_ns.tool_calls | join(", ")) + ']<|tool_call_end|>'}}
{%- endif %}
{%- set content = message["content"] -%}
{%- if content is not string -%}
{%- set content = content | tojson -%}
{%- endif -%}
{%- if message["role"] == "assistant" and not keep_past_thinking and loop.index0 != ns.last_assistant_index -%}
{%- if "</think>" in content -%}
{%- set content = content.split("</think>")[-1] | trim -%}
{%- endif -%}
{%- endif -%}
{{- content + "<|im_end|>\n" -}}
{%- endfor -%}
{%- if add_generation_prompt -%}
{{- "<|im_start|>assistant\n" -}}
{%- endif -%}
Free AI Image Generator No sign-up. Instant results. Open Now