Przeglądaj źródła

Merge pull request #1415 from feitianbubu/pr/fix-relayError-nil

fix: avoid relayError nil panic
Calcium-Ion 7 miesięcy temu
rodzic
commit
bcd236286c
1 zmienionych plików z 21 dodań i 16 usunięć
  1. 21 16
      types/error.go

+ 21 - 16
types/error.go

@@ -105,23 +105,25 @@ func (e *NewAPIError) SetMessage(message string) {
 func (e *NewAPIError) ToOpenAIError() OpenAIError {
 	switch e.ErrorType {
 	case ErrorTypeOpenAIError:
-		return e.RelayError.(OpenAIError)
-	case ErrorTypeClaudeError:
-		claudeError := e.RelayError.(ClaudeError)
-		return OpenAIError{
-			Message: e.Error(),
-			Type:    claudeError.Type,
-			Param:   "",
-			Code:    e.errorCode,
+		if openAIError, ok := e.RelayError.(OpenAIError); ok {
+			return openAIError
 		}
-	default:
-		return OpenAIError{
-			Message: e.Error(),
-			Type:    string(e.ErrorType),
-			Param:   "",
-			Code:    e.errorCode,
+	case ErrorTypeClaudeError:
+		if claudeError, ok := e.RelayError.(ClaudeError); ok {
+			return OpenAIError{
+				Message: e.Error(),
+				Type:    claudeError.Type,
+				Param:   "",
+				Code:    e.errorCode,
+			}
 		}
 	}
+	return OpenAIError{
+		Message: e.Error(),
+		Type:    string(e.ErrorType),
+		Param:   "",
+		Code:    e.errorCode,
+	}
 }
 
 func (e *NewAPIError) ToClaudeError() ClaudeError {
@@ -162,8 +164,11 @@ func NewOpenAIError(err error, errorCode ErrorCode, statusCode int) *NewAPIError
 
 func NewErrorWithStatusCode(err error, errorCode ErrorCode, statusCode int) *NewAPIError {
 	return &NewAPIError{
-		Err:        err,
-		RelayError: nil,
+		Err: err,
+		RelayError: OpenAIError{
+			Message: err.Error(),
+			Type:    string(errorCode),
+		},
 		ErrorType:  ErrorTypeNewAPIError,
 		StatusCode: statusCode,
 		errorCode:  errorCode,