Procházet zdrojové kódy

fix: disable channel with a whitelist

JustSong před 2 roky
rodič
revize
d9e39f5906
2 změnil soubory, kde provedl 3 přidání a 3 odebrání
  1. 1 1
      controller/channel.go
  2. 2 2
      controller/relay.go

+ 1 - 1
controller/channel.go

@@ -201,7 +201,7 @@ func testChannel(channel *model.Channel, request *ChatRequest) error {
 	if err != nil {
 		return err
 	}
-	if response.Error.Message != "" {
+	if response.Error.Message != "" || response.Error.Code != "" {
 		return errors.New(fmt.Sprintf("type %s, code %s, message %s", response.Error.Type, response.Error.Code, response.Error.Message))
 	}
 	return nil

+ 2 - 2
controller/relay.go

@@ -89,8 +89,8 @@ func Relay(c *gin.Context) {
 		})
 		channelId := c.GetInt("channel_id")
 		common.SysError(fmt.Sprintf("Relay error (channel #%d): %s", channelId, err.Message))
-		if err.Type != "invalid_request_error" && err.StatusCode != http.StatusTooManyRequests &&
-			common.AutomaticDisableChannelEnabled {
+		// https://platform.openai.com/docs/guides/error-codes/api-errors
+		if common.AutomaticDisableChannelEnabled && (err.Type == "insufficient_quota" || err.Code == "invalid_api_key") {
 			channelId := c.GetInt("channel_id")
 			channelName := c.GetString("channel_name")
 			disableChannel(channelId, channelName, err.Message)