summaryrefslogtreecommitdiff
path: root/llama.cpp/models/templates/llama-cpp-lfm2.jinja
diff options
context:
space:
mode:
Diffstat (limited to 'llama.cpp/models/templates/llama-cpp-lfm2.jinja')
-rw-r--r--llama.cpp/models/templates/llama-cpp-lfm2.jinja37
1 files changed, 37 insertions, 0 deletions
diff --git a/llama.cpp/models/templates/llama-cpp-lfm2.jinja b/llama.cpp/models/templates/llama-cpp-lfm2.jinja
new file mode 100644
index 0000000..b792112
--- /dev/null
+++ b/llama.cpp/models/templates/llama-cpp-lfm2.jinja
@@ -0,0 +1,37 @@
+{{- bos_token -}}
+{%- set system_prompt = "" -%}
+{%- 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: <|tool_list_start|>[" -%}
+ {%- 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 + "]<|tool_list_end|>" -%}
+{%- endif -%}
+{%- if ns.system_prompt -%}
+ {{- "<|im_start|>system\n" + ns.system_prompt + "<|im_end|>\n" -}}
+{%- endif -%}
+{%- for message in messages -%}
+ {{- "<|im_start|>" + message["role"] + "\n" -}}
+ {%- set content = message["content"] -%}
+ {%- if content is not string -%}
+ {%- set content = content | tojson -%}
+ {%- endif -%}
+ {%- if message["role"] == "tool" -%}
+ {%- set content = "<|tool_response_start|>" + content + "<|tool_response_end|>" -%}
+ {%- endif -%}
+ {{- content + "<|im_end|>\n" -}}
+{%- endfor -%}
+{%- if add_generation_prompt -%}
+ {{- "<|im_start|>assistant\n" -}}
+{%- endif -%}