Update disabled channel

This commit is contained in:
Ghostz 2024-08-31 14:21:17 +08:00
parent f9774698e9
commit 82f34d3b11

View File

@ -1,10 +1,11 @@
package monitor package monitor
import ( import (
"github.com/songquanpeng/one-api/common/config"
"github.com/songquanpeng/one-api/relay/model"
"net/http" "net/http"
"strings" "strings"
"github.com/songquanpeng/one-api/common/config"
"github.com/songquanpeng/one-api/relay/model"
) )
func ShouldDisableChannel(err *model.Error, statusCode int) bool { func ShouldDisableChannel(err *model.Error, statusCode int) bool {
@ -14,37 +15,29 @@ func ShouldDisableChannel(err *model.Error, statusCode int) bool {
if err == nil { if err == nil {
return false return false
} }
if statusCode == http.StatusUnauthorized { if statusCode == http.StatusUnauthorized || statusCode == http.StatusTooManyRequests {
return true return true
} }
switch err.Type { switch err.Type {
case "insufficient_quota": case "insufficient_quota", "authentication_error", "permission_error", "forbidden":
return true
// https://docs.anthropic.com/claude/reference/errors
case "authentication_error":
return true
case "permission_error":
return true
case "forbidden":
return true return true
} }
if err.Code == "invalid_api_key" || err.Code == "account_deactivated" { if err.Code == "invalid_api_key" {
return true return true
} }
if strings.HasPrefix(err.Message, "Your credit balance is too low") { // anthropic
return true lowerMessage := strings.ToLower(err.Message)
} else if strings.HasPrefix(err.Message, "This organization has been disabled.") { if strings.Contains(lowerMessage, "your access was terminated") ||
return true strings.Contains(lowerMessage, "violation of our policies") ||
} strings.Contains(lowerMessage, "your credit balance is too low") ||
//if strings.Contains(err.Message, "quota") { strings.Contains(lowerMessage, "this organization has been disabled") ||
// return true strings.Contains(lowerMessage, "credit") ||
//} strings.Contains(lowerMessage, "balance") ||
if strings.Contains(err.Message, "credit") { strings.Contains(lowerMessage, "permission denied") ||
return true strings.Contains(lowerMessage, "已欠费") {
}
if strings.Contains(err.Message, "balance") {
return true return true
} }
return false return false
} }