fix: 修复"/v1/models"不显示自定义模型 (close #235)

This commit is contained in:
CaIon 2024-05-12 19:16:00 +08:00
parent 2dbf50dc07
commit db575a1c25

View File

@ -3,7 +3,6 @@ package controller
import ( import (
"fmt" "fmt"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"log"
"net/http" "net/http"
"one-api/common" "one-api/common"
"one-api/constant" "one-api/constant"
@ -48,7 +47,7 @@ var openAIModels []OpenAIModels
var openAIModelsMap map[string]OpenAIModels var openAIModelsMap map[string]OpenAIModels
var channelId2Models map[int][]string var channelId2Models map[int][]string
func init() { func getPermission() []OpenAIModelPermission {
var permission []OpenAIModelPermission var permission []OpenAIModelPermission
permission = append(permission, OpenAIModelPermission{ permission = append(permission, OpenAIModelPermission{
Id: "modelperm-LwHkVFn8AcMItP432fKKDIKJ", Id: "modelperm-LwHkVFn8AcMItP432fKKDIKJ",
@ -64,7 +63,12 @@ func init() {
Group: nil, Group: nil,
IsBlocking: false, IsBlocking: false,
}) })
return permission
}
func init() {
// https://platform.openai.com/docs/models/model-endpoint-compatibility // https://platform.openai.com/docs/models/model-endpoint-compatibility
permission := getPermission()
for i := 0; i < relayconstant.APITypeDummy; i++ { for i := 0; i < relayconstant.APITypeDummy; i++ {
if i == relayconstant.APITypeAIProxyLibrary { if i == relayconstant.APITypeAIProxyLibrary {
continue continue
@ -138,7 +142,6 @@ func init() {
if apiType == -1 || apiType == relayconstant.APITypeAIProxyLibrary { if apiType == -1 || apiType == relayconstant.APITypeAIProxyLibrary {
continue continue
} }
log.Println(apiType)
meta := &relaycommon.RelayInfo{ChannelType: i} meta := &relaycommon.RelayInfo{ChannelType: i}
adaptor := relay.GetAdaptor(apiType) adaptor := relay.GetAdaptor(apiType)
adaptor.Init(meta, dto.GeneralOpenAIRequest{}) adaptor.Init(meta, dto.GeneralOpenAIRequest{})
@ -158,9 +161,20 @@ func ListModels(c *gin.Context) {
} }
models := model.GetGroupModels(user.Group) models := model.GetGroupModels(user.Group)
userOpenAiModels := make([]OpenAIModels, 0) userOpenAiModels := make([]OpenAIModels, 0)
permission := getPermission()
for _, s := range models { for _, s := range models {
if _, ok := openAIModelsMap[s]; ok { if _, ok := openAIModelsMap[s]; ok {
userOpenAiModels = append(userOpenAiModels, openAIModelsMap[s]) userOpenAiModels = append(userOpenAiModels, openAIModelsMap[s])
} else {
userOpenAiModels = append(userOpenAiModels, OpenAIModels{
Id: s,
Object: "model",
Created: 1626777600,
OwnedBy: "openai",
Permission: permission,
Root: s,
Parent: nil,
})
} }
} }
c.JSON(200, gin.H{ c.JSON(200, gin.H{