refactor(admin): 重构管理员设置模型渠道配置结构

- 将公开设置中的模型相关字段统一收拢到 modelChannel 配置组
- 更新 AdminPublicSettings 类型定义为 AdminPublicModelChannelSettings
- 在前端表单中调整模型配置字段路径到 public.modelChannel 下
- 更新设置规范化函数以适配新的嵌套配置结构
- 修改依赖注入和文档以反映配置结构变化
- 添加系统配置数据结构文档说明新的配置格式
This commit is contained in:
HouYunFei
2026-05-21 12:14:56 +08:00
parent 603deee962
commit afd9631735
14 changed files with 151 additions and 58 deletions
+7 -27
View File
@@ -1,7 +1,5 @@
package model
import "encoding/json"
type SettingKey string
const (
@@ -21,8 +19,8 @@ type ModelChannel struct {
Remark string `json:"remark"`
}
// PublicSetting 公开配置。
type PublicSetting struct {
// PublicModelChannelSetting 公开模型渠道配置。
type PublicModelChannelSetting struct {
AvailableModels []string `json:"availableModels"`
DefaultModel string `json:"defaultModel"`
DefaultImageModel string `json:"defaultImageModel"`
@@ -31,6 +29,11 @@ type PublicSetting struct {
AllowCustomChannel bool `json:"allowCustomChannel"`
}
// PublicSetting 公开配置。
type PublicSetting struct {
ModelChannel PublicModelChannelSetting `json:"modelChannel"`
}
// PrivateSetting 私有配置。
type PrivateSetting struct {
Channels []ModelChannel `json:"channels"`
@@ -49,26 +52,3 @@ type Settings struct {
Public PublicSetting `json:"public"`
Private PrivateSetting `json:"private"`
}
func (setting *PublicSetting) UnmarshalJSON(data []byte) error {
type alias struct {
AvailableModels []string `json:"availableModels"`
DefaultModel string `json:"defaultModel"`
DefaultImageModel string `json:"defaultImageModel"`
DefaultTextModel string `json:"defaultTextModel"`
SystemPrompt string `json:"systemPrompt"`
AllowCustomChannel bool `json:"allowCustomChannel"`
AllowCustomModel bool `json:"allowCustomModel"`
}
var value alias
if err := json.Unmarshal(data, &value); err != nil {
return err
}
setting.AvailableModels = value.AvailableModels
setting.DefaultModel = value.DefaultModel
setting.DefaultImageModel = value.DefaultImageModel
setting.DefaultTextModel = value.DefaultTextModel
setting.SystemPrompt = value.SystemPrompt
setting.AllowCustomChannel = value.AllowCustomChannel || value.AllowCustomModel
return nil
}