|
|
@@ -1,26 +1,31 @@
|
|
|
package dto
|
|
|
|
|
|
-import "github.com/QuantumNous/new-api/types"
|
|
|
+import (
|
|
|
+ "encoding/json"
|
|
|
|
|
|
-type OpenAIError struct {
|
|
|
- Message string `json:"message"`
|
|
|
- Type string `json:"type"`
|
|
|
- Param string `json:"param"`
|
|
|
- Code any `json:"code"`
|
|
|
-}
|
|
|
+ "github.com/QuantumNous/new-api/common"
|
|
|
+ "github.com/QuantumNous/new-api/types"
|
|
|
+)
|
|
|
+
|
|
|
+//type OpenAIError struct {
|
|
|
+// Message string `json:"message"`
|
|
|
+// Type string `json:"type"`
|
|
|
+// Param string `json:"param"`
|
|
|
+// Code any `json:"code"`
|
|
|
+//}
|
|
|
|
|
|
type OpenAIErrorWithStatusCode struct {
|
|
|
- Error OpenAIError `json:"error"`
|
|
|
- StatusCode int `json:"status_code"`
|
|
|
+ Error types.OpenAIError `json:"error"`
|
|
|
+ StatusCode int `json:"status_code"`
|
|
|
LocalError bool
|
|
|
}
|
|
|
|
|
|
type GeneralErrorResponse struct {
|
|
|
- Error types.OpenAIError `json:"error"`
|
|
|
- Message string `json:"message"`
|
|
|
- Msg string `json:"msg"`
|
|
|
- Err string `json:"err"`
|
|
|
- ErrorMsg string `json:"error_msg"`
|
|
|
+ Error json.RawMessage `json:"error"`
|
|
|
+ Message string `json:"message"`
|
|
|
+ Msg string `json:"msg"`
|
|
|
+ Err string `json:"err"`
|
|
|
+ ErrorMsg string `json:"error_msg"`
|
|
|
Header struct {
|
|
|
Message string `json:"message"`
|
|
|
} `json:"header"`
|
|
|
@@ -31,9 +36,35 @@ type GeneralErrorResponse struct {
|
|
|
} `json:"response"`
|
|
|
}
|
|
|
|
|
|
+func (e GeneralErrorResponse) TryToOpenAIError() *types.OpenAIError {
|
|
|
+ var openAIError types.OpenAIError
|
|
|
+ if len(e.Error) > 0 {
|
|
|
+ err := common.Unmarshal(e.Error, &openAIError)
|
|
|
+ if err == nil && openAIError.Message != "" {
|
|
|
+ return &openAIError
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return nil
|
|
|
+}
|
|
|
+
|
|
|
func (e GeneralErrorResponse) ToMessage() string {
|
|
|
- if e.Error.Message != "" {
|
|
|
- return e.Error.Message
|
|
|
+ if len(e.Error) > 0 {
|
|
|
+ switch common.GetJsonType(e.Error) {
|
|
|
+ case "object":
|
|
|
+ var openAIError types.OpenAIError
|
|
|
+ err := common.Unmarshal(e.Error, &openAIError)
|
|
|
+ if err == nil && openAIError.Message != "" {
|
|
|
+ return openAIError.Message
|
|
|
+ }
|
|
|
+ case "string":
|
|
|
+ var msg string
|
|
|
+ err := common.Unmarshal(e.Error, &msg)
|
|
|
+ if err == nil && msg != "" {
|
|
|
+ return msg
|
|
|
+ }
|
|
|
+ default:
|
|
|
+ return string(e.Error)
|
|
|
+ }
|
|
|
}
|
|
|
if e.Message != "" {
|
|
|
return e.Message
|