mirror of
https://github.com/linux-do/new-api.git
synced 2025-11-06 22:33:41 +08:00
Merge pull request #383 from Yan-Zero/main
fix: the base64 format image_url for gemini
This commit is contained in:
@@ -83,13 +83,29 @@ func CovertGemini2OpenAI(textRequest dto.GeneralOpenAIRequest) *GeminiChatReques
|
|||||||
if imageNum > GeminiVisionMaxImageNum {
|
if imageNum > GeminiVisionMaxImageNum {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
mimeType, data, _ := service.GetImageFromUrl(part.ImageUrl.(dto.MessageImageUrl).Url)
|
// 判断是否是url
|
||||||
parts = append(parts, GeminiPart{
|
if strings.HasPrefix(part.ImageUrl.(dto.MessageImageUrl).Url, "http") {
|
||||||
InlineData: &GeminiInlineData{
|
// 是url,获取图片的类型和base64编码的数据
|
||||||
MimeType: mimeType,
|
mimeType, data, _ := service.GetImageFromUrl(part.ImageUrl.(dto.MessageImageUrl).Url)
|
||||||
Data: data,
|
parts = append(parts, GeminiPart{
|
||||||
},
|
InlineData: &GeminiInlineData{
|
||||||
})
|
MimeType: mimeType,
|
||||||
|
Data: data,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
_, format, base64String, err := service.DecodeBase64ImageData(part.ImageUrl.(dto.MessageImageUrl).Url)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
parts = append(parts, GeminiPart{
|
||||||
|
InlineData: &GeminiInlineData{
|
||||||
|
MimeType: "image/" + format,
|
||||||
|
Data: base64String,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
content.Parts = parts
|
content.Parts = parts
|
||||||
|
|||||||
Reference in New Issue
Block a user