From 78cbbd9ac881fa9f6c3694bb6b05819ec1979ca6 Mon Sep 17 00:00:00 2001 From: mxdlzg Date: Tue, 23 Apr 2024 14:57:37 +0800 Subject: [PATCH] Fix gemini tool calls (also keep support functions). --- relay/adaptor/gemini/main.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/relay/adaptor/gemini/main.go b/relay/adaptor/gemini/main.go index 9c2d78b2..e006c594 100644 --- a/relay/adaptor/gemini/main.go +++ b/relay/adaptor/gemini/main.go @@ -55,7 +55,17 @@ func ConvertRequest(textRequest model.GeneralOpenAIRequest) *ChatRequest { MaxOutputTokens: textRequest.MaxTokens, }, } - if textRequest.Functions != nil { + if textRequest.Tools != nil { + functions := make([]model.Function, 0, len(textRequest.Tools)) + for _, tool := range textRequest.Tools { + functions = append(functions, tool.Function) + } + geminiRequest.Tools = []ChatTools{ + { + FunctionDeclarations: functions, + }, + } + } else if textRequest.Functions != nil { geminiRequest.Tools = []ChatTools{ { FunctionDeclarations: textRequest.Functions,