Spaces:
Sleeping
Sleeping
package initialize | |
import ( | |
"aurora/middlewares" | |
"net/http" | |
"os" | |
"github.com/gin-gonic/gin" | |
) | |
func RegisterRouter() *gin.Engine { | |
handler := NewHandle( | |
checkProxy(), | |
) | |
router := gin.Default() | |
router.Use(middlewares.Cors) | |
// // 访问根目录时,跳转到 /web | |
// router.GET("/", func(c *gin.Context) { | |
// c.JSON(200, gin.H{ | |
// "message": "Hello, world!", | |
// }) | |
// }) | |
router.GET("/", func(c *gin.Context) { | |
c.Redirect(http.StatusFound, "/web") | |
}) | |
router.GET("/ping", func(c *gin.Context) { | |
c.JSON(200, gin.H{ | |
"message": "pong", | |
}) | |
}) | |
// 注册 prefixGroup 路由 | |
prefixGroup := os.Getenv("PREFIX") | |
if prefixGroup != "" { | |
registerGroupRoutes(router.Group(prefixGroup), handler) | |
} | |
// 注册无前缀的路由 | |
registerGroupRoutes(router.Group(""), handler) | |
return router | |
} | |
func registerGroupRoutes(group *gin.RouterGroup, handler *Handler) { | |
// OPTIONS 路由 | |
group.OPTIONS("/v1/chat/completions", optionsHandler) | |
group.OPTIONS("/v1/chat/models", optionsHandler) | |
group.OPTIONS("/completions", optionsHandler) | |
group.OPTIONS("/models", optionsHandler) | |
group.OPTIONS("/api/v1/chat/completions", optionsHandler) | |
group.OPTIONS("/api/v1/models", optionsHandler) | |
group.OPTIONS("/hf/v1/chat/completions", optionsHandler) | |
group.OPTIONS("/hf/v1/models", optionsHandler) | |
// POST 路由 | |
group.POST("/v1/chat/completions", middlewares.Authorization, handler.duckduckgo) | |
group.POST("/api/v1/chat/completions", middlewares.Authorization, handler.duckduckgo) | |
group.POST("/completions", middlewares.Authorization, handler.duckduckgo) | |
group.POST("/hf/v1/chat/completions", middlewares.Authorization, handler.duckduckgo) | |
// GET 路由 | |
group.GET("/v1/models", middlewares.Authorization, handler.engines) | |
group.GET("/api/v1/models", middlewares.Authorization, handler.engines) | |
group.GET("/models", middlewares.Authorization, handler.engines) | |
group.GET("/hf/v1/models", middlewares.Authorization, handler.engines) | |
} | |