diff --git a/adapter/adapter.go b/adapter/adapter.go index 7aba8ce..5b4abc0 100644 --- a/adapter/adapter.go +++ b/adapter/adapter.go @@ -20,6 +20,7 @@ import ( ) var defaultMaxRetries = 3 +var midjourneyMaxRetries = 10 type RequestProps struct { MaxRetries *int diff --git a/adapter/midjourney/api.go b/adapter/midjourney/api.go index c9cd6d6..ab7245c 100644 --- a/adapter/midjourney/api.go +++ b/adapter/midjourney/api.go @@ -31,7 +31,8 @@ func (c *ChatInstance) CreateImagineRequest(prompt string) (*ImagineResponse, er return utils.MapToStruct[ImagineResponse](res), nil } -func getStatusCode(code int) error { +func getStatusCode(response *ImagineResponse) error { + code := response.Code switch code { case SuccessCode, QueueCode: return nil @@ -42,7 +43,7 @@ func getStatusCode(code int) error { case NudeCode: return fmt.Errorf("prompt violates the content policy of midjourney, the request is rejected") default: - return fmt.Errorf("unknown error from midjourney") + return fmt.Errorf(fmt.Sprintf("unknown error from midjourney (code: %d, description: %s)", code, response.Description)) } } @@ -57,7 +58,7 @@ func (c *ChatInstance) CreateStreamImagineTask(prompt string, hook func(progress return "", err } - if err := getStatusCode(res.Code); err != nil { + if err := getStatusCode(res); err != nil { return "", err } diff --git a/adapter/request.go b/adapter/request.go index 850b6c1..e43531c 100644 --- a/adapter/request.go +++ b/adapter/request.go @@ -20,8 +20,11 @@ func isQPSOverLimit(model string, err error) bool { } } -func getRetries(retries *int) int { +func getRetries(model string, retries *int) int { if retries == nil { + if globals.IsMidjourneyModel(model) { + return midjourneyMaxRetries + } return defaultMaxRetries } @@ -31,7 +34,7 @@ func getRetries(retries *int) int { func NewChatRequest(props *ChatProps, hook globals.Hook) error { err := createChatRequest(props, hook) - retries := getRetries(props.MaxRetries) + retries := getRetries(props.Model, props.MaxRetries) props.Current++ if IsAvailableError(err) { diff --git a/app/index.html b/app/index.html index 5cae1ab..69d20fc 100644 --- a/app/index.html +++ b/app/index.html @@ -5,8 +5,8 @@