feat(model): 支持配置自定义模型

This commit is contained in:
yokowu
2025-07-16 14:28:42 +08:00
parent 4c7fb2f495
commit c83285cdc3
2 changed files with 18 additions and 15 deletions

View File

@@ -84,7 +84,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"`
Provider consts.ModelProvider `json:"provider" query:"provider" validate:"required,oneof=SiliconFlow OpenAI Ollama DeepSeek Moonshot AzureOpenAI BaiZhiCloud Hunyuan BaiLian Volcengine Other"`
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"`
@@ -114,23 +114,23 @@ type GetTokenUsageReq struct {
type CreateModelReq struct {
UserID string `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"` // 提供商
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,oneof=SiliconFlow OpenAI Ollama DeepSeek Moonshot AzureOpenAI BaiZhiCloud Hunyuan BaiLian Volcengine Other"` // 提供商
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:代码模型
}
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"` // 提供商
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,oneof=SiliconFlow OpenAI Ollama DeepSeek Moonshot AzureOpenAI BaiZhiCloud Hunyuan BaiLian Volcengine Other"` // 提供商
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:禁用
@@ -149,9 +149,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"` // 提供商
APIBase string `json:"api_base"` // 接口地址 如https://api.qwen.com
Name string `json:"name"` // 模型名称
Provider consts.ModelProvider `json:"provider" validate:"required,oneof=SiliconFlow OpenAI Ollama DeepSeek Moonshot AzureOpenAI BaiZhiCloud Hunyuan BaiLian Volcengine Other"` // 提供商
APIBase string `json:"api_base"` // 接口地址 如https://api.qwen.com
}
type ModelUsage struct {

View File

@@ -225,6 +225,9 @@ func (m *ModelUsecase) Update(ctx context.Context, req *domain.UpdateModelReq) (
if req.APIHeader != nil {
up.SetAPIHeader(*req.APIHeader)
}
if req.ShowName != nil {
up.SetShowName(*req.ShowName)
}
if req.Status != nil {
if *req.Status == consts.ModelStatusActive {
if err := tx.Model.Update().