diff --git a/relay/channel/claude/relay-claude.go b/relay/channel/claude/relay-claude.go index 92f8bbbe..5316a66e 100644 --- a/relay/channel/claude/relay-claude.go +++ b/relay/channel/claude/relay-claude.go @@ -241,7 +241,7 @@ func RequestOpenAI2ClaudeMessage(textRequest dto.GeneralOpenAIRequest) (*dto.Cla if mediaMessage.Type == "text" { claudeMediaMessage.Text = common.GetPointer[string](mediaMessage.Text) } else { - imageUrl := mediaMessage.ImageUrl.(dto.MessageImageUrl) + imageUrl := mediaMessage.GetImageMedia() claudeMediaMessage.Type = "image" claudeMediaMessage.Source = &dto.ClaudeMessageSource{ Type: "base64", diff --git a/relay/channel/gemini/relay-gemini.go b/relay/channel/gemini/relay-gemini.go index 2fcb8c4d..e1cd110c 100644 --- a/relay/channel/gemini/relay-gemini.go +++ b/relay/channel/gemini/relay-gemini.go @@ -180,9 +180,9 @@ func CovertGemini2OpenAI(textRequest dto.GeneralOpenAIRequest) (*GeminiChatReque return nil, fmt.Errorf("too many images in the message, max allowed is %d", constant.GeminiVisionMaxImageNum) } // 判断是否是url - if strings.HasPrefix(part.ImageUrl.(dto.MessageImageUrl).Url, "http") { + if strings.HasPrefix(part.GetImageMedia().Url, "http") { // 是url,获取图片的类型和base64编码的数据 - fileData, err := service.GetFileBase64FromUrl(part.ImageUrl.(dto.MessageImageUrl).Url) + fileData, err := service.GetFileBase64FromUrl(part.GetImageMedia().Url) if err != nil { return nil, fmt.Errorf("get file base64 from url failed: %s", err.Error()) } @@ -193,7 +193,7 @@ func CovertGemini2OpenAI(textRequest dto.GeneralOpenAIRequest) (*GeminiChatReque }, }) } else { - format, base64String, err := service.DecodeBase64FileData(part.ImageUrl.(dto.MessageImageUrl).Url) + format, base64String, err := service.DecodeBase64FileData(part.GetImageMedia().Url) if err != nil { return nil, fmt.Errorf("decode base64 image data failed: %s", err.Error()) } diff --git a/relay/channel/mistral/text.go b/relay/channel/mistral/text.go index 8987b8f0..75272e34 100644 --- a/relay/channel/mistral/text.go +++ b/relay/channel/mistral/text.go @@ -10,7 +10,7 @@ func requestOpenAI2Mistral(request *dto.GeneralOpenAIRequest) *dto.GeneralOpenAI mediaMessages := message.ParseContent() for j, mediaMessage := range mediaMessages { if mediaMessage.Type == dto.ContentTypeImageURL { - imageUrl := mediaMessage.ImageUrl.(dto.MessageImageUrl) + imageUrl := mediaMessage.GetImageMedia() mediaMessage.ImageUrl = imageUrl.Url mediaMessages[j] = mediaMessage } diff --git a/relay/channel/ollama/relay-ollama.go b/relay/channel/ollama/relay-ollama.go index 89e9c214..89a04646 100644 --- a/relay/channel/ollama/relay-ollama.go +++ b/relay/channel/ollama/relay-ollama.go @@ -19,7 +19,7 @@ func requestOpenAI2Ollama(request dto.GeneralOpenAIRequest) (*OllamaRequest, err mediaMessages := message.ParseContent() for j, mediaMessage := range mediaMessages { if mediaMessage.Type == dto.ContentTypeImageURL { - imageUrl := mediaMessage.ImageUrl.(dto.MessageImageUrl) + imageUrl := mediaMessage.GetImageMedia() // check if not base64 if strings.HasPrefix(imageUrl.Url, "http") { fileData, err := service.GetFileBase64FromUrl(imageUrl.Url) diff --git a/relay/channel/zhipu_4v/relay-zhipu_v4.go b/relay/channel/zhipu_4v/relay-zhipu_v4.go index faffec6f..c55cee51 100644 --- a/relay/channel/zhipu_4v/relay-zhipu_v4.go +++ b/relay/channel/zhipu_4v/relay-zhipu_v4.go @@ -79,7 +79,7 @@ func requestOpenAI2Zhipu(request dto.GeneralOpenAIRequest) *dto.GeneralOpenAIReq mediaMessages := message.ParseContent() for j, mediaMessage := range mediaMessages { if mediaMessage.Type == dto.ContentTypeImageURL { - imageUrl := mediaMessage.ImageUrl.(dto.MessageImageUrl) + imageUrl := mediaMessage.GetImageMedia() // check if base64 if strings.HasPrefix(imageUrl.Url, "data:image/") { // 去除base64数据的URL前缀(如果有)