fix qwen3 prompt templates
This commit is contained in:
@@ -20,12 +20,69 @@ PARAMETER presence_penalty 1.5
|
|||||||
PARAMETER stop "<|im_start|>"
|
PARAMETER stop "<|im_start|>"
|
||||||
PARAMETER stop "<|im_end|>"
|
PARAMETER stop "<|im_end|>"
|
||||||
|
|
||||||
# Template for Qwen3 chat format
|
# Template for Qwen3 chat format with tool support
|
||||||
TEMPLATE """{{ if .System }}<|im_start|>system
|
TEMPLATE """{{- $lastUserIdx := -1 -}}
|
||||||
{{ .System }}<|im_end|>
|
{{- range $idx, $msg := .Messages -}}
|
||||||
{{ end }}<|im_start|>user
|
{{- if eq $msg.Role "user" }}{{ $lastUserIdx = $idx }}{{ end -}}
|
||||||
{{ .Prompt }}<|im_end|>
|
{{- end }}
|
||||||
<|im_start|>assistant
|
{{- if or .System .Tools }}<|im_start|>system
|
||||||
"""
|
{{ if .System }}
|
||||||
|
{{ .System }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Tools }}
|
||||||
|
|
||||||
|
# Tools
|
||||||
|
|
||||||
|
You may call one or more functions to assist with the user query.
|
||||||
|
|
||||||
|
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 }}
|
||||||
|
{{- if and $.IsThinkSet (eq $i $lastUserIdx) }}
|
||||||
|
{{- if $.Think -}}
|
||||||
|
{{- " "}}/think
|
||||||
|
{{- else -}}
|
||||||
|
{{- " "}}/no_think
|
||||||
|
{{- end -}}
|
||||||
|
{{- end }}<|im_end|>
|
||||||
|
{{ else if eq .Role "assistant" }}<|im_start|>assistant
|
||||||
|
{{ if (and $.IsThinkSet (and .Thinking (or $last (gt $i $lastUserIdx)))) -}}
|
||||||
|
<think>{{ .Thinking }}</think>
|
||||||
|
{{ end -}}
|
||||||
|
{{ 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
|
||||||
|
{{ if and $.IsThinkSet (not $.Think) -}}
|
||||||
|
<think>
|
||||||
|
|
||||||
|
</think>
|
||||||
|
|
||||||
|
{{ end -}}
|
||||||
|
{{ end }}
|
||||||
|
{{- end }}"""
|
||||||
|
|
||||||
SYSTEM """You are Qwen, created by Alibaba Cloud. You are a helpful assistant."""
|
SYSTEM """You are Qwen, created by Alibaba Cloud. You are a helpful assistant."""
|
||||||
|
|||||||
@@ -20,12 +20,69 @@ PARAMETER presence_penalty 1.5
|
|||||||
PARAMETER stop "<|im_start|>"
|
PARAMETER stop "<|im_start|>"
|
||||||
PARAMETER stop "<|im_end|>"
|
PARAMETER stop "<|im_end|>"
|
||||||
|
|
||||||
# Template for Qwen3 chat format
|
# Template for Qwen3 chat format with tool support
|
||||||
TEMPLATE """{{ if .System }}<|im_start|>system
|
TEMPLATE """{{- $lastUserIdx := -1 -}}
|
||||||
{{ .System }}<|im_end|>
|
{{- range $idx, $msg := .Messages -}}
|
||||||
{{ end }}<|im_start|>user
|
{{- if eq $msg.Role "user" }}{{ $lastUserIdx = $idx }}{{ end -}}
|
||||||
{{ .Prompt }}<|im_end|>
|
{{- end }}
|
||||||
<|im_start|>assistant
|
{{- if or .System .Tools }}<|im_start|>system
|
||||||
"""
|
{{ if .System }}
|
||||||
|
{{ .System }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Tools }}
|
||||||
|
|
||||||
|
# Tools
|
||||||
|
|
||||||
|
You may call one or more functions to assist with the user query.
|
||||||
|
|
||||||
|
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 }}
|
||||||
|
{{- if and $.IsThinkSet (eq $i $lastUserIdx) }}
|
||||||
|
{{- if $.Think -}}
|
||||||
|
{{- " "}}/think
|
||||||
|
{{- else -}}
|
||||||
|
{{- " "}}/no_think
|
||||||
|
{{- end -}}
|
||||||
|
{{- end }}<|im_end|>
|
||||||
|
{{ else if eq .Role "assistant" }}<|im_start|>assistant
|
||||||
|
{{ if (and $.IsThinkSet (and .Thinking (or $last (gt $i $lastUserIdx)))) -}}
|
||||||
|
<think>{{ .Thinking }}</think>
|
||||||
|
{{ end -}}
|
||||||
|
{{ 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
|
||||||
|
{{ if and $.IsThinkSet (not $.Think) -}}
|
||||||
|
<think>
|
||||||
|
|
||||||
|
</think>
|
||||||
|
|
||||||
|
{{ end -}}
|
||||||
|
{{ end }}
|
||||||
|
{{- end }}"""
|
||||||
|
|
||||||
SYSTEM """You are Qwen, created by Alibaba Cloud. You are a helpful assistant."""
|
SYSTEM """You are Qwen, created by Alibaba Cloud. You are a helpful assistant."""
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
FROM ./qwen3-14b-q8_0.gguf
|
FROM ./qwen3-14b-q8_0.gguf
|
||||||
|
|
||||||
# Context and output parameters
|
# Context and output parameters
|
||||||
PARAMETER num_ctx 40960
|
PARAMETER num_ctx 8192
|
||||||
PARAMETER num_predict 32768
|
PARAMETER num_predict 32768
|
||||||
|
|
||||||
# Sampling parameters (non-thinking mode)
|
# Sampling parameters (non-thinking mode)
|
||||||
@@ -20,12 +20,69 @@ PARAMETER presence_penalty 1.5
|
|||||||
PARAMETER stop "<|im_start|>"
|
PARAMETER stop "<|im_start|>"
|
||||||
PARAMETER stop "<|im_end|>"
|
PARAMETER stop "<|im_end|>"
|
||||||
|
|
||||||
# Template for Qwen3 chat format
|
# Template for Qwen3 chat format with tool support
|
||||||
TEMPLATE """{{ if .System }}<|im_start|>system
|
TEMPLATE """{{- $lastUserIdx := -1 -}}
|
||||||
{{ .System }}<|im_end|>
|
{{- range $idx, $msg := .Messages -}}
|
||||||
{{ end }}<|im_start|>user
|
{{- if eq $msg.Role "user" }}{{ $lastUserIdx = $idx }}{{ end -}}
|
||||||
{{ .Prompt }}<|im_end|>
|
{{- end }}
|
||||||
<|im_start|>assistant
|
{{- if or .System .Tools }}<|im_start|>system
|
||||||
"""
|
{{ if .System }}
|
||||||
|
{{ .System }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Tools }}
|
||||||
|
|
||||||
|
# Tools
|
||||||
|
|
||||||
|
You may call one or more functions to assist with the user query.
|
||||||
|
|
||||||
|
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 }}
|
||||||
|
{{- if and $.IsThinkSet (eq $i $lastUserIdx) }}
|
||||||
|
{{- if $.Think -}}
|
||||||
|
{{- " "}}/think
|
||||||
|
{{- else -}}
|
||||||
|
{{- " "}}/no_think
|
||||||
|
{{- end -}}
|
||||||
|
{{- end }}<|im_end|>
|
||||||
|
{{ else if eq .Role "assistant" }}<|im_start|>assistant
|
||||||
|
{{ if (and $.IsThinkSet (and .Thinking (or $last (gt $i $lastUserIdx)))) -}}
|
||||||
|
<think>{{ .Thinking }}</think>
|
||||||
|
{{ end -}}
|
||||||
|
{{ 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
|
||||||
|
{{ if and $.IsThinkSet (not $.Think) -}}
|
||||||
|
<think>
|
||||||
|
|
||||||
|
</think>
|
||||||
|
|
||||||
|
{{ end -}}
|
||||||
|
{{ end }}
|
||||||
|
{{- end }}"""
|
||||||
|
|
||||||
SYSTEM """You are Qwen, created by Alibaba Cloud. You are a helpful assistant."""
|
SYSTEM """You are Qwen, created by Alibaba Cloud. You are a helpful assistant."""
|
||||||
|
|||||||
@@ -20,12 +20,69 @@ PARAMETER presence_penalty 1.5
|
|||||||
PARAMETER stop "<|im_start|>"
|
PARAMETER stop "<|im_start|>"
|
||||||
PARAMETER stop "<|im_end|>"
|
PARAMETER stop "<|im_end|>"
|
||||||
|
|
||||||
# Template for Qwen3 chat format
|
# Template for Qwen3 chat format with tool support
|
||||||
TEMPLATE """{{ if .System }}<|im_start|>system
|
TEMPLATE """{{- $lastUserIdx := -1 -}}
|
||||||
{{ .System }}<|im_end|>
|
{{- range $idx, $msg := .Messages -}}
|
||||||
{{ end }}<|im_start|>user
|
{{- if eq $msg.Role "user" }}{{ $lastUserIdx = $idx }}{{ end -}}
|
||||||
{{ .Prompt }}<|im_end|>
|
{{- end }}
|
||||||
<|im_start|>assistant
|
{{- if or .System .Tools }}<|im_start|>system
|
||||||
"""
|
{{ if .System }}
|
||||||
|
{{ .System }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Tools }}
|
||||||
|
|
||||||
|
# Tools
|
||||||
|
|
||||||
|
You may call one or more functions to assist with the user query.
|
||||||
|
|
||||||
|
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 }}
|
||||||
|
{{- if and $.IsThinkSet (eq $i $lastUserIdx) }}
|
||||||
|
{{- if $.Think -}}
|
||||||
|
{{- " "}}/think
|
||||||
|
{{- else -}}
|
||||||
|
{{- " "}}/no_think
|
||||||
|
{{- end -}}
|
||||||
|
{{- end }}<|im_end|>
|
||||||
|
{{ else if eq .Role "assistant" }}<|im_start|>assistant
|
||||||
|
{{ if (and $.IsThinkSet (and .Thinking (or $last (gt $i $lastUserIdx)))) -}}
|
||||||
|
<think>{{ .Thinking }}</think>
|
||||||
|
{{ end -}}
|
||||||
|
{{ 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
|
||||||
|
{{ if and $.IsThinkSet (not $.Think) -}}
|
||||||
|
<think>
|
||||||
|
|
||||||
|
</think>
|
||||||
|
|
||||||
|
{{ end -}}
|
||||||
|
{{ end }}
|
||||||
|
{{- end }}"""
|
||||||
|
|
||||||
SYSTEM """You are Qwen, created by Alibaba Cloud. You are a helpful assistant."""
|
SYSTEM """You are Qwen, created by Alibaba Cloud. You are a helpful assistant."""
|
||||||
|
|||||||
@@ -20,12 +20,69 @@ PARAMETER presence_penalty 1.5
|
|||||||
PARAMETER stop "<|im_start|>"
|
PARAMETER stop "<|im_start|>"
|
||||||
PARAMETER stop "<|im_end|>"
|
PARAMETER stop "<|im_end|>"
|
||||||
|
|
||||||
# Template for Qwen3 chat format
|
# Template for Qwen3 chat format with tool support
|
||||||
TEMPLATE """{{ if .System }}<|im_start|>system
|
TEMPLATE """{{- $lastUserIdx := -1 -}}
|
||||||
{{ .System }}<|im_end|>
|
{{- range $idx, $msg := .Messages -}}
|
||||||
{{ end }}<|im_start|>user
|
{{- if eq $msg.Role "user" }}{{ $lastUserIdx = $idx }}{{ end -}}
|
||||||
{{ .Prompt }}<|im_end|>
|
{{- end }}
|
||||||
<|im_start|>assistant
|
{{- if or .System .Tools }}<|im_start|>system
|
||||||
"""
|
{{ if .System }}
|
||||||
|
{{ .System }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Tools }}
|
||||||
|
|
||||||
|
# Tools
|
||||||
|
|
||||||
|
You may call one or more functions to assist with the user query.
|
||||||
|
|
||||||
|
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 }}
|
||||||
|
{{- if and $.IsThinkSet (eq $i $lastUserIdx) }}
|
||||||
|
{{- if $.Think -}}
|
||||||
|
{{- " "}}/think
|
||||||
|
{{- else -}}
|
||||||
|
{{- " "}}/no_think
|
||||||
|
{{- end -}}
|
||||||
|
{{- end }}<|im_end|>
|
||||||
|
{{ else if eq .Role "assistant" }}<|im_start|>assistant
|
||||||
|
{{ if (and $.IsThinkSet (and .Thinking (or $last (gt $i $lastUserIdx)))) -}}
|
||||||
|
<think>{{ .Thinking }}</think>
|
||||||
|
{{ end -}}
|
||||||
|
{{ 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
|
||||||
|
{{ if and $.IsThinkSet (not $.Think) -}}
|
||||||
|
<think>
|
||||||
|
|
||||||
|
</think>
|
||||||
|
|
||||||
|
{{ end -}}
|
||||||
|
{{ end }}
|
||||||
|
{{- end }}"""
|
||||||
|
|
||||||
SYSTEM """You are Qwen, created by Alibaba Cloud. You are a helpful assistant."""
|
SYSTEM """You are Qwen, created by Alibaba Cloud. You are a helpful assistant."""
|
||||||
|
|||||||
@@ -20,12 +20,69 @@ PARAMETER presence_penalty 1.5
|
|||||||
PARAMETER stop "<|im_start|>"
|
PARAMETER stop "<|im_start|>"
|
||||||
PARAMETER stop "<|im_end|>"
|
PARAMETER stop "<|im_end|>"
|
||||||
|
|
||||||
# Template for Qwen3 chat format
|
# Template for Qwen3 chat format with tool support
|
||||||
TEMPLATE """{{ if .System }}<|im_start|>system
|
TEMPLATE """{{- $lastUserIdx := -1 -}}
|
||||||
{{ .System }}<|im_end|>
|
{{- range $idx, $msg := .Messages -}}
|
||||||
{{ end }}<|im_start|>user
|
{{- if eq $msg.Role "user" }}{{ $lastUserIdx = $idx }}{{ end -}}
|
||||||
{{ .Prompt }}<|im_end|>
|
{{- end }}
|
||||||
<|im_start|>assistant
|
{{- if or .System .Tools }}<|im_start|>system
|
||||||
"""
|
{{ if .System }}
|
||||||
|
{{ .System }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Tools }}
|
||||||
|
|
||||||
|
# Tools
|
||||||
|
|
||||||
|
You may call one or more functions to assist with the user query.
|
||||||
|
|
||||||
|
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 }}
|
||||||
|
{{- if and $.IsThinkSet (eq $i $lastUserIdx) }}
|
||||||
|
{{- if $.Think -}}
|
||||||
|
{{- " "}}/think
|
||||||
|
{{- else -}}
|
||||||
|
{{- " "}}/no_think
|
||||||
|
{{- end -}}
|
||||||
|
{{- end }}<|im_end|>
|
||||||
|
{{ else if eq .Role "assistant" }}<|im_start|>assistant
|
||||||
|
{{ if (and $.IsThinkSet (and .Thinking (or $last (gt $i $lastUserIdx)))) -}}
|
||||||
|
<think>{{ .Thinking }}</think>
|
||||||
|
{{ end -}}
|
||||||
|
{{ 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
|
||||||
|
{{ if and $.IsThinkSet (not $.Think) -}}
|
||||||
|
<think>
|
||||||
|
|
||||||
|
</think>
|
||||||
|
|
||||||
|
{{ end -}}
|
||||||
|
{{ end }}
|
||||||
|
{{- end }}"""
|
||||||
|
|
||||||
SYSTEM """You are Qwen, created by Alibaba Cloud. You are a helpful assistant."""
|
SYSTEM """You are Qwen, created by Alibaba Cloud. You are a helpful assistant."""
|
||||||
|
|||||||
@@ -355,9 +355,9 @@ def create_ollama_model(modelfile_path, gguf_path, model_name, capabilities=None
|
|||||||
)
|
)
|
||||||
|
|
||||||
if result.returncode == 0:
|
if result.returncode == 0:
|
||||||
print(f"✓ Model '{model_name}' created successfully")
|
# Success - output will be shown by the caller
|
||||||
if result.stdout:
|
if result.stdout:
|
||||||
print(f" {result.stdout.strip()}")
|
print(result.stdout.strip())
|
||||||
else:
|
else:
|
||||||
print(f"✗ Failed to create model")
|
print(f"✗ Failed to create model")
|
||||||
if result.stderr:
|
if result.stderr:
|
||||||
|
|||||||
Reference in New Issue
Block a user