Jelajahi Sumber

feat: support gemini-3-pro-image-preview via images/generations

feitianbubu 1 bulan lalu
induk
melakukan
bff04514a8
2 mengubah file dengan 13 tambahan dan 2 penghapusan
  1. 9 2
      relay/channel/gemini/adaptor.go
  2. 4 0
      setting/model_setting/gemini.go

+ 9 - 2
relay/channel/gemini/adaptor.go

@@ -56,8 +56,15 @@ func (a *Adaptor) ConvertAudioRequest(c *gin.Context, info *relaycommon.RelayInf
 }
 
 func (a *Adaptor) ConvertImageRequest(c *gin.Context, info *relaycommon.RelayInfo, request dto.ImageRequest) (any, error) {
-	if !strings.HasPrefix(info.UpstreamModelName, "imagen") {
-		return nil, errors.New("not supported model for image generation")
+	if strings.HasPrefix(info.UpstreamModelName, "gemini-3-pro-image") {
+		chatRequest := dto.GeneralOpenAIRequest{
+			Model: request.Model,
+			Messages: []dto.Message{
+				{Role: "user", Content: request.Prompt},
+			},
+			N: int(request.N),
+		}
+		return a.ConvertOpenAIRequest(c, info, &chatRequest)
 	}
 
 	// convert size to aspect ratio but allow user to specify aspect ratio

+ 4 - 0
setting/model_setting/gemini.go

@@ -26,6 +26,10 @@ var defaultGeminiSettings = GeminiSettings{
 	SupportedImagineModels: []string{
 		"gemini-2.0-flash-exp-image-generation",
 		"gemini-2.0-flash-exp",
+		"gemini-3-pro-image-preview",
+		"gemini-2.5-flash-image",
+		"nano-banana",
+		"nano-banana-pro",
 	},
 	ThinkingAdapterEnabled:                false,
 	ThinkingAdapterBudgetTokensPercentage: 0.6,