refactor: simplify ShouldDisableChannel function by removing unused parameters and commented-out code
This commit is contained in:
@@ -830,7 +830,7 @@ func testAllChannels(notify bool) error {
|
|||||||
newAPIError := result.newAPIError
|
newAPIError := result.newAPIError
|
||||||
// request error disables the channel
|
// request error disables the channel
|
||||||
if newAPIError != nil {
|
if newAPIError != nil {
|
||||||
shouldBanChannel = service.ShouldDisableChannel(channel.Type, result.newAPIError)
|
shouldBanChannel = service.ShouldDisableChannel(result.newAPIError)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 当错误检查通过,才检查响应时间
|
// 当错误检查通过,才检查响应时间
|
||||||
|
|||||||
+1
-1
@@ -351,7 +351,7 @@ func processChannelError(c *gin.Context, channelError types.ChannelError, err *t
|
|||||||
logger.LogError(c, fmt.Sprintf("channel error (channel #%d, status code: %d): %s", channelError.ChannelId, err.StatusCode, err.Error()))
|
logger.LogError(c, fmt.Sprintf("channel error (channel #%d, status code: %d): %s", channelError.ChannelId, err.StatusCode, err.Error()))
|
||||||
// 不要使用context获取渠道信息,异步处理时可能会出现渠道信息不一致的情况
|
// 不要使用context获取渠道信息,异步处理时可能会出现渠道信息不一致的情况
|
||||||
// do not use context to get channel info, there may be inconsistent channel info when processing asynchronously
|
// do not use context to get channel info, there may be inconsistent channel info when processing asynchronously
|
||||||
if service.ShouldDisableChannel(channelError.ChannelType, err) && channelError.AutoBan {
|
if service.ShouldDisableChannel(err) && channelError.AutoBan {
|
||||||
gopool.Go(func() {
|
gopool.Go(func() {
|
||||||
service.DisableChannel(channelError, err.ErrorWithStatusCode())
|
service.DisableChannel(channelError, err.ErrorWithStatusCode())
|
||||||
})
|
})
|
||||||
|
|||||||
+1
-36
@@ -42,7 +42,7 @@ func EnableChannel(channelId int, usingKey string, channelName string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func ShouldDisableChannel(channelType int, err *types.NewAPIError) bool {
|
func ShouldDisableChannel(err *types.NewAPIError) bool {
|
||||||
if !common.AutomaticDisableChannelEnabled {
|
if !common.AutomaticDisableChannelEnabled {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
@@ -58,41 +58,6 @@ func ShouldDisableChannel(channelType int, err *types.NewAPIError) bool {
|
|||||||
if operation_setting.ShouldDisableByStatusCode(err.StatusCode) {
|
if operation_setting.ShouldDisableByStatusCode(err.StatusCode) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
//if err.StatusCode == http.StatusUnauthorized {
|
|
||||||
// return true
|
|
||||||
//}
|
|
||||||
//if err.StatusCode == http.StatusForbidden {
|
|
||||||
// switch channelType {
|
|
||||||
// case constant.ChannelTypeGemini:
|
|
||||||
// return true
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
oaiErr := err.ToOpenAIError()
|
|
||||||
switch oaiErr.Code {
|
|
||||||
case "invalid_api_key":
|
|
||||||
return true
|
|
||||||
case "account_deactivated":
|
|
||||||
return true
|
|
||||||
case "billing_not_active":
|
|
||||||
return true
|
|
||||||
case "pre_consume_token_quota_failed":
|
|
||||||
return true
|
|
||||||
case "Arrearage":
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
switch oaiErr.Type {
|
|
||||||
case "insufficient_quota":
|
|
||||||
return true
|
|
||||||
case "insufficient_user_quota":
|
|
||||||
return true
|
|
||||||
// https://docs.anthropic.com/claude/reference/errors
|
|
||||||
case "authentication_error":
|
|
||||||
return true
|
|
||||||
case "permission_error":
|
|
||||||
return true
|
|
||||||
case "forbidden":
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
lowerMessage := strings.ToLower(err.Error())
|
lowerMessage := strings.ToLower(err.Error())
|
||||||
search, _ := AcSearch(lowerMessage, operation_setting.AutomaticDisableKeywords, true)
|
search, _ := AcSearch(lowerMessage, operation_setting.AutomaticDisableKeywords, true)
|
||||||
|
|||||||
Reference in New Issue
Block a user