diff --git a/controller/relay.go b/controller/relay.go index 4a4f88eab75a..1d78978487e7 100644 --- a/controller/relay.go +++ b/controller/relay.go @@ -171,7 +171,7 @@ func Relay(c *gin.Context) { common.LogError(c, fmt.Sprintf("origin 429 error: %s", openaiErr.Error.Message)) openaiErr.Error.Message = "当前分组上游负载已饱和,请稍后再试" } - + // 处理自定义的 NewAPI batch 错误码 if openaiErr.StatusCode == dto.StatusNewAPIBatchRateLimitExceeded { common.LogError(c, fmt.Sprintf("origin %d error: %s", openaiErr.StatusCode, openaiErr.Error.Message)) diff --git a/middleware/request-logger.go b/middleware/request-logger.go index 542250f22b37..cac224c787d0 100644 --- a/middleware/request-logger.go +++ b/middleware/request-logger.go @@ -50,7 +50,7 @@ func RequestLogger() gin.HandlerFunc { // 构建日志信息 logInfo := fmt.Sprintf("Request: %s %s\tClient IP: %s\tHeaders: %s\t", c.Request.Method, - c.Request.URL.Path, + c.Request.URL.String(), c.ClientIP(), formatMap(headers), ) diff --git a/relay/constant/relay_mode.go b/relay/constant/relay_mode.go index 5e042fc70147..0dc20d6dff03 100644 --- a/relay/constant/relay_mode.go +++ b/relay/constant/relay_mode.go @@ -68,6 +68,8 @@ func Path2RelayMode(path string) int { relayMode = RelayModeRerank } else if strings.HasPrefix(path, "/v1/realtime") { relayMode = RelayModeRealtime + } else if strings.HasPrefix(path, "/v1/responses") { + relayMode = RelayModeChatCompletions } return relayMode } diff --git a/relay/relay-text.go b/relay/relay-text.go index f8a2637678f6..cb3930dad4a1 100644 --- a/relay/relay-text.go +++ b/relay/relay-text.go @@ -52,7 +52,7 @@ func getAndValidateTextRequest(c *gin.Context, relayInfo *relaycommon.RelayInfo) return nil, errors.New("field prompt is required") } case relayconstant.RelayModeChatCompletions: - if len(textRequest.Messages) == 0 { + if len(textRequest.Messages) == 0 && textRequest.Input == nil { return nil, errors.New("field messages is required") } case relayconstant.RelayModeEmbeddings: diff --git a/router/relay-router.go b/router/relay-router.go index 54799467e1e8..ab65540c4058 100644 --- a/router/relay-router.go +++ b/router/relay-router.go @@ -42,6 +42,7 @@ func SetRelayRouter(router *gin.Engine) { httpRouter.Use(middleware.Distribute()) httpRouter.POST("/completions", controller.Relay) httpRouter.POST("/chat/completions", controller.Relay) + httpRouter.POST("/responses", controller.Relay) httpRouter.POST("/edits", controller.Relay) httpRouter.POST("/images/generations", controller.Relay) httpRouter.POST("/images/edits", controller.RelayNotImplemented) diff --git a/service/token_counter.go b/service/token_counter.go index be4b356eaf72..0b1da121baca 100644 --- a/service/token_counter.go +++ b/service/token_counter.go @@ -164,7 +164,7 @@ func getImageToken(info *relaycommon.RelayInfo, imageUrl *dto.MessageImageUrl, m } func CountTokenChatRequest(ctx *gin.Context, info *relaycommon.RelayInfo, request dto.GeneralOpenAIRequest) (int, error) { - if request.Messages == nil { + if request.Messages == nil && request.Input == nil { return 0, errors.New("messages is required") } tkm := 0