重试参数校验

This commit is contained in:
AhhhLiu 2023-12-02 15:16:37 +08:00
parent f81f53bca4
commit 2bedc5fed8
2 changed files with 3 additions and 6 deletions

View File

@ -54,10 +54,10 @@ func RetryHandler(group *gin.RouterGroup) gin.HandlerFunc {
// Retry
maxRetryStr := c.Query("retry")
maxRetry, err := strconv.Atoi(maxRetryStr)
if err != nil || maxRetryStr == "" || maxRetry < 0 || maxRetry > common.RetryTimes {
if err != nil || maxRetryStr == "" || maxRetry < 1 || maxRetry > common.RetryTimes {
maxRetry = common.Max(common.RetryTimes+1, 1)
}
retryDelay := time.Duration(common.RetryInterval) * time.Millisecond
retryDelay := time.Duration(common.Max(common.RetryInterval, 0)) * time.Millisecond
for i := 0; i < maxRetry; i++ {
if i == 0 {
// 第一次请求, 直接执行使用c.Next()调用后续中间件, 防止直接使用handler 内部调用c.Next() 导致重复执行
@ -86,9 +86,6 @@ func RetryHandler(group *gin.RouterGroup) gin.HandlerFunc {
// If errors, retry after delay
time.Sleep(retryDelay)
}
if len(c.Errors) == 0 {
return
}
var openaiErr *OpenAIErrorWithStatusCode
err = json.Unmarshal([]byte(c.Errors.Last().Error()), &openaiErr)
if err != nil {

View File

@ -17,7 +17,7 @@ func SetRelayRouter(router *gin.Engine) {
modelsRouter.GET("/:model", controller.RetrieveModel)
}
relayV1Router := router.Group("/v1")
relayV1Router.Use(middleware.RetryHandler(relayV1Router))
middleware.RetryHandler(relayV1Router)
relayV1Router.Use(middleware.TokenAuth(), middleware.Distribute())
{
relayV1Router.POST("/completions", controller.Relay)