| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356 |
- 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",
- Object: "model",
- Created: 1677649963,
- OwnedBy: "openai",
- Permission: permission,
- Root: "dall-e",
- 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-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: "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: "anturopic",
- Permission: permission,
- Root: "claude-instant-1",
- Parent: nil,
- },
- {
- Id: "claude-2",
- Object: "model",
- Created: 1677649963,
- OwnedBy: "anturopic",
- Permission: permission,
- Root: "claude-2",
- 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: "PaLM-2",
- Object: "model",
- Created: 1677649963,
- OwnedBy: "google",
- Permission: permission,
- Root: "PaLM-2",
- 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,
- },
- }
- 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,
- })
- }
- }
|