relay_mode.go 3.7 KB

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