refactor: Replace direct access to ImageUrl with GetImageMedia method across multiple relay channels
This commit is contained in:
@@ -241,7 +241,7 @@ func RequestOpenAI2ClaudeMessage(textRequest dto.GeneralOpenAIRequest) (*dto.Cla
|
|||||||
if mediaMessage.Type == "text" {
|
if mediaMessage.Type == "text" {
|
||||||
claudeMediaMessage.Text = common.GetPointer[string](mediaMessage.Text)
|
claudeMediaMessage.Text = common.GetPointer[string](mediaMessage.Text)
|
||||||
} else {
|
} else {
|
||||||
imageUrl := mediaMessage.ImageUrl.(dto.MessageImageUrl)
|
imageUrl := mediaMessage.GetImageMedia()
|
||||||
claudeMediaMessage.Type = "image"
|
claudeMediaMessage.Type = "image"
|
||||||
claudeMediaMessage.Source = &dto.ClaudeMessageSource{
|
claudeMediaMessage.Source = &dto.ClaudeMessageSource{
|
||||||
Type: "base64",
|
Type: "base64",
|
||||||
|
|||||||
@@ -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)
|
return nil, fmt.Errorf("too many images in the message, max allowed is %d", constant.GeminiVisionMaxImageNum)
|
||||||
}
|
}
|
||||||
// 判断是否是url
|
// 判断是否是url
|
||||||
if strings.HasPrefix(part.ImageUrl.(dto.MessageImageUrl).Url, "http") {
|
if strings.HasPrefix(part.GetImageMedia().Url, "http") {
|
||||||
// 是url,获取图片的类型和base64编码的数据
|
// 是url,获取图片的类型和base64编码的数据
|
||||||
fileData, err := service.GetFileBase64FromUrl(part.ImageUrl.(dto.MessageImageUrl).Url)
|
fileData, err := service.GetFileBase64FromUrl(part.GetImageMedia().Url)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("get file base64 from url failed: %s", err.Error())
|
return nil, fmt.Errorf("get file base64 from url failed: %s", err.Error())
|
||||||
}
|
}
|
||||||
@@ -193,7 +193,7 @@ func CovertGemini2OpenAI(textRequest dto.GeneralOpenAIRequest) (*GeminiChatReque
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
format, base64String, err := service.DecodeBase64FileData(part.ImageUrl.(dto.MessageImageUrl).Url)
|
format, base64String, err := service.DecodeBase64FileData(part.GetImageMedia().Url)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("decode base64 image data failed: %s", err.Error())
|
return nil, fmt.Errorf("decode base64 image data failed: %s", err.Error())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ func requestOpenAI2Mistral(request *dto.GeneralOpenAIRequest) *dto.GeneralOpenAI
|
|||||||
mediaMessages := message.ParseContent()
|
mediaMessages := message.ParseContent()
|
||||||
for j, mediaMessage := range mediaMessages {
|
for j, mediaMessage := range mediaMessages {
|
||||||
if mediaMessage.Type == dto.ContentTypeImageURL {
|
if mediaMessage.Type == dto.ContentTypeImageURL {
|
||||||
imageUrl := mediaMessage.ImageUrl.(dto.MessageImageUrl)
|
imageUrl := mediaMessage.GetImageMedia()
|
||||||
mediaMessage.ImageUrl = imageUrl.Url
|
mediaMessage.ImageUrl = imageUrl.Url
|
||||||
mediaMessages[j] = mediaMessage
|
mediaMessages[j] = mediaMessage
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ func requestOpenAI2Ollama(request dto.GeneralOpenAIRequest) (*OllamaRequest, err
|
|||||||
mediaMessages := message.ParseContent()
|
mediaMessages := message.ParseContent()
|
||||||
for j, mediaMessage := range mediaMessages {
|
for j, mediaMessage := range mediaMessages {
|
||||||
if mediaMessage.Type == dto.ContentTypeImageURL {
|
if mediaMessage.Type == dto.ContentTypeImageURL {
|
||||||
imageUrl := mediaMessage.ImageUrl.(dto.MessageImageUrl)
|
imageUrl := mediaMessage.GetImageMedia()
|
||||||
// check if not base64
|
// check if not base64
|
||||||
if strings.HasPrefix(imageUrl.Url, "http") {
|
if strings.HasPrefix(imageUrl.Url, "http") {
|
||||||
fileData, err := service.GetFileBase64FromUrl(imageUrl.Url)
|
fileData, err := service.GetFileBase64FromUrl(imageUrl.Url)
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ func requestOpenAI2Zhipu(request dto.GeneralOpenAIRequest) *dto.GeneralOpenAIReq
|
|||||||
mediaMessages := message.ParseContent()
|
mediaMessages := message.ParseContent()
|
||||||
for j, mediaMessage := range mediaMessages {
|
for j, mediaMessage := range mediaMessages {
|
||||||
if mediaMessage.Type == dto.ContentTypeImageURL {
|
if mediaMessage.Type == dto.ContentTypeImageURL {
|
||||||
imageUrl := mediaMessage.ImageUrl.(dto.MessageImageUrl)
|
imageUrl := mediaMessage.GetImageMedia()
|
||||||
// check if base64
|
// check if base64
|
||||||
if strings.HasPrefix(imageUrl.Url, "data:image/") {
|
if strings.HasPrefix(imageUrl.Url, "data:image/") {
|
||||||
// 去除base64数据的URL前缀(如果有)
|
// 去除base64数据的URL前缀(如果有)
|
||||||
|
|||||||
Reference in New Issue
Block a user