Sfoglia il codice sorgente

fix(relay): refine error message for unsupported MIME types and enhance error handling in OpenAI wrapper

CaIon 6 mesi fa
parent
commit
2e4fa32d63
2 ha cambiato i file con 2 aggiunte e 4 eliminazioni
  1. 1 3
      relay/channel/gemini/relay-gemini.go
  2. 1 1
      service/error.go

+ 1 - 3
relay/channel/gemini/relay-gemini.go

@@ -325,9 +325,7 @@ func CovertGemini2OpenAI(textRequest dto.GeneralOpenAIRequest, info *relaycommon
 					// 校验 MimeType 是否在 Gemini 支持的白名单中
 					if _, ok := geminiSupportedMimeTypes[strings.ToLower(fileData.MimeType)]; !ok {
 						url := part.GetImageMedia().Url
-						url = strings.TrimPrefix(url, "http://")
-						url = strings.TrimPrefix(url, "https://")
-						return nil, fmt.Errorf("MIME type '%s' from URL '%s' is not supported by Gemini. Supported types are: %v", fileData.MimeType, url, getSupportedMimeTypesList())
+						return nil, fmt.Errorf("mime type is not supported by Gemini: '%s', url: '%s', supported types are: %v", fileData.MimeType, url, getSupportedMimeTypesList())
 					}
 
 					parts = append(parts, GeminiPart{

+ 1 - 1
service/error.go

@@ -29,7 +29,7 @@ func MidjourneyErrorWithStatusCodeWrapper(code int, desc string, statusCode int)
 func OpenAIErrorWrapper(err error, code string, statusCode int) *dto.OpenAIErrorWithStatusCode {
 	text := err.Error()
 	lowerText := strings.ToLower(text)
-	if !strings.HasPrefix(lowerText, "get file base64 from url") {
+	if !strings.HasPrefix(lowerText, "get file base64 from url") && !strings.HasPrefix(lowerText, "mime type is not supported") {
 		if strings.Contains(lowerText, "post") || strings.Contains(lowerText, "dial") || strings.Contains(lowerText, "http") {
 			common.SysLog(fmt.Sprintf("error: %s", text))
 			text = "请求上游地址失败"