feat: gemini image support edit

This commit is contained in:
feitianbubu
2025-11-27 12:39:17 +08:00
parent 95a7749e1d
commit cb5a37abed
5 changed files with 81 additions and 5 deletions

View File

@@ -142,11 +142,29 @@ func processSizeParameters(size, quality string) ImageConfig {
}
func (a *Adaptor) ConvertImageRequest(c *gin.Context, info *relaycommon.RelayInfo, request dto.ImageRequest) (any, error) {
if strings.HasPrefix(info.UpstreamModelName, "gemini-3-pro-image") {
if model_setting.IsGeminiModelSupportImagine(info.UpstreamModelName) {
var content any
if base64Data, err := relaycommon.GetImageBase64sFromForm(c); err == nil {
content = []any{
dto.MediaContent{
Type: dto.ContentTypeText,
Text: request.Prompt,
},
dto.MediaContent{
Type: dto.ContentTypeFile,
File: &dto.MessageFile{
FileData: base64Data.String(),
},
},
}
} else {
content = request.Prompt
}
chatRequest := dto.GeneralOpenAIRequest{
Model: request.Model,
Messages: []dto.Message{
{Role: "user", Content: request.Prompt},
{Role: "user", Content: content},
},
N: int(request.N),
}