error.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package dto
  2. import "one-api/types"
  3. type OpenAIError struct {
  4. Message string `json:"message"`
  5. Type string `json:"type"`
  6. Param string `json:"param"`
  7. Code any `json:"code"`
  8. }
  9. type OpenAIErrorWithStatusCode struct {
  10. Error OpenAIError `json:"error"`
  11. StatusCode int `json:"status_code"`
  12. LocalError bool
  13. }
  14. type GeneralErrorResponse struct {
  15. Error types.OpenAIError `json:"error"`
  16. Message string `json:"message"`
  17. Msg string `json:"msg"`
  18. Err string `json:"err"`
  19. ErrorMsg string `json:"error_msg"`
  20. Header struct {
  21. Message string `json:"message"`
  22. } `json:"header"`
  23. Response struct {
  24. Error struct {
  25. Message string `json:"message"`
  26. } `json:"error"`
  27. } `json:"response"`
  28. }
  29. func (e GeneralErrorResponse) ToMessage() string {
  30. if e.Error.Message != "" {
  31. return e.Error.Message
  32. }
  33. if e.Message != "" {
  34. return e.Message
  35. }
  36. if e.Msg != "" {
  37. return e.Msg
  38. }
  39. if e.Err != "" {
  40. return e.Err
  41. }
  42. if e.ErrorMsg != "" {
  43. return e.ErrorMsg
  44. }
  45. if e.Header.Message != "" {
  46. return e.Header.Message
  47. }
  48. if e.Response.Error.Message != "" {
  49. return e.Response.Error.Message
  50. }
  51. return ""
  52. }