one-api/controller/model.go
2023-12-19 22:47:28 +08:00

952 lines
21 KiB
Go

package controller
import (
"fmt"
"github.com/gin-gonic/gin"
)
// https://platform.openai.com/docs/api-reference/models/list
type OpenAIModelPermission struct {
Id string `json:"id"`
Object string `json:"object"`
Created int `json:"created"`
AllowCreateEngine bool `json:"allow_create_engine"`
AllowSampling bool `json:"allow_sampling"`
AllowLogprobs bool `json:"allow_logprobs"`
AllowSearchIndices bool `json:"allow_search_indices"`
AllowView bool `json:"allow_view"`
AllowFineTuning bool `json:"allow_fine_tuning"`
Organization string `json:"organization"`
Group *string `json:"group"`
IsBlocking bool `json:"is_blocking"`
}
type OpenAIModels struct {
Id string `json:"id"`
Object string `json:"object"`
Created int `json:"created"`
OwnedBy string `json:"owned_by"`
Permission []OpenAIModelPermission `json:"permission"`
Root string `json:"root"`
Parent *string `json:"parent"`
}
var openAIModels []OpenAIModels
var openAIModelsMap map[string]OpenAIModels
func init() {
var permission []OpenAIModelPermission
permission = append(permission, OpenAIModelPermission{
Id: "modelperm-LwHkVFn8AcMItP432fKKDIKJ",
Object: "model_permission",
Created: 1626777600,
AllowCreateEngine: true,
AllowSampling: true,
AllowLogprobs: true,
AllowSearchIndices: false,
AllowView: true,
AllowFineTuning: false,
Organization: "*",
Group: nil,
IsBlocking: false,
})
// https://platform.openai.com/docs/models/model-endpoint-compatibility
openAIModels = []OpenAIModels{
{
Id: "dall-e-2",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "dall-e-2",
Parent: nil,
},
{
Id: "dall-e-3",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "dall-e-3",
Parent: nil,
},
{
Id: "whisper-1",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "whisper-1",
Parent: nil,
},
{
Id: "tts-1",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "tts-1",
Parent: nil,
},
{
Id: "tts-1-1106",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "tts-1-1106",
Parent: nil,
},
{
Id: "tts-1-hd",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "tts-1-hd",
Parent: nil,
},
{
Id: "tts-1-hd-1106",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "tts-1-hd-1106",
Parent: nil,
},
{
Id: "gpt-3.5-turbo",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "gpt-3.5-turbo",
Parent: nil,
},
{
Id: "gpt-3.5-turbo-0301",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "gpt-3.5-turbo-0301",
Parent: nil,
},
{
Id: "gpt-3.5-turbo-0613",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "gpt-3.5-turbo-0613",
Parent: nil,
},
{
Id: "gpt-3.5-turbo-16k",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "gpt-3.5-turbo-16k",
Parent: nil,
},
{
Id: "gpt-3.5-turbo-16k-0613",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "gpt-3.5-turbo-16k-0613",
Parent: nil,
},
{
Id: "gpt-3.5-turbo-1106",
Object: "model",
Created: 1699593571,
OwnedBy: "openai",
Permission: permission,
Root: "gpt-3.5-turbo-1106",
Parent: nil,
},
{
Id: "gpt-3.5-turbo-instruct",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "gpt-3.5-turbo-instruct",
Parent: nil,
},
{
Id: "gpt-4",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "gpt-4",
Parent: nil,
},
{
Id: "gpt-4-0314",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "gpt-4-0314",
Parent: nil,
},
{
Id: "gpt-4-0613",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "gpt-4-0613",
Parent: nil,
},
{
Id: "gpt-4-32k",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "gpt-4-32k",
Parent: nil,
},
{
Id: "gpt-4-32k-0314",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "gpt-4-32k-0314",
Parent: nil,
},
{
Id: "gpt-4-32k-0613",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "gpt-4-32k-0613",
Parent: nil,
},
{
Id: "gpt-4-1106-preview",
Object: "model",
Created: 1699593571,
OwnedBy: "openai",
Permission: permission,
Root: "gpt-4-1106-preview",
Parent: nil,
},
{
Id: "gpt-4-vision-preview",
Object: "model",
Created: 1699593571,
OwnedBy: "openai",
Permission: permission,
Root: "gpt-4-vision-preview",
Parent: nil,
},
{
Id: "text-embedding-ada-002",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "text-embedding-ada-002",
Parent: nil,
},
{
Id: "text-davinci-003",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "text-davinci-003",
Parent: nil,
},
{
Id: "text-davinci-002",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "text-davinci-002",
Parent: nil,
},
{
Id: "text-curie-001",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "text-curie-001",
Parent: nil,
},
{
Id: "text-babbage-001",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "text-babbage-001",
Parent: nil,
},
{
Id: "text-ada-001",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "text-ada-001",
Parent: nil,
},
{
Id: "text-moderation-latest",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "text-moderation-latest",
Parent: nil,
},
{
Id: "text-moderation-stable",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "text-moderation-stable",
Parent: nil,
},
{
Id: "text-davinci-edit-001",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "text-davinci-edit-001",
Parent: nil,
},
{
Id: "code-davinci-edit-001",
Object: "model",
Created: 1677649963,
OwnedBy: "openai",
Permission: permission,
Root: "code-davinci-edit-001",
Parent: nil,
},
{
Id: "claude-instant-1",
Object: "model",
Created: 1677649963,
OwnedBy: "anthropic",
Permission: permission,
Root: "claude-instant-1",
Parent: nil,
},
{
Id: "claude-2",
Object: "model",
Created: 1677649963,
OwnedBy: "anthropic",
Permission: permission,
Root: "claude-2",
Parent: nil,
},
{
Id: "claude-2.1",
Object: "model",
Created: 1677649963,
OwnedBy: "anthropic",
Permission: permission,
Root: "claude-2.1",
Parent: nil,
},
{
Id: "claude-2.0",
Object: "model",
Created: 1677649963,
OwnedBy: "anthropic",
Permission: permission,
Root: "claude-2.0",
Parent: nil,
},
{
Id: "ERNIE-Bot",
Object: "model",
Created: 1677649963,
OwnedBy: "baidu",
Permission: permission,
Root: "ERNIE-Bot",
Parent: nil,
},
{
Id: "ERNIE-Bot-turbo",
Object: "model",
Created: 1677649963,
OwnedBy: "baidu",
Permission: permission,
Root: "ERNIE-Bot-turbo",
Parent: nil,
},
{
Id: "ERNIE-Bot-4",
Object: "model",
Created: 1677649963,
OwnedBy: "baidu",
Permission: permission,
Root: "ERNIE-Bot-4",
Parent: nil,
},
{
Id: "Embedding-V1",
Object: "model",
Created: 1677649963,
OwnedBy: "baidu",
Permission: permission,
Root: "Embedding-V1",
Parent: nil,
},
{
Id: "PaLM-2",
Object: "model",
Created: 1677649963,
OwnedBy: "google",
Permission: permission,
Root: "PaLM-2",
Parent: nil,
},
{
Id: "chatglm_turbo",
Object: "model",
Created: 1677649963,
OwnedBy: "zhipu",
Permission: permission,
Root: "chatglm_turbo",
Parent: nil,
},
{
Id: "chatglm_pro",
Object: "model",
Created: 1677649963,
OwnedBy: "zhipu",
Permission: permission,
Root: "chatglm_pro",
Parent: nil,
},
{
Id: "chatglm_std",
Object: "model",
Created: 1677649963,
OwnedBy: "zhipu",
Permission: permission,
Root: "chatglm_std",
Parent: nil,
},
{
Id: "chatglm_lite",
Object: "model",
Created: 1677649963,
OwnedBy: "zhipu",
Permission: permission,
Root: "chatglm_lite",
Parent: nil,
},
{
Id: "qwen-turbo",
Object: "model",
Created: 1677649963,
OwnedBy: "ali",
Permission: permission,
Root: "qwen-turbo",
Parent: nil,
},
{
Id: "qwen-plus",
Object: "model",
Created: 1677649963,
OwnedBy: "ali",
Permission: permission,
Root: "qwen-plus",
Parent: nil,
},
{
Id: "text-embedding-v1",
Object: "model",
Created: 1677649963,
OwnedBy: "ali",
Permission: permission,
Root: "text-embedding-v1",
Parent: nil,
},
{
Id: "sambert-zhichu-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhichu-v1",
Parent: nil,
},
{
Id: "sambert-zhiwei-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhiwei-v1",
Parent: nil,
},
{
Id: "sambert-zhixiang-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhixiang-v1",
Parent: nil,
},
{
Id: "sambert-zhide-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhide-v1",
Parent: nil,
},
{
Id: "sambert-zhijia-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhijia-v1",
Parent: nil,
},
{
Id: "sambert-zhinan-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhinan-v1",
Parent: nil,
},
{
Id: "sambert-zhiqi-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhiqi-v1",
Parent: nil,
},
{
Id: "sambert-zhiqian-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhiqian-v1",
Parent: nil,
},
{
Id: "sambert-zhiru-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhiru-v1",
Parent: nil,
},
{
Id: "sambert-zhimiao-emo-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhimiao-emo-v1",
Parent: nil,
},
{
Id: "sambert-zhida-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhida-v1",
Parent: nil,
},
{
Id: "sambert-zhifei-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhifei-v1",
Parent: nil,
},
{
Id: "sambert-zhigui-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhigui-v1",
Parent: nil,
},
{
Id: "sambert-zhihao-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhihao-v1",
Parent: nil,
},
{
Id: "sambert-zhijing-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhijing-v1",
Parent: nil,
},
{
Id: "sambert-zhilun-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhilun-v1",
Parent: nil,
},
{
Id: "sambert-zhimao-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhimao-v1",
Parent: nil,
},
{
Id: "sambert-zhiming-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhiming-v1",
Parent: nil,
},
{
Id: "sambert-zhimo-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhimo-v1",
Parent: nil,
},
{
Id: "sambert-zhina-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhina-v1",
Parent: nil,
},
{
Id: "sambert-zhishu-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhishu-v1",
Parent: nil,
},
{
Id: "sambert-zhishuo-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhishuo-v1",
Parent: nil,
},
{
Id: "sambert-zhistella-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhistella-v1",
Parent: nil,
},
{
Id: "sambert-zhiting-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhiting-v1",
Parent: nil,
},
{
Id: "sambert-zhixiao-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhixiao-v1",
Parent: nil,
},
{
Id: "sambert-zhiya-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhiya-v1",
Parent: nil,
},
{
Id: "sambert-zhiye-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhiye-v1",
Parent: nil,
},
{
Id: "sambert-zhiying-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhiying-v1",
Parent: nil,
},
{
Id: "sambert-zhiyuan-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhiyuan-v1",
Parent: nil,
},
{
Id: "sambert-zhiyue-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-zhiyue-v1",
Parent: nil,
},
{
Id: "sambert-camila-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-camila-v1",
Parent: nil,
},
{
Id: "sambert-perla-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-perla-v1",
Parent: nil,
},
{
Id: "sambert-indah-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-indah-v1",
Parent: nil,
},
{
Id: "sambert-clara-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-clara-v1",
Parent: nil,
},
{
Id: "sambert-hanna-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-hanna-v1",
Parent: nil,
},
{
Id: "sambert-beth-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-beth-v1",
Parent: nil,
},
{
Id: "sambert-cally-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-cally-v1",
Parent: nil,
},
{
Id: "sambert-cindy-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-cindy-v1",
Parent: nil,
},
{
Id: "sambert-eva-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-eva-v1",
Parent: nil,
},
{
Id: "sambert-donna-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-donna-v1",
Parent: nil,
},
{
Id: "sambert-brian-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-brian-v1",
Parent: nil,
},
{
Id: "sambert-waan-v1",
Object: "model",
Created: 1702621721,
OwnedBy: "ali",
Permission: permission,
Root: "sambert-waan-v1",
Parent: nil,
},
{
Id: "SparkDesk",
Object: "model",
Created: 1677649963,
OwnedBy: "xunfei",
Permission: permission,
Root: "SparkDesk",
Parent: nil,
},
{
Id: "360GPT_S2_V9",
Object: "model",
Created: 1677649963,
OwnedBy: "360",
Permission: permission,
Root: "360GPT_S2_V9",
Parent: nil,
},
{
Id: "embedding-bert-512-v1",
Object: "model",
Created: 1677649963,
OwnedBy: "360",
Permission: permission,
Root: "embedding-bert-512-v1",
Parent: nil,
},
{
Id: "embedding_s1_v1",
Object: "model",
Created: 1677649963,
OwnedBy: "360",
Permission: permission,
Root: "embedding_s1_v1",
Parent: nil,
},
{
Id: "semantic_similarity_s1_v1",
Object: "model",
Created: 1677649963,
OwnedBy: "360",
Permission: permission,
Root: "semantic_similarity_s1_v1",
Parent: nil,
},
{
Id: "hunyuan",
Object: "model",
Created: 1677649963,
OwnedBy: "tencent",
Permission: permission,
Root: "hunyuan",
Parent: nil,
},
}
openAIModelsMap = make(map[string]OpenAIModels)
for _, model := range openAIModels {
openAIModelsMap[model.Id] = model
}
}
func ListModels(c *gin.Context) {
c.JSON(200, gin.H{
"object": "list",
"data": openAIModels,
})
}
func RetrieveModel(c *gin.Context) {
modelId := c.Param("model")
if model, ok := openAIModelsMap[modelId]; ok {
c.JSON(200, model)
} else {
openAIError := OpenAIError{
Message: fmt.Sprintf("The model '%s' does not exist", modelId),
Type: "invalid_request_error",
Param: "model",
Code: "model_not_found",
}
c.JSON(200, gin.H{
"error": openAIError,
})
}
}