Browse Source

fix whisper-1

CaIon 2 years ago
parent
commit
cf663e7ac4
3 changed files with 14 additions and 6 deletions
  1. 10 3
      controller/relay-audio.go
  2. 2 2
      controller/relay-utils.go
  3. 2 1
      middleware/distributor.go

+ 10 - 3
controller/relay-audio.go

@@ -32,10 +32,17 @@ func relayAudioHelper(c *gin.Context, relayMode int) *OpenAIErrorWithStatusCode
 	group := c.GetString("group")
 
 	var audioRequest AudioRequest
-	err := common.UnmarshalBodyReusable(c, &audioRequest)
-	if err != nil {
-		return errorWrapper(err, "bind_request_body_failed", http.StatusBadRequest)
+	if !strings.HasPrefix(c.Request.URL.Path, "/v1/audio/transcriptions") {
+		err := common.UnmarshalBodyReusable(c, &audioRequest)
+		if err != nil {
+			return errorWrapper(err, "bind_request_body_failed", http.StatusBadRequest)
+		}
+	} else {
+		audioRequest = AudioRequest{
+			Model: "whisper-1",
+		}
 	}
+	//err := common.UnmarshalBodyReusable(c, &audioRequest)
 
 	// request validation
 	if audioRequest.Model == "" {

+ 2 - 2
controller/relay-utils.go

@@ -82,11 +82,11 @@ func getImageToken(imageUrl MessageImageUrl) (int, error) {
 		return 0, err
 	}
 
-	defer response.Body.Close()
-
 	// 限制读取的字节数,防止下载整个图片
 	limitReader := io.LimitReader(response.Body, 8192)
 
+	response.Body.Close()
+
 	// 读取图片的头部信息来获取图片尺寸
 	config, _, err := image.DecodeConfig(limitReader)
 	if err != nil {

+ 2 - 1
middleware/distributor.go

@@ -46,8 +46,9 @@ func Distribute() func(c *gin.Context) {
 				if modelRequest.Model == "" {
 					modelRequest.Model = "midjourney"
 				}
+			} else if !strings.HasPrefix(c.Request.URL.Path, "/v1/audio/transcriptions") {
+				err = common.UnmarshalBodyReusable(c, &modelRequest)
 			}
-			err = common.UnmarshalBodyReusable(c, &modelRequest)
 			if err != nil {
 				abortWithMessage(c, http.StatusBadRequest, "无效的请求")
 				return