Просмотр исходного кода

feat: "/v1/models" 只返回用户可用模型 (close #78)

[email protected] 1 год назад
Родитель
Сommit
feb40db2bc
1 измененных файлов с 19 добавлено и 1 удалено
  1. 19 1
      controller/model.go

+ 19 - 1
controller/model.go

@@ -3,7 +3,9 @@ package controller
 import (
 	"fmt"
 	"github.com/gin-gonic/gin"
+	"net/http"
 	"one-api/dto"
+	"one-api/model"
 	"one-api/relay"
 	"one-api/relay/channel/ai360"
 	"one-api/relay/channel/moonshot"
@@ -105,9 +107,25 @@ func init() {
 }
 
 func ListModels(c *gin.Context) {
+	userId := c.GetInt("id")
+	user, err := model.GetUserById(userId, true)
+	if err != nil {
+		c.JSON(http.StatusOK, gin.H{
+			"success": false,
+			"message": err.Error(),
+		})
+		return
+	}
+	models := model.GetGroupModels(user.Group)
+	userOpenAiModels := make([]OpenAIModels, 0)
+	for _, s := range models {
+		if _, ok := openAIModelsMap[s]; ok {
+			userOpenAiModels = append(userOpenAiModels, openAIModelsMap[s])
+		}
+	}
 	c.JSON(200, gin.H{
 		"object": "list",
-		"data":   openAIModels,
+		"data":   userOpenAiModels,
 	})
 }