Last commit not found
{{ if .Messages }} | |
{{- if or .System .Tools }}<|im_start|>system | |
{{ .System }} | |
{{- if .Tools }} | |
# Tools | |
You are provided with function signatures within <tools></tools> XML tags: | |
<tools>{{- range .Tools }} | |
{"type": "function", "function": {{ .Function }}}{{- end }} | |
</tools> | |
For each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags: | |
<tool_call> | |
{"name": <function-name>, "arguments": <args-json-object>} | |
</tool_call> | |
{{- end }}<|im_end|> | |
{{ end }} | |
{{- range $i, $_ := .Messages }} | |
{{- $last := eq (len (slice $.Messages $i)) 1 -}} | |
{{- if eq .Role "user" }}<|im_start|>user | |
{{ .Content }}<|im_end|> | |
{{ else if eq .Role "assistant" }}<|im_start|>assistant | |
{{ if .Content }}{{ .Content }} | |
{{- else if .ToolCalls }}<tool_call> | |
{{ range .ToolCalls }}{"name": "{{ .Function.Name }}", "arguments": {{ .Function.Arguments }}} | |
{{ end }}</tool_call> | |
{{- end }}{{ if not $last }}<|im_end|> | |
{{ end }} | |
{{- else if eq .Role "tool" }}<|im_start|>user | |
<tool_response> | |
{{ .Content }} | |
</tool_response><|im_end|> | |
{{ end }} | |
{{- if and (ne .Role "assistant") $last }}<|im_start|>assistant | |
{{ end }} | |
{{- end }} | |
{{- else }} | |
{{- if .System }}<|im_start|>system | |
{{ .System }}<|im_end|> | |
{{ end }}{{ if .Prompt }}<|im_start|>user | |
{{ .Prompt }}<|im_end|> | |
{{ end }}<|im_start|>Alice | |
{{ end }}{{ .Response }}{{ if .Response }}<|im_end|>{{ end }} |