From cf663e7ac4be1516c69239784d8dc213bb38ba3d Mon Sep 17 00:00:00 2001 From: CaIon <1808837298@qq.com> Date: Sun, 19 Nov 2023 16:35:37 +0800 Subject: [PATCH] fix whisper-1 --- controller/relay-audio.go | 13 ++++++++++--- controller/relay-utils.go | 4 ++-- middleware/distributor.go | 3 ++- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/controller/relay-audio.go b/controller/relay-audio.go index 2e9e49a..371ed88 100644 --- a/controller/relay-audio.go +++ b/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 == "" { diff --git a/controller/relay-utils.go b/controller/relay-utils.go index 1873cab..6b1322b 100644 --- a/controller/relay-utils.go +++ b/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 { diff --git a/middleware/distributor.go b/middleware/distributor.go index c9d8be8..88a402c 100644 --- a/middleware/distributor.go +++ b/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