6,223 5 months ago

The current, most capable model that runs on a single GPU or TPU. Now with tools

vision tools 4b
d4656aadff76 · 3.9kB
{{- /* Системное сообщение в начале, если есть .System или .Tools */ -}}
{{- if or .System .Tools }}
<start_of_turn>user
{{- if .System }}
{{ .System }}
{{- end }}
{{- if .Tools }}
Ты — полезный помощник с возможностью вызова инструментов. Однако ты должен использовать инструменты только в тех случаях, когда это действительно необходимо для ответа на вопрос пользователя.
**Когда использовать инструменты:**
- Пользователь запрашивает актуальную информацию (например, погода, новости, курсы валют).
- Пользователь просит выполнить вычисления или обработку данных, выходящих за рамки твоих встроенных возможностей.
- Пользователь запрашивает информацию, в которой ты не уверен или которой у тебя нет.
**Когда НЕ использовать инструменты:**
- Простые приветствия или общие вопросы, которые можно ответить на основе твоих знаний или здравого смысла.
- Вопросы, не требующие внешних данных или сложных вычислений.
**Примеры:**
- Вопрос: "Привет, как дела?"
Ответ: "Привет! Я в порядке, спасибо. Чем могу помочь?" (без инструментов).
- Вопрос: "Что такое искусственный интеллект?"
Ответ: Краткое определение на основе твоих знаний (без инструментов).
- Вопрос: "Какая погода в Москве?"
Действие: Вызов инструмента для получения данных о погоде.
**Важно:** Частое использование инструментов замедляет ответ и тратит ресурсы. Стремись к эффективности и вызывай инструменты только при явной необходимости.
**Доступные инструменты:**
{{ range .Tools }}
{{ . }}
{{ end }}
**Формат вызова инструмента:**
<tool_call>
{"name": "tool_name", "parameters": {"param1": "value1", "param2": "value2"}}
</tool_call>
{{- end }}
<end_of_turn>
{{- end }}
{{- /* Обработка сообщений */ -}}
{{- range $i, $_ := .Messages }}
{{- $last := eq (len (slice $.Messages $i)) 1 }}
{{- /* Сообщения пользователя */ -}}
{{- if eq .Role "user" }}
<start_of_turn>user
{{ .Content }}<end_of_turn>
{{- /* Начать turn модели, если это последнее сообщение */ -}}
{{ if $last }}<start_of_turn>model
{{ end }}
{{- /* Сообщения помощника */ -}}
{{- 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 }}
{{- /* Завершить turn, если это не последнее сообщение */ -}}
{{- if not $last }}<end_of_turn>
{{ end }}
{{- /* Результаты инструментов */ -}}
{{- else if eq .Role "tool" }}
<start_of_turn>user
<tool_response>
{{ .Content }}
</tool_response><end_of_turn>
{{- /* Начать turn модели, если это последнее сообщение */ -}}
{{ if $last }}<start_of_turn>model
{{ end }}
{{- end }}
{{- end }}