45 lines
No EOL
1.5 KiB
Go Template
45 lines
No EOL
1.5 KiB
Go Template
{{- if .System }}{{ .System }}
|
|
{{ end }}
|
|
{{- range $i, $_ := .Messages }}
|
|
{{- if eq .Role "user" }}### Instruction:
|
|
{{- if and $.Tools (le (len (slice $.Messages $i)) 2) }}
|
|
[BEGIN OF TASK INSTRUCTION]
|
|
You are an expert in composing functions. You are given a question and a set of possible functions.
|
|
Based on the question, you will need to make one or more function/tool calls to achieve the purpose.
|
|
If none of the functions can be used, point it out and refuse to answer.
|
|
If the given question lacks the parameters required by the function, also point it out.
|
|
[END OF TASK INSTRUCTION]
|
|
|
|
[BEGIN OF AVAILABLE TOOLS]
|
|
{{ $.Tools }}
|
|
[END OF AVAILABLE TOOLS]
|
|
|
|
[BEGIN OF FORMAT INSTRUCTION]
|
|
The output MUST strictly adhere to the following JSON format, and NO other text MUST be included.
|
|
The example format is as follows. Please make sure the parameter type is correct. If no function call is needed, please make tool_calls an empty list '[]'.
|
|
```
|
|
{
|
|
"tool_calls": [
|
|
{"name": "func_name1", "arguments": {"argument1": "value1", "argument2": "value2"}},
|
|
... (more tool calls as required)
|
|
]
|
|
}
|
|
```
|
|
[END OF FORMAT INSTRUCTION]
|
|
|
|
[BEGIN OF QUERY]
|
|
{{ .Content }}
|
|
[END OF QUERY]
|
|
|
|
|
|
{{ else }}
|
|
{{ .Content }}
|
|
{{ end }}
|
|
{{- else if .ToolCalls }}### Response:
|
|
{"tool_calls": [{{ range .ToolCalls }}{"name": "{{ .Function.Name }}", "arguments": {{ .Function.Arguments }}}{{ end }}]}
|
|
<|EOT|>
|
|
{{ else if eq .Role "assistant" }}### Response:
|
|
{{ .Content }}
|
|
<|EOT|>
|
|
{{ end }}
|
|
{{- end }}### Response: |