llama-cpp-lfm2.jinja 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. {{- bos_token -}}
  2. {%- set system_prompt = "" -%}
  3. {%- set ns = namespace(system_prompt="") -%}
  4. {%- if messages[0]["role"] == "system" -%}
  5. {%- set ns.system_prompt = messages[0]["content"] -%}
  6. {%- set messages = messages[1:] -%}
  7. {%- endif -%}
  8. {%- if tools -%}
  9. {%- set ns.system_prompt = ns.system_prompt + ("\n" if ns.system_prompt else "") + "List of tools: <|tool_list_start|>[" -%}
  10. {%- for tool in tools -%}
  11. {%- if tool is not string -%}
  12. {%- set tool = tool | tojson -%}
  13. {%- endif -%}
  14. {%- set ns.system_prompt = ns.system_prompt + tool -%}
  15. {%- if not loop.last -%}
  16. {%- set ns.system_prompt = ns.system_prompt + ", " -%}
  17. {%- endif -%}
  18. {%- endfor -%}
  19. {%- set ns.system_prompt = ns.system_prompt + "]<|tool_list_end|>" -%}
  20. {%- endif -%}
  21. {%- if ns.system_prompt -%}
  22. {{- "<|im_start|>system\n" + ns.system_prompt + "<|im_end|>\n" -}}
  23. {%- endif -%}
  24. {%- for message in messages -%}
  25. {{- "<|im_start|>" + message["role"] + "\n" -}}
  26. {%- set content = message["content"] -%}
  27. {%- if content is not string -%}
  28. {%- set content = content | tojson -%}
  29. {%- endif -%}
  30. {%- if message["role"] == "tool" -%}
  31. {%- set content = "<|tool_response_start|>" + content + "<|tool_response_end|>" -%}
  32. {%- endif -%}
  33. {{- content + "<|im_end|>\n" -}}
  34. {%- endfor -%}
  35. {%- if add_generation_prompt -%}
  36. {{- "<|im_start|>assistant\n" -}}
  37. {%- endif -%}