| 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"` |
| Detail string `json:"detail,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.Detail != "" { |
| return e.Detail |
| } |
| if e.Header.Message != "" { |
| return e.Header.Message |
| } |
| if e.Response.Error.Message != "" { |
| return e.Response.Error.Message |
| } |
| return "" |
| } |
|
|