relay_mode.go 4.0 KB

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