From 792e2b164b2370ebe966d51634277603fd02b8fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Loukota?= Date: Sun, 27 Apr 2025 15:44:17 +0200 Subject: [PATCH] fix: gemini tool calling --- internal/llm/provider/gemini.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/internal/llm/provider/gemini.go b/internal/llm/provider/gemini.go index c9e9cc0934958e6467d2f5293fe9fe13fd886f8c..5f7da54810a8d60a22b0ad252c7f48b2722bd464 100644 --- a/internal/llm/provider/gemini.go +++ b/internal/llm/provider/gemini.go @@ -132,7 +132,8 @@ func (g *geminiClient) convertMessages(messages []message.Message) []*genai.Cont } func (g *geminiClient) convertTools(tools []tools.BaseTool) []*genai.Tool { - geminiTools := make([]*genai.Tool, 0, len(tools)) + geminiTool := &genai.Tool{} + geminiTool.FunctionDeclarations = make([]*genai.FunctionDeclaration, 0, len(tools)) for _, tool := range tools { info := tool.Info() @@ -146,12 +147,10 @@ func (g *geminiClient) convertTools(tools []tools.BaseTool) []*genai.Tool { }, } - geminiTools = append(geminiTools, &genai.Tool{ - FunctionDeclarations: []*genai.FunctionDeclaration{declaration}, - }) + geminiTool.FunctionDeclarations = append(geminiTool.FunctionDeclarations, declaration) } - return geminiTools + return []*genai.Tool{geminiTool} } func (g *geminiClient) finishReason(reason genai.FinishReason) message.FinishReason {