Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
backend/assets
backend/docs/swagger.json
backend/assets-amd64
backend/assets-amd64
ModelModal
ui/node_modules
ui/dist
67 changes: 54 additions & 13 deletions backend/consts/model.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,58 @@ const (
type ModelProvider string

const (
ModelProviderSiliconFlow ModelProvider = "SiliconFlow"
ModelProviderOpenAI ModelProvider = "OpenAI"
ModelProviderOllama ModelProvider = "Ollama"
ModelProviderDeepSeek ModelProvider = "DeepSeek"
ModelProviderMoonshot ModelProvider = "Moonshot"
ModelProviderAzureOpenAI ModelProvider = "AzureOpenAI"
ModelProviderBaiZhiCloud ModelProvider = "BaiZhiCloud"
ModelProviderHunyuan ModelProvider = "Hunyuan"
ModelProviderBaiLian ModelProvider = "BaiLian"
ModelProviderVolcengine ModelProvider = "Volcengine"
ModelProviderZhiPu ModelProvider = "ZhiPu"
ModelProviderGemini ModelProvider = "Gemini"
ModelProviderOther ModelProvider = "Other"
ModelProviderSiliconFlow ModelProvider = "SiliconFlow"
ModelProviderOpenAI ModelProvider = "OpenAI"
ModelProviderOllama ModelProvider = "Ollama"
ModelProviderDeepSeek ModelProvider = "DeepSeek"
ModelProviderMoonshot ModelProvider = "Moonshot"
ModelProviderAzureOpenAI ModelProvider = "AzureOpenAI"
ModelProviderBaiZhiCloud ModelProvider = "BaiZhiCloud"
ModelProviderHunyuan ModelProvider = "Hunyuan"
ModelProviderBaiLian ModelProvider = "BaiLian"
ModelProviderVolcengine ModelProvider = "Volcengine"
ModelProviderZhiPu ModelProvider = "ZhiPu"
ModelProviderGemini ModelProvider = "Gemini"
ModelProviderAiHubMix ModelProvider = "AiHubMix"
ModelProviderOcoolAI ModelProvider = "OcoolAI"
ModelProviderPPIO ModelProvider = "PPIO"
ModelProviderAlayaNew ModelProvider = "AlayaNew"
ModelProviderQiniu ModelProvider = "Qiniu"
ModelProviderDMXAPI ModelProvider = "DMXAPI"
ModelProviderBurnCloud ModelProvider = "BurnCloud"
ModelProviderTokenFlux ModelProvider = "TokenFlux"
ModelProvider302AI ModelProvider = "302AI"
ModelProviderCephalon ModelProvider = "Cephalon"
ModelProviderLanyun ModelProvider = "Lanyun"
ModelProviderPH8 ModelProvider = "PH8"
ModelProviderOpenRouter ModelProvider = "OpenRouter"
ModelProviderNewAPI ModelProvider = "NewAPI"
ModelProviderLMStudio ModelProvider = "LMStudio"
ModelProviderAnthropic ModelProvider = "Anthropic"
ModelProviderVertexAI ModelProvider = "VertexAI"
ModelProviderGithub ModelProvider = "Github"
ModelProviderCopilot ModelProvider = "Copilot"
ModelProviderYi ModelProvider = "Yi"
ModelProviderBaichuan ModelProvider = "Baichuan"
ModelProviderStepFun ModelProvider = "StepFun"
ModelProviderInfini ModelProvider = "Infini"
ModelProviderMiniMax ModelProvider = "MiniMax"
ModelProviderGroq ModelProvider = "Groq"
ModelProviderTogether ModelProvider = "Together"
ModelProviderFireworks ModelProvider = "Fireworks"
ModelProviderNvidia ModelProvider = "Nvidia"
ModelProviderGrok ModelProvider = "Grok"
ModelProviderHyperbolic ModelProvider = "Hyperbolic"
ModelProviderMistral ModelProvider = "Mistral"
ModelProviderJina ModelProvider = "Jina"
ModelProviderPerplexity ModelProvider = "Perplexity"
ModelProviderModelScope ModelProvider = "ModelScope"
ModelProviderXirang ModelProvider = "Xirang"
ModelProviderTencentCloudTI ModelProvider = "TencentCloudTI"
ModelProviderBaiduCloud ModelProvider = "BaiduCloud"
ModelProviderGPUStack ModelProvider = "GPUStack"
ModelProviderVoyageAI ModelProvider = "VoyageAI"
ModelProviderAWSBedrock ModelProvider = "AWSBedrock"
ModelProviderPoe ModelProvider = "Poe"
ModelProviderOther ModelProvider = "Other"
)
34 changes: 17 additions & 17 deletions backend/domain/model.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ type CheckModelReq struct {
}

type GetProviderModelListReq struct {
Provider consts.ModelProvider `json:"provider" query:"provider" validate:"required,oneof=SiliconFlow OpenAI Ollama DeepSeek Moonshot AzureOpenAI BaiZhiCloud Hunyuan BaiLian Volcengine ZhiPu Gemini Other"`
Provider consts.ModelProvider `json:"provider" query:"provider" validate:"required"`
BaseURL string `json:"base_url" query:"base_url" validate:"required"`
APIKey string `json:"api_key" query:"api_key"`
APIHeader string `json:"api_header" query:"api_header"`
Expand Down Expand Up @@ -76,11 +76,11 @@ type GetTokenUsageReq struct {

type CreateModelReq struct {
AdminID uuid.UUID `json:"-"`
ShowName string `json:"show_name"` // 模型显示名称
ModelName string `json:"model_name" validate:"required"` // 模型名称 如: deepseek-v3
Provider consts.ModelProvider `json:"provider" validate:"required,oneof=SiliconFlow OpenAI Ollama DeepSeek Moonshot AzureOpenAI BaiZhiCloud Hunyuan BaiLian Volcengine ZhiPu Gemini Other"` // 提供商
APIBase string `json:"api_base" validate:"required"` // 接口地址 如:https://api.qwen.com
APIKey string `json:"api_key"` // 接口密钥 如:sk-xxxx
ShowName string `json:"show_name"` // 模型显示名称
ModelName string `json:"model_name" validate:"required"` // 模型名称 如: deepseek-v3
Provider consts.ModelProvider `json:"provider" validate:"required"` // 提供商
APIBase string `json:"api_base" validate:"required"` // 接口地址 如:https://api.qwen.com
APIKey string `json:"api_key"` // 接口密钥 如:sk-xxxx
APIVersion string `json:"api_version"`
APIHeader string `json:"api_header"`
ModelType consts.ModelType `json:"model_type"` // 模型类型 llm:对话模型 coder:代码模型
Expand Down Expand Up @@ -108,12 +108,12 @@ func DefaultModelParam() *ModelParam {
}

type UpdateModelReq struct {
ID string `json:"id"` // 模型ID
ModelName *string `json:"model_name"` // 模型名称
ShowName *string `json:"show_name"` // 模型显示名称
Provider *consts.ModelProvider `json:"provider" validate:"required,oneof=SiliconFlow OpenAI Ollama DeepSeek Moonshot AzureOpenAI BaiZhiCloud Hunyuan BaiLian Volcengine ZhiPu Gemini Other"` // 提供商
APIBase *string `json:"api_base"` // 接口地址 如:https://api.qwen.com
APIKey *string `json:"api_key"` // 接口密钥 如:sk-xxxx
ID string `json:"id"` // 模型ID
ModelName *string `json:"model_name"` // 模型名称
ShowName *string `json:"show_name"` // 模型显示名称
Provider *consts.ModelProvider `json:"provider" validate:"required"` // 提供商
APIBase *string `json:"api_base"` // 接口地址 如:https://api.qwen.com
APIKey *string `json:"api_key"` // 接口密钥 如:sk-xxxx
APIVersion *string `json:"api_version"`
APIHeader *string `json:"api_header"`
Status *consts.ModelStatus `json:"status"` // 状态 active:启用 inactive:禁用
Expand All @@ -133,9 +133,9 @@ type ModelTokenUsage struct {
}

type ModelBasic struct {
Name string `json:"name"` // 模型名称
Provider consts.ModelProvider `json:"provider" validate:"required,oneof=SiliconFlow OpenAI Ollama DeepSeek Moonshot AzureOpenAI BaiZhiCloud Hunyuan BaiLian Volcengine ZhiPu Gemini Other"` // 提供商
APIBase string `json:"api_base"` // 接口地址 如:https://api.qwen.com
Name string `json:"name"` // 模型名称
Provider consts.ModelProvider `json:"provider" validate:"required"` // 提供商
APIBase string `json:"api_base"` // 接口地址 如:https://api.qwen.com
}

type ModelUsage struct {
Expand Down Expand Up @@ -198,6 +198,6 @@ func (m *Model) From(e *db.Model) *Model {
}

type CheckModelResp struct {
Error string `json:"error"`
Content string `json:"content"`
Error string `json:"error"`
Model *Model `json:"model"`
}
22 changes: 9 additions & 13 deletions backend/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ go 1.25.0
require (
entgo.io/ent v0.14.4
github.com/GoYoko/web v1.4.0
github.com/chaitin/ModelKit v1.5.1-0.20250822075523-d896029f3d7a
github.com/chaitin/ModelKit v1.6.2
github.com/doquangtan/socket.io/v4 v4.0.8
github.com/golang-migrate/migrate/v4 v4.18.3
github.com/google/uuid v1.6.0
Expand All @@ -17,13 +17,10 @@ require (
github.com/pgvector/pgvector-go v0.3.0
github.com/redis/go-redis/v9 v9.7.3
github.com/rokku-c/go-openai v1.35.7-fix2
github.com/sashabaranov/go-openai v1.41.1
github.com/sirupsen/logrus v1.9.3
github.com/spf13/viper v1.20.1
gitlab.com/gitlab-org/api/client-go v0.142.0
golang.org/x/crypto v0.40.0
golang.org/x/crypto v0.41.0
golang.org/x/oauth2 v0.30.0
golang.org/x/text v0.27.0
golang.org/x/text v0.28.0
golang.org/x/time v0.12.0
google.golang.org/grpc v1.74.2
google.golang.org/protobuf v1.36.8
Expand Down Expand Up @@ -76,16 +73,13 @@ require (
github.com/gofiber/websocket/v2 v2.2.1 // indirect
github.com/google/generative-ai-go v0.20.1 // indirect
github.com/google/go-cmp v0.7.0 // indirect
github.com/google/go-querystring v1.1.0 // indirect
github.com/google/s2a-go v0.1.9 // indirect
github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect
github.com/googleapis/gax-go/v2 v2.15.0 // indirect
github.com/goph/emperror v0.17.2 // indirect
github.com/gorilla/websocket v1.5.3 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
github.com/hashicorp/go-multierror v1.1.1 // indirect
github.com/hashicorp/go-retryablehttp v0.7.8 // indirect
github.com/hashicorp/hcl/v2 v2.23.0 // indirect
github.com/invopop/yaml v0.1.0 // indirect
github.com/joho/godotenv v1.5.1 // indirect
Expand Down Expand Up @@ -114,6 +108,7 @@ require (
github.com/rs/xid v1.6.0 // indirect
github.com/sagikazarmark/locafero v0.9.0 // indirect
github.com/savsgio/gotils v0.0.0-20230208104028-c358bd845dee // indirect
github.com/sirupsen/logrus v1.9.3 // indirect
github.com/slongfield/pyfmt v0.0.0-20220222012616-ea85ff4c361f // indirect
github.com/sourcegraph/conc v0.3.0 // indirect
github.com/spf13/afero v1.14.0 // indirect
Expand All @@ -136,14 +131,15 @@ require (
go.opentelemetry.io/otel/metric v1.37.0 // indirect
go.opentelemetry.io/otel/trace v1.37.0 // indirect
go.uber.org/atomic v1.11.0 // indirect
go.uber.org/mock v0.6.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
golang.org/x/arch v0.19.0 // indirect
golang.org/x/exp v0.0.0-20250718183923-645b1fa84792 // indirect
golang.org/x/mod v0.26.0 // indirect
golang.org/x/net v0.42.0 // indirect
golang.org/x/mod v0.27.0 // indirect
golang.org/x/net v0.43.0 // indirect
golang.org/x/sync v0.16.0 // indirect
golang.org/x/sys v0.34.0 // indirect
golang.org/x/tools v0.35.0 // indirect
golang.org/x/sys v0.35.0 // indirect
golang.org/x/tools v0.36.0 // indirect
google.golang.org/api v0.239.0 // indirect
google.golang.org/genai v1.13.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20250603155806-513f23925822 // indirect
Expand Down
Loading
Loading