今回はollamaのオフィシャルクライアントでfuncation callingを使いたいです。
前回はlangchaingoで使っただけと、試してたらollamaの引数toolsは無効です、githubの実例ollama_functions_exampleはsystem messageとtoolsのjsonを組み合わせて内容を生成する。例えば:
func systemMessage() string {
bs, err := json.Marshal(functions)
if err != nil {
log.Fatal(err)
}
return fmt.Sprintf(`You have access to the following tools:
%s
To use a tool, respond with a JSON object with the following structure:
{
"tool": <name of the called tool>,
"tool_input": <parameters for the tool matching the above JSON schema>
}
`, string(bs))
}
これはちょっと優雅でない、ollama/api
を使いたいと思います。