diff --git a/controller/model.go b/controller/model.go index 11038ba0..53543ff0 100644 --- a/controller/model.go +++ b/controller/model.go @@ -332,22 +332,24 @@ func init() { } } -func ListModels(c *gin.Context) { +func ListModels(c *gin.Context, isChannel bool) { userId := c.GetInt("id") userGroup, _ := model.CacheGetUserGroup(userId) // Only return the models that the channel and user have access to var modalList []OpenAIModels - for _, modalData := range openAIModels { - channel, err := model.CacheGetRandomSatisfiedChannel(userGroup, modalData.Id) + if !isChannel { + for _, modalData := range openAIModels { + channel, err := model.CacheGetRandomSatisfiedChannel(userGroup, modalData.Id) - if err != nil { - continue - } + if err != nil { + continue + } - if channel != nil { - modalList = append(modalList, modalData) + if channel != nil { + modalList = append(modalList, modalData) + } } } diff --git a/router/api-router.go b/router/api-router.go index 383133fa..96c17837 100644 --- a/router/api-router.go +++ b/router/api-router.go @@ -65,7 +65,9 @@ func SetApiRouter(router *gin.Engine) { { channelRoute.GET("/", controller.GetAllChannels) channelRoute.GET("/search", controller.SearchChannels) - channelRoute.GET("/models", controller.ListModels) + channelRoute.GET("/models", func(c *gin.Context) { + controller.ListModels(c, true) + }) channelRoute.GET("/:id", controller.GetChannel) channelRoute.GET("/test", controller.TestAllChannels) channelRoute.GET("/test/:id", controller.TestChannel) diff --git a/router/relay-router.go b/router/relay-router.go index 0c8e9415..cbe1fee5 100644 --- a/router/relay-router.go +++ b/router/relay-router.go @@ -12,7 +12,9 @@ func SetRelayRouter(router *gin.Engine) { modelsRouter := router.Group("/v1/models") modelsRouter.Use(middleware.TokenAuth()) { - modelsRouter.GET("/", controller.ListModels) + modelsRouter.GET("/", func(c *gin.Context) { + controller.ListModels(c, false) + }) modelsRouter.GET("/:model", controller.RetrieveModel) } relayV1Router := router.Group("/v1")