mirror of
https://github.com/songquanpeng/one-api.git
synced 2025-11-16 13:13:41 +08:00
✨ feat: add Midjourney (#138)
* 🚧 stash * ✨ feat: add Midjourney * 📝 doc: update readme
This commit is contained in:
@@ -145,6 +145,9 @@ func SetApiRouter(router *gin.Engine) {
|
||||
|
||||
}
|
||||
|
||||
mjRoute := apiRouter.Group("/mj")
|
||||
mjRoute.GET("/self", middleware.UserAuth(), controller.GetUserMidjourney)
|
||||
mjRoute.GET("/", middleware.AdminAuth(), controller.GetAllMidjourney)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
package router
|
||||
|
||||
import (
|
||||
"github.com/gin-contrib/gzip"
|
||||
"github.com/gin-gonic/gin"
|
||||
"one-api/controller"
|
||||
"one-api/middleware"
|
||||
|
||||
"github.com/gin-contrib/gzip"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func SetDashboardRouter(router *gin.Engine) {
|
||||
@@ -12,7 +13,7 @@ func SetDashboardRouter(router *gin.Engine) {
|
||||
apiRouter := router.Group("/")
|
||||
apiRouter.Use(gzip.Gzip(gzip.DefaultCompression))
|
||||
apiRouter.Use(middleware.GlobalAPIRateLimit())
|
||||
apiRouter.Use(middleware.TokenAuth())
|
||||
apiRouter.Use(middleware.OpenaiAuth())
|
||||
{
|
||||
apiRouter.GET("/dashboard/billing/subscription", controller.GetSubscription)
|
||||
apiRouter.GET("/v1/dashboard/billing/subscription", controller.GetSubscription)
|
||||
|
||||
@@ -4,6 +4,7 @@ import (
|
||||
"one-api/controller"
|
||||
"one-api/middleware"
|
||||
"one-api/relay"
|
||||
"one-api/relay/midjourney"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
@@ -11,14 +12,19 @@ import (
|
||||
func SetRelayRouter(router *gin.Engine) {
|
||||
router.Use(middleware.CORS())
|
||||
// https://platform.openai.com/docs/api-reference/introduction
|
||||
setOpenAIRouter(router)
|
||||
setMJRouter(router)
|
||||
}
|
||||
|
||||
func setOpenAIRouter(router *gin.Engine) {
|
||||
modelsRouter := router.Group("/v1/models")
|
||||
modelsRouter.Use(middleware.TokenAuth(), middleware.Distribute())
|
||||
modelsRouter.Use(middleware.OpenaiAuth(), middleware.Distribute())
|
||||
{
|
||||
modelsRouter.GET("", relay.ListModels)
|
||||
modelsRouter.GET("/:model", relay.RetrieveModel)
|
||||
}
|
||||
relayV1Router := router.Group("/v1")
|
||||
relayV1Router.Use(middleware.RelayPanicRecover(), middleware.TokenAuth(), middleware.Distribute())
|
||||
relayV1Router.Use(middleware.RelayPanicRecover(), middleware.OpenaiAuth(), middleware.Distribute())
|
||||
{
|
||||
relayV1Router.POST("/completions", relay.Relay)
|
||||
relayV1Router.POST("/chat/completions", relay.Relay)
|
||||
@@ -71,3 +77,34 @@ func SetRelayRouter(router *gin.Engine) {
|
||||
relayV1Router.GET("/threads/:id/runs/:runsId/steps", controller.RelayNotImplemented)
|
||||
}
|
||||
}
|
||||
|
||||
func setMJRouter(router *gin.Engine) {
|
||||
relayMjRouter := router.Group("/mj")
|
||||
registerMjRouterGroup(relayMjRouter)
|
||||
|
||||
relayMjModeRouter := router.Group("/:mode/mj")
|
||||
registerMjRouterGroup(relayMjModeRouter)
|
||||
}
|
||||
|
||||
// Author: Calcium-Ion
|
||||
// GitHub: https://github.com/Calcium-Ion/new-api
|
||||
// Path: router/relay-router.go
|
||||
func registerMjRouterGroup(relayMjRouter *gin.RouterGroup) {
|
||||
relayMjRouter.GET("/image/:id", midjourney.RelayMidjourneyImage)
|
||||
relayMjRouter.Use(middleware.MjAuth(), middleware.Distribute())
|
||||
{
|
||||
relayMjRouter.POST("/submit/action", midjourney.RelayMidjourney)
|
||||
relayMjRouter.POST("/submit/shorten", midjourney.RelayMidjourney)
|
||||
relayMjRouter.POST("/submit/modal", midjourney.RelayMidjourney)
|
||||
relayMjRouter.POST("/submit/imagine", midjourney.RelayMidjourney)
|
||||
relayMjRouter.POST("/submit/change", midjourney.RelayMidjourney)
|
||||
relayMjRouter.POST("/submit/simple-change", midjourney.RelayMidjourney)
|
||||
relayMjRouter.POST("/submit/describe", midjourney.RelayMidjourney)
|
||||
relayMjRouter.POST("/submit/blend", midjourney.RelayMidjourney)
|
||||
relayMjRouter.POST("/notify", midjourney.RelayMidjourney)
|
||||
relayMjRouter.GET("/task/:id/fetch", midjourney.RelayMidjourney)
|
||||
relayMjRouter.GET("/task/:id/image-seed", midjourney.RelayMidjourney)
|
||||
relayMjRouter.POST("/task/list-by-condition", midjourney.RelayMidjourney)
|
||||
relayMjRouter.POST("/insight-face/swap", midjourney.RelayMidjourney)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user