summaryrefslogtreecommitdiffhomepage
path: root/internal
diff options
context:
space:
mode:
authorLukáš Loukota <[email protected]>2025-04-27 15:44:17 +0200
committerKujtim Hoxha <[email protected]>2025-04-27 19:12:02 +0200
commit792e2b164b2370ebe966d51634277603fd02b8fb (patch)
tree7e893f0e4ef5e1582feb4581dcb6ff206461dac3 /internal
parent5859dcdc00151efdc25e598a41bff622d19ba23a (diff)
downloadopencode-792e2b164b2370ebe966d51634277603fd02b8fb.tar.gz
opencode-792e2b164b2370ebe966d51634277603fd02b8fb.zip
fix: gemini tool calling
Diffstat (limited to 'internal')
-rw-r--r--internal/llm/provider/gemini.go9
1 files changed, 4 insertions, 5 deletions
diff --git a/internal/llm/provider/gemini.go b/internal/llm/provider/gemini.go
index c9e9cc093..5f7da5481 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 {