Skip to content

Commit 113e631

Browse files
committed
feat: 支持更多大模型
1 parent daba8fa commit 113e631

File tree

12 files changed

+217
-134
lines changed

12 files changed

+217
-134
lines changed

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
backend/assets
22
backend/docs/swagger.json
3-
backend/assets-amd64
3+
backend/assets-amd64
4+
ModelModal
5+
ui/node_modules
6+
ui/dist

backend/consts/model.go

Lines changed: 54 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,58 @@ const (
2020
type ModelProvider string
2121

2222
const (
23-
ModelProviderSiliconFlow ModelProvider = "SiliconFlow"
24-
ModelProviderOpenAI ModelProvider = "OpenAI"
25-
ModelProviderOllama ModelProvider = "Ollama"
26-
ModelProviderDeepSeek ModelProvider = "DeepSeek"
27-
ModelProviderMoonshot ModelProvider = "Moonshot"
28-
ModelProviderAzureOpenAI ModelProvider = "AzureOpenAI"
29-
ModelProviderBaiZhiCloud ModelProvider = "BaiZhiCloud"
30-
ModelProviderHunyuan ModelProvider = "Hunyuan"
31-
ModelProviderBaiLian ModelProvider = "BaiLian"
32-
ModelProviderVolcengine ModelProvider = "Volcengine"
33-
ModelProviderZhiPu ModelProvider = "ZhiPu"
34-
ModelProviderGemini ModelProvider = "Gemini"
35-
ModelProviderOther ModelProvider = "Other"
23+
ModelProviderSiliconFlow ModelProvider = "SiliconFlow"
24+
ModelProviderOpenAI ModelProvider = "OpenAI"
25+
ModelProviderOllama ModelProvider = "Ollama"
26+
ModelProviderDeepSeek ModelProvider = "DeepSeek"
27+
ModelProviderMoonshot ModelProvider = "Moonshot"
28+
ModelProviderAzureOpenAI ModelProvider = "AzureOpenAI"
29+
ModelProviderBaiZhiCloud ModelProvider = "BaiZhiCloud"
30+
ModelProviderHunyuan ModelProvider = "Hunyuan"
31+
ModelProviderBaiLian ModelProvider = "BaiLian"
32+
ModelProviderVolcengine ModelProvider = "Volcengine"
33+
ModelProviderZhiPu ModelProvider = "ZhiPu"
34+
ModelProviderGemini ModelProvider = "Gemini"
35+
ModelProviderAiHubMix ModelProvider = "AiHubMix"
36+
ModelProviderOcoolAI ModelProvider = "OcoolAI"
37+
ModelProviderPPIO ModelProvider = "PPIO"
38+
ModelProviderAlayaNew ModelProvider = "AlayaNew"
39+
ModelProviderQiniu ModelProvider = "Qiniu"
40+
ModelProviderDMXAPI ModelProvider = "DMXAPI"
41+
ModelProviderBurnCloud ModelProvider = "BurnCloud"
42+
ModelProviderTokenFlux ModelProvider = "TokenFlux"
43+
ModelProvider302AI ModelProvider = "302AI"
44+
ModelProviderCephalon ModelProvider = "Cephalon"
45+
ModelProviderLanyun ModelProvider = "Lanyun"
46+
ModelProviderPH8 ModelProvider = "PH8"
47+
ModelProviderOpenRouter ModelProvider = "OpenRouter"
48+
ModelProviderNewAPI ModelProvider = "NewAPI"
49+
ModelProviderLMStudio ModelProvider = "LMStudio"
50+
ModelProviderAnthropic ModelProvider = "Anthropic"
51+
ModelProviderVertexAI ModelProvider = "VertexAI"
52+
ModelProviderGithub ModelProvider = "Github"
53+
ModelProviderCopilot ModelProvider = "Copilot"
54+
ModelProviderYi ModelProvider = "Yi"
55+
ModelProviderBaichuan ModelProvider = "Baichuan"
56+
ModelProviderStepFun ModelProvider = "StepFun"
57+
ModelProviderInfini ModelProvider = "Infini"
58+
ModelProviderMiniMax ModelProvider = "MiniMax"
59+
ModelProviderGroq ModelProvider = "Groq"
60+
ModelProviderTogether ModelProvider = "Together"
61+
ModelProviderFireworks ModelProvider = "Fireworks"
62+
ModelProviderNvidia ModelProvider = "Nvidia"
63+
ModelProviderGrok ModelProvider = "Grok"
64+
ModelProviderHyperbolic ModelProvider = "Hyperbolic"
65+
ModelProviderMistral ModelProvider = "Mistral"
66+
ModelProviderJina ModelProvider = "Jina"
67+
ModelProviderPerplexity ModelProvider = "Perplexity"
68+
ModelProviderModelScope ModelProvider = "ModelScope"
69+
ModelProviderXirang ModelProvider = "Xirang"
70+
ModelProviderTencentCloudTI ModelProvider = "TencentCloudTI"
71+
ModelProviderBaiduCloud ModelProvider = "BaiduCloud"
72+
ModelProviderGPUStack ModelProvider = "GPUStack"
73+
ModelProviderVoyageAI ModelProvider = "VoyageAI"
74+
ModelProviderAWSBedrock ModelProvider = "AWSBedrock"
75+
ModelProviderPoe ModelProvider = "Poe"
76+
ModelProviderOther ModelProvider = "Other"
3677
)

backend/domain/model.go

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ type CheckModelReq struct {
4646
}
4747

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

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

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

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

141141
type ModelUsage struct {
@@ -198,6 +198,6 @@ func (m *Model) From(e *db.Model) *Model {
198198
}
199199

200200
type CheckModelResp struct {
201-
Error string `json:"error"`
202-
Content string `json:"content"`
201+
Error string `json:"error"`
202+
Model *Model `json:"model"`
203203
}

backend/go.mod

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ go 1.25.0
55
require (
66
entgo.io/ent v0.14.4
77
github.com/GoYoko/web v1.4.0
8-
github.com/chaitin/ModelKit v1.5.1-0.20250822075523-d896029f3d7a
8+
github.com/chaitin/ModelKit v1.6.2
99
github.com/doquangtan/socket.io/v4 v4.0.8
1010
github.com/golang-migrate/migrate/v4 v4.18.3
1111
github.com/google/uuid v1.6.0
@@ -17,13 +17,10 @@ require (
1717
github.com/pgvector/pgvector-go v0.3.0
1818
github.com/redis/go-redis/v9 v9.7.3
1919
github.com/rokku-c/go-openai v1.35.7-fix2
20-
github.com/sashabaranov/go-openai v1.41.1
21-
github.com/sirupsen/logrus v1.9.3
2220
github.com/spf13/viper v1.20.1
23-
gitlab.com/gitlab-org/api/client-go v0.142.0
24-
golang.org/x/crypto v0.40.0
21+
golang.org/x/crypto v0.41.0
2522
golang.org/x/oauth2 v0.30.0
26-
golang.org/x/text v0.27.0
23+
golang.org/x/text v0.28.0
2724
golang.org/x/time v0.12.0
2825
google.golang.org/grpc v1.74.2
2926
google.golang.org/protobuf v1.36.8
@@ -76,16 +73,13 @@ require (
7673
github.com/gofiber/websocket/v2 v2.2.1 // indirect
7774
github.com/google/generative-ai-go v0.20.1 // indirect
7875
github.com/google/go-cmp v0.7.0 // indirect
79-
github.com/google/go-querystring v1.1.0 // indirect
8076
github.com/google/s2a-go v0.1.9 // indirect
8177
github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect
8278
github.com/googleapis/gax-go/v2 v2.15.0 // indirect
8379
github.com/goph/emperror v0.17.2 // indirect
8480
github.com/gorilla/websocket v1.5.3 // indirect
8581
github.com/hashicorp/errwrap v1.1.0 // indirect
86-
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
8782
github.com/hashicorp/go-multierror v1.1.1 // indirect
88-
github.com/hashicorp/go-retryablehttp v0.7.8 // indirect
8983
github.com/hashicorp/hcl/v2 v2.23.0 // indirect
9084
github.com/invopop/yaml v0.1.0 // indirect
9185
github.com/joho/godotenv v1.5.1 // indirect
@@ -114,6 +108,7 @@ require (
114108
github.com/rs/xid v1.6.0 // indirect
115109
github.com/sagikazarmark/locafero v0.9.0 // indirect
116110
github.com/savsgio/gotils v0.0.0-20230208104028-c358bd845dee // indirect
111+
github.com/sirupsen/logrus v1.9.3 // indirect
117112
github.com/slongfield/pyfmt v0.0.0-20220222012616-ea85ff4c361f // indirect
118113
github.com/sourcegraph/conc v0.3.0 // indirect
119114
github.com/spf13/afero v1.14.0 // indirect
@@ -136,14 +131,15 @@ require (
136131
go.opentelemetry.io/otel/metric v1.37.0 // indirect
137132
go.opentelemetry.io/otel/trace v1.37.0 // indirect
138133
go.uber.org/atomic v1.11.0 // indirect
134+
go.uber.org/mock v0.6.0 // indirect
139135
go.uber.org/multierr v1.11.0 // indirect
140136
golang.org/x/arch v0.19.0 // indirect
141137
golang.org/x/exp v0.0.0-20250718183923-645b1fa84792 // indirect
142-
golang.org/x/mod v0.26.0 // indirect
143-
golang.org/x/net v0.42.0 // indirect
138+
golang.org/x/mod v0.27.0 // indirect
139+
golang.org/x/net v0.43.0 // indirect
144140
golang.org/x/sync v0.16.0 // indirect
145-
golang.org/x/sys v0.34.0 // indirect
146-
golang.org/x/tools v0.35.0 // indirect
141+
golang.org/x/sys v0.35.0 // indirect
142+
golang.org/x/tools v0.36.0 // indirect
147143
google.golang.org/api v0.239.0 // indirect
148144
google.golang.org/genai v1.13.0 // indirect
149145
google.golang.org/genproto/googleapis/api v0.0.0-20250603155806-513f23925822 // indirect

0 commit comments

Comments
 (0)