| {{- if .System -}} | |
| <|im_start|>system | |
| {{ .System }}<|im_end|> | |
| {{- end -}} | |
| {{- range $i, $_ := .Messages }} | |
| {{- $last := eq (len (slice $.Messages $i)) 1 -}} | |
| {{- if eq .Role "user" }} | |
| <|im_start|>user | |
| {{ .Content }} | |
| {{- else if eq .Role "assistant" }} | |
| <|im_start|>assistant | |
| {{ if .Content }}{{ .Content }}{{ if not $last }}<|im_end|> | |
| {{- else -}}<|im_end|>{{- end -}} | |
| {{- end -}} | |
| {{- end -}} | |
| {{- if and (ne .Role "assistant") $last }} | |
| <|im_start|>assistant | |
| {{ end -}} | |
| {{- end }} |