| | package dto |
| |
|
| | import ( |
| | "encoding/json" |
| |
|
| | "github.com/QuantumNous/new-api/common" |
| | "github.com/QuantumNous/new-api/types" |
| | ) |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | type OpenAIErrorWithStatusCode struct { |
| | Error types.OpenAIError `json:"error"` |
| | StatusCode int `json:"status_code"` |
| | LocalError bool |
| | } |
| |
|
| | type GeneralErrorResponse struct { |
| | Error json.RawMessage `json:"error"` |
| | Message string `json:"message"` |
| | Msg string `json:"msg"` |
| | Err string `json:"err"` |
| | ErrorMsg string `json:"error_msg"` |
| | Metadata json.RawMessage `json:"metadata,omitempty"` |
| | Header struct { |
| | Message string `json:"message"` |
| | } `json:"header"` |
| | Response struct { |
| | Error struct { |
| | Message string `json:"message"` |
| | } `json:"error"` |
| | } `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 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 |
| | } |
| | if e.Msg != "" { |
| | return e.Msg |
| | } |
| | if e.Err != "" { |
| | return e.Err |
| | } |
| | if e.ErrorMsg != "" { |
| | return e.ErrorMsg |
| | } |
| | if e.Header.Message != "" { |
| | return e.Header.Message |
| | } |
| | if e.Response.Error.Message != "" { |
| | return e.Response.Error.Message |
| | } |
| | return "" |
| | } |
| |
|