relay_mode.go 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. package constant
  2. import (
  3. "net/http"
  4. "strings"
  5. )
  6. const (
  7. RelayModeUnknown = iota
  8. RelayModeChatCompletions
  9. RelayModeCompletions
  10. RelayModeEmbeddings
  11. RelayModeModerations
  12. RelayModeImagesGenerations
  13. RelayModeEdits
  14. RelayModeMidjourneyImagine
  15. RelayModeMidjourneyDescribe
  16. RelayModeMidjourneyBlend
  17. RelayModeMidjourneyChange
  18. RelayModeMidjourneySimpleChange
  19. RelayModeMidjourneyNotify
  20. RelayModeMidjourneyTaskFetch
  21. RelayModeMidjourneyTaskImageSeed
  22. RelayModeMidjourneyTaskFetchByCondition
  23. RelayModeAudioSpeech
  24. RelayModeAudioTranscription
  25. RelayModeAudioTranslation
  26. RelayModeMidjourneyAction
  27. RelayModeMidjourneyModal
  28. RelayModeMidjourneyShorten
  29. RelayModeSwapFace
  30. RelayModeSunoFetch
  31. RelayModeSunoFetchByID
  32. RelayModeSunoSubmit
  33. )
  34. func Path2RelayMode(path string) int {
  35. relayMode := RelayModeUnknown
  36. if strings.HasPrefix(path, "/v1/chat/completions") {
  37. relayMode = RelayModeChatCompletions
  38. } else if strings.HasPrefix(path, "/v1/completions") {
  39. relayMode = RelayModeCompletions
  40. } else if strings.HasPrefix(path, "/v1/embeddings") {
  41. relayMode = RelayModeEmbeddings
  42. } else if strings.HasSuffix(path, "embeddings") {
  43. relayMode = RelayModeEmbeddings
  44. } else if strings.HasPrefix(path, "/v1/moderations") {
  45. relayMode = RelayModeModerations
  46. } else if strings.HasPrefix(path, "/v1/images/generations") {
  47. relayMode = RelayModeImagesGenerations
  48. } else if strings.HasPrefix(path, "/v1/edits") {
  49. relayMode = RelayModeEdits
  50. } else if strings.HasPrefix(path, "/v1/audio/speech") {
  51. relayMode = RelayModeAudioSpeech
  52. } else if strings.HasPrefix(path, "/v1/audio/transcriptions") {
  53. relayMode = RelayModeAudioTranscription
  54. } else if strings.HasPrefix(path, "/v1/audio/translations") {
  55. relayMode = RelayModeAudioTranslation
  56. }
  57. return relayMode
  58. }
  59. func Path2RelayModeMidjourney(path string) int {
  60. relayMode := RelayModeUnknown
  61. if strings.HasSuffix(path, "/mj/submit/action") {
  62. // midjourney plus
  63. relayMode = RelayModeMidjourneyAction
  64. } else if strings.HasSuffix(path, "/mj/submit/modal") {
  65. // midjourney plus
  66. relayMode = RelayModeMidjourneyModal
  67. } else if strings.HasSuffix(path, "/mj/submit/shorten") {
  68. // midjourney plus
  69. relayMode = RelayModeMidjourneyShorten
  70. } else if strings.HasSuffix(path, "/mj/insight-face/swap") {
  71. // midjourney plus
  72. relayMode = RelayModeSwapFace
  73. } else if strings.HasSuffix(path, "/mj/submit/imagine") {
  74. relayMode = RelayModeMidjourneyImagine
  75. } else if strings.HasSuffix(path, "/mj/submit/blend") {
  76. relayMode = RelayModeMidjourneyBlend
  77. } else if strings.HasSuffix(path, "/mj/submit/describe") {
  78. relayMode = RelayModeMidjourneyDescribe
  79. } else if strings.HasSuffix(path, "/mj/notify") {
  80. relayMode = RelayModeMidjourneyNotify
  81. } else if strings.HasSuffix(path, "/mj/submit/change") {
  82. relayMode = RelayModeMidjourneyChange
  83. } else if strings.HasSuffix(path, "/mj/submit/simple-change") {
  84. relayMode = RelayModeMidjourneyChange
  85. } else if strings.HasSuffix(path, "/fetch") {
  86. relayMode = RelayModeMidjourneyTaskFetch
  87. } else if strings.HasSuffix(path, "/image-seed") {
  88. relayMode = RelayModeMidjourneyTaskImageSeed
  89. } else if strings.HasSuffix(path, "/list-by-condition") {
  90. relayMode = RelayModeMidjourneyTaskFetchByCondition
  91. }
  92. return relayMode
  93. }
  94. func Path2RelaySuno(method, path string) int {
  95. relayMode := RelayModeUnknown
  96. if method == http.MethodPost && strings.HasSuffix(path, "/fetch") {
  97. relayMode = RelayModeSunoFetch
  98. } else if method == http.MethodGet && strings.Contains(path, "/fetch/") {
  99. relayMode = RelayModeSunoFetchByID
  100. } else if strings.Contains(path, "/submit/") {
  101. relayMode = RelayModeSunoSubmit
  102. }
  103. return relayMode
  104. }