relay-router.go 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package router
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "one-api/controller"
  5. "one-api/middleware"
  6. "one-api/relay"
  7. )
  8. func SetRelayRouter(router *gin.Engine) {
  9. router.Use(middleware.CORS())
  10. // https://platform.openai.com/docs/api-reference/introduction
  11. modelsRouter := router.Group("/v1/models")
  12. modelsRouter.Use(middleware.TokenAuth())
  13. {
  14. modelsRouter.GET("", controller.ListModels)
  15. modelsRouter.GET("/:model", controller.RetrieveModel)
  16. }
  17. playgroundRouter := router.Group("/pg")
  18. playgroundRouter.Use(middleware.UserAuth())
  19. {
  20. playgroundRouter.POST("/chat/completions", controller.Playground)
  21. }
  22. relayV1Router := router.Group("/v1")
  23. relayV1Router.Use(middleware.TokenAuth(), middleware.Distribute())
  24. {
  25. relayV1Router.POST("/completions", controller.Relay)
  26. relayV1Router.POST("/chat/completions", controller.Relay)
  27. relayV1Router.POST("/edits", controller.Relay)
  28. relayV1Router.POST("/images/generations", controller.Relay)
  29. relayV1Router.POST("/images/edits", controller.RelayNotImplemented)
  30. relayV1Router.POST("/images/variations", controller.RelayNotImplemented)
  31. relayV1Router.POST("/embeddings", controller.Relay)
  32. relayV1Router.POST("/engines/:model/embeddings", controller.Relay)
  33. relayV1Router.POST("/audio/transcriptions", controller.Relay)
  34. relayV1Router.POST("/audio/translations", controller.Relay)
  35. relayV1Router.POST("/audio/speech", controller.Relay)
  36. relayV1Router.GET("/files", controller.RelayNotImplemented)
  37. relayV1Router.POST("/files", controller.RelayNotImplemented)
  38. relayV1Router.DELETE("/files/:id", controller.RelayNotImplemented)
  39. relayV1Router.GET("/files/:id", controller.RelayNotImplemented)
  40. relayV1Router.GET("/files/:id/content", controller.RelayNotImplemented)
  41. relayV1Router.POST("/fine-tunes", controller.RelayNotImplemented)
  42. relayV1Router.GET("/fine-tunes", controller.RelayNotImplemented)
  43. relayV1Router.GET("/fine-tunes/:id", controller.RelayNotImplemented)
  44. relayV1Router.POST("/fine-tunes/:id/cancel", controller.RelayNotImplemented)
  45. relayV1Router.GET("/fine-tunes/:id/events", controller.RelayNotImplemented)
  46. relayV1Router.DELETE("/models/:model", controller.RelayNotImplemented)
  47. relayV1Router.POST("/moderations", controller.Relay)
  48. relayV1Router.POST("/rerank", controller.Relay)
  49. }
  50. relayMjRouter := router.Group("/mj")
  51. registerMjRouterGroup(relayMjRouter)
  52. relayMjModeRouter := router.Group("/:mode/mj")
  53. registerMjRouterGroup(relayMjModeRouter)
  54. //relayMjRouter.Use()
  55. relaySunoRouter := router.Group("/suno")
  56. relaySunoRouter.Use(middleware.TokenAuth(), middleware.Distribute())
  57. {
  58. relaySunoRouter.POST("/submit/:action", controller.RelayTask)
  59. relaySunoRouter.POST("/fetch", controller.RelayTask)
  60. relaySunoRouter.GET("/fetch/:id", controller.RelayTask)
  61. }
  62. }
  63. func registerMjRouterGroup(relayMjRouter *gin.RouterGroup) {
  64. relayMjRouter.GET("/image/:id", relay.RelayMidjourneyImage)
  65. relayMjRouter.Use(middleware.TokenAuth(), middleware.Distribute())
  66. {
  67. relayMjRouter.POST("/submit/action", controller.RelayMidjourney)
  68. relayMjRouter.POST("/submit/shorten", controller.RelayMidjourney)
  69. relayMjRouter.POST("/submit/modal", controller.RelayMidjourney)
  70. relayMjRouter.POST("/submit/imagine", controller.RelayMidjourney)
  71. relayMjRouter.POST("/submit/change", controller.RelayMidjourney)
  72. relayMjRouter.POST("/submit/simple-change", controller.RelayMidjourney)
  73. relayMjRouter.POST("/submit/describe", controller.RelayMidjourney)
  74. relayMjRouter.POST("/submit/blend", controller.RelayMidjourney)
  75. relayMjRouter.POST("/notify", controller.RelayMidjourney)
  76. relayMjRouter.GET("/task/:id/fetch", controller.RelayMidjourney)
  77. relayMjRouter.GET("/task/:id/image-seed", controller.RelayMidjourney)
  78. relayMjRouter.POST("/task/list-by-condition", controller.RelayMidjourney)
  79. relayMjRouter.POST("/insight-face/swap", controller.RelayMidjourney)
  80. relayMjRouter.POST("/submit/upload-discord-images", controller.RelayMidjourney)
  81. }
  82. }