diff --git a/relay/channel/gemini/dto.go b/relay/channel/gemini/dto.go index a0e38cb4..b1dffe90 100644 --- a/relay/channel/gemini/dto.go +++ b/relay/channel/gemini/dto.go @@ -27,14 +27,9 @@ type FunctionCall struct { Arguments any `json:"args"` } -type GeminiFunctionResponseContent struct { - Name string `json:"name"` - Content any `json:"content"` -} - type FunctionResponse struct { - Name string `json:"name"` - Response GeminiFunctionResponseContent `json:"response"` + Name string `json:"name"` + Response map[string]interface{} `json:"response"` } type GeminiPartExecutableCode struct { diff --git a/relay/channel/gemini/relay-gemini.go b/relay/channel/gemini/relay-gemini.go index bf272f90..161ff61e 100644 --- a/relay/channel/gemini/relay-gemini.go +++ b/relay/channel/gemini/relay-gemini.go @@ -186,17 +186,12 @@ func CovertGemini2OpenAI(textRequest dto.GeneralOpenAIRequest, info *relaycommon } else if val, exists := tool_call_ids[message.ToolCallId]; exists { name = val } - content := common.StrToMap(message.StringContent()) + contentMap := common.StrToMap(message.StringContent()) functionResp := &FunctionResponse{ - Name: name, - Response: GeminiFunctionResponseContent{ - Name: name, - Content: content, - }, - } - if content == nil { - functionResp.Response.Content = message.StringContent() + Name: name, + Response: contentMap, } + *parts = append(*parts, GeminiPart{ FunctionResponse: functionResp, })