19 4 months ago

Модель с шаблоном, где поиск вызывается всегда для RAG и ответы на русском языке vision tools

vision tools
a560a814545f · 3.5kB
{{- /* Системное сообщение и блок представления инструментов */ -}}
{{- if or .System .Tools }}
<start_of_turn>user
{{- if .System }}
{{ .System }}
{{- end }}
{{- if .Tools }}
Ниже приведены инструкции по работе с инструментами и список доступных инструментов. Ты должен строго следовать этим инструкциям.
**Инструкции по использованию инструментов:**
1. **Всегда вызывай инструмент:** Для ответа на вопрос пользователя ты **ВСЕГДА** должен сначала использовать наиболее подходящий инструмент из списка ниже. Не пытайся отвечать из своей памяти или на основе общих знаний.
2. **Основывайся на результатах:** Твой ответ должен быть **СТРОГО** основан на информации, полученной от инструмента (которая будет предоставлена в теге `<tool_response>`). Не добавляй информацию из других источников.
3. **Если информации нет:** Если инструмент не вернул релевантную информацию, или ее недостаточно для ответа, ты должен четко сообщить: "К сожалению, я не смог найти информацию по вашему запросу в предоставленных материалах." или "Предоставленные материалы не содержат ответа на ваш вопрос." В этом случае **НЕ ПРИДУМЫВАЙ** и не предполагай ответ.
4. **Язык:** Всегда отвечай **ТОЛЬКО на РУССКОМ ЯЗЫКЕ**.
**Доступные инструменты:**
{{ 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 }}