89 lines
2.3 KiB
Plaintext
89 lines
2.3 KiB
Plaintext
# ollama-utils-metadata
|
|
# hf_upstream: https://huggingface.co/Qwen/Qwen3-14B-GGUF
|
|
# quantization: q8_0
|
|
# capabilities: tools,thinking
|
|
FROM ./qwen3-14b-q8_0.gguf
|
|
|
|
# Context and output parameters
|
|
PARAMETER num_ctx 8192
|
|
PARAMETER num_predict 32768
|
|
|
|
# Sampling parameters (non-thinking mode)
|
|
PARAMETER temperature 0.7
|
|
PARAMETER top_p 0.8
|
|
PARAMETER top_k 20
|
|
PARAMETER min_p 0.00
|
|
PARAMETER repeat_penalty 1.0
|
|
PARAMETER presence_penalty 1.5
|
|
|
|
# Stop tokens
|
|
PARAMETER stop "<|im_start|>"
|
|
PARAMETER stop "<|im_end|>"
|
|
|
|
# Template for Qwen3 chat format with tool support
|
|
TEMPLATE """{{- $lastUserIdx := -1 -}}
|
|
{{- range $idx, $msg := .Messages -}}
|
|
{{- if eq $msg.Role "user" }}{{ $lastUserIdx = $idx }}{{ end -}}
|
|
{{- end }}
|
|
{{- 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."""
|