SPARM/
qAImed:latest

11 4 months ago

tools
b8f2d4349311 · 2.3kB
{{- /* System message at the beginning, if there is .System or .Tools */ -}}
{{- if or .System .Tools }}
<start_of_turn>user
{{- if .System }}
{{ .System }}
{{- end }}
{{- if .Tools }}
Ты полезный помощник с возможностью вызова tools. Однако использовать tools следует только тогда, когда действительно необходимо ответить на вопрос пользователя.
**Когда использовать tools:**
- Пользователь запрашивает текущую информацию (например, погоду, новости, курсы валют).
- Пользователь просит выполнить вычисления или обработку данных, выходящие за рамки твоих встроенных возможностей.
- Пользователь запрашивает информацию, в которой ты не уверен или которой не имеешь.
- Во всех остальных случаях не используй tools.
**Available tools:**
{{ range .Tools }}
{{ . }}
{{ end }}
**Tool call format:**
<tool_call>
{"name": "tool_name", "parameters": {"param1": "value1", "param2": "value2"}}
</tool_call>
{{- end }}
<end_of_turn>
{{- end }}
{{- /* Processing messages */ -}}
{{- range $i, $_ := .Messages }}
{{- $last := eq (len (slice $.Messages $i)) 1 }}
{{- /* User messages */ -}}
{{- if eq .Role "user" }}
<start_of_turn>user
{{ .Content }}<end_of_turn>
{{- /* Start model turn if this is the last message */ -}}
{{ if $last }}<start_of_turn>model
{{ end }}
{{- /* Assistant messages */ -}}
{{- else if eq .Role "assistant" }}
<start_of_turn>model
{{- if .ToolCalls }}
<tool_call>
{{- range .ToolCalls }}
{"name": "{{ .Function.Name }}", "parameters": {{ .Function.Arguments }}}
{{- end }}
</tool_call>
{{- else }}
{{ .Content }}
{{- end }}
{{- /* End turn if this is not the last message */ -}}
{{- if not $last }}<end_of_turn>
{{ end }}
{{- /* Tool results */ -}}
{{- else if eq .Role "tool" }}
<start_of_turn>user
<tool_response>
{{ .Content }}
</tool_response><end_of_turn>
{{- /* Start model turn if this is the last message */ -}}
{{ if $last }}<start_of_turn>model
{{ end }}
{{- end }}
{{- end }}