relay_mode.go 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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. RelayModeMidjourneyAction
  24. RelayModeMidjourneyModal
  25. RelayModeMidjourneyShorten
  26. RelayModeSwapFace
  27. RelayModeMidjourneyUpload
  28. RelayModeAudioSpeech // tts
  29. RelayModeAudioTranscription // whisper
  30. RelayModeAudioTranslation // whisper
  31. RelayModeSunoFetch
  32. RelayModeSunoFetchByID
  33. RelayModeSunoSubmit
  34. RelayModeRerank
  35. )
  36. func Path2RelayMode(path string) int {
  37. relayMode := RelayModeUnknown
  38. if strings.HasPrefix(path, "/v1/chat/completions") {
  39. relayMode = RelayModeChatCompletions
  40. } else if strings.HasPrefix(path, "/v1/completions") {
  41. relayMode = RelayModeCompletions
  42. } else if strings.HasPrefix(path, "/v1/embeddings") {
  43. relayMode = RelayModeEmbeddings
  44. } else if strings.HasSuffix(path, "embeddings") {
  45. relayMode = RelayModeEmbeddings
  46. } else if strings.HasPrefix(path, "/v1/moderations") {
  47. relayMode = RelayModeModerations
  48. } else if strings.HasPrefix(path, "/v1/images/generations") {
  49. relayMode = RelayModeImagesGenerations
  50. } else if strings.HasPrefix(path, "/v1/edits") {
  51. relayMode = RelayModeEdits
  52. } else if strings.HasPrefix(path, "/v1/audio/speech") {
  53. relayMode = RelayModeAudioSpeech
  54. } else if strings.HasPrefix(path, "/v1/audio/transcriptions") {
  55. relayMode = RelayModeAudioTranscription
  56. } else if strings.HasPrefix(path, "/v1/audio/translations") {
  57. relayMode = RelayModeAudioTranslation
  58. } else if strings.HasPrefix(path, "/v1/rerank") {
  59. relayMode = RelayModeRerank
  60. }
  61. return relayMode
  62. }
  63. func Path2RelayModeMidjourney(path string) int {
  64. relayMode := RelayModeUnknown
  65. if strings.HasSuffix(path, "/mj/submit/action") {
  66. // midjourney plus
  67. relayMode = RelayModeMidjourneyAction
  68. } else if strings.HasSuffix(path, "/mj/submit/modal") {
  69. // midjourney plus
  70. relayMode = RelayModeMidjourneyModal
  71. } else if strings.HasSuffix(path, "/mj/submit/shorten") {
  72. // midjourney plus
  73. relayMode = RelayModeMidjourneyShorten
  74. } else if strings.HasSuffix(path, "/mj/insight-face/swap") {
  75. // midjourney plus
  76. relayMode = RelayModeSwapFace
  77. } else if strings.HasSuffix(path, "/submit/upload-discord-images") {
  78. // midjourney plus
  79. relayMode = RelayModeMidjourneyUpload
  80. } else if strings.HasSuffix(path, "/mj/submit/imagine") {
  81. relayMode = RelayModeMidjourneyImagine
  82. } else if strings.HasSuffix(path, "/mj/submit/blend") {
  83. relayMode = RelayModeMidjourneyBlend
  84. } else if strings.HasSuffix(path, "/mj/submit/describe") {
  85. relayMode = RelayModeMidjourneyDescribe
  86. } else if strings.HasSuffix(path, "/mj/notify") {
  87. relayMode = RelayModeMidjourneyNotify
  88. } else if strings.HasSuffix(path, "/mj/submit/change") {
  89. relayMode = RelayModeMidjourneyChange
  90. } else if strings.HasSuffix(path, "/mj/submit/simple-change") {
  91. relayMode = RelayModeMidjourneyChange
  92. } else if strings.HasSuffix(path, "/fetch") {
  93. relayMode = RelayModeMidjourneyTaskFetch
  94. } else if strings.HasSuffix(path, "/image-seed") {
  95. relayMode = RelayModeMidjourneyTaskImageSeed
  96. } else if strings.HasSuffix(path, "/list-by-condition") {
  97. relayMode = RelayModeMidjourneyTaskFetchByCondition
  98. }
  99. return relayMode
  100. }
  101. func Path2RelaySuno(method, path string) int {
  102. relayMode := RelayModeUnknown
  103. if method == http.MethodPost && strings.HasSuffix(path, "/fetch") {
  104. relayMode = RelayModeSunoFetch
  105. } else if method == http.MethodGet && strings.Contains(path, "/fetch/") {
  106. relayMode = RelayModeSunoFetchByID
  107. } else if strings.Contains(path, "/submit/") {
  108. relayMode = RelayModeSunoSubmit
  109. }
  110. return relayMode
  111. }