<s>{{ 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 }}<|im_end|>
{{ else if eq .Role "assistant" }}<|im_start|>assistant
{{ if .Thinking }}<think>
{{ .Thinking }}
</think>
{{ else }}<think>
</think>
{{ end }}{{ .Content }}{{ if not $last }}<|im_end|>
{{ end }}{{ end }}{{ if and (ne .Role "assistant") $last }}<|im_start|>assistant
{{ if and $.IsThinkSet (not $.Think) }}<think>
</think>
{{ else }}<think>
{{ end }}{{ end }}{{ end }}