diff options
| author | Lukáš Loukota <[email protected]> | 2025-04-27 15:44:17 +0200 |
|---|---|---|
| committer | Kujtim Hoxha <[email protected]> | 2025-04-27 19:12:02 +0200 |
| commit | 792e2b164b2370ebe966d51634277603fd02b8fb (patch) | |
| tree | 7e893f0e4ef5e1582feb4581dcb6ff206461dac3 | |
| parent | 5859dcdc00151efdc25e598a41bff622d19ba23a (diff) | |
| download | opencode-792e2b164b2370ebe966d51634277603fd02b8fb.tar.gz opencode-792e2b164b2370ebe966d51634277603fd02b8fb.zip | |
fix: gemini tool calling
| -rw-r--r-- | internal/llm/provider/gemini.go | 9 |
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 { |
