feat: 新增管理台模型配置管理功能
- 支持配置类型注册表机制(basic、zhisuan) - 配置列表展示(生效中/未生效状态区分) - 新增/编辑配置表单,支持动态字段渲染 - 生效中配置不可编辑/删除限制 - 配置类型创建后不可修改 - 密钥掩码显示与显示/隐藏切换 - 操作二次确认弹窗(设为默认、删除)
This commit is contained in:
115
openspec/specs/admin-model-config/spec.md
Normal file
115
openspec/specs/admin-model-config/spec.md
Normal file
@@ -0,0 +1,115 @@
|
||||
## Purpose
|
||||
|
||||
管理台模型配置管理功能,支持管理员管理多组 AI 模型接入配置,并可选择其中一组作为平台默认配置生效。
|
||||
|
||||
## Requirements
|
||||
|
||||
### Requirement: 配置列表展示
|
||||
系统 SHALL 在管理台展示模型配置列表,包括当前生效配置卡片和所有配置表格。
|
||||
|
||||
#### Scenario: 查看配置列表页
|
||||
- **WHEN** 管理员进入模型配置管理页面
|
||||
- **THEN** 系统展示当前生效配置卡片(包含名称、类型、关键信息)
|
||||
- **AND** 系统展示配置列表表格(包含名称、类型、关键信息摘要、状态、操作按钮)
|
||||
|
||||
#### Scenario: 区分配置状态
|
||||
- **WHEN** 配置列表中有多个配置
|
||||
- **THEN** 当前生效配置在表格中显示"生效中"状态标签
|
||||
- **AND** 其他配置显示"未生效"状态标签
|
||||
|
||||
### Requirement: 设为默认配置
|
||||
系统 SHALL 允许管理员将非生效配置设为平台默认配置,操作需二次确认。
|
||||
|
||||
#### Scenario: 成功切换默认配置
|
||||
- **WHEN** 管理员点击某未生效配置的"设为默认"按钮
|
||||
- **THEN** 系统显示二次确认弹窗
|
||||
- **AND** 管理员确认后,该配置变为生效状态
|
||||
- **AND** 原生效配置变为未生效状态
|
||||
|
||||
#### Scenario: 取消切换默认配置
|
||||
- **WHEN** 管理员点击"设为默认"按钮后
|
||||
- **AND** 在二次确认弹窗中点击取消
|
||||
- **THEN** 系统关闭弹窗,配置状态保持不变
|
||||
|
||||
### Requirement: 删除配置
|
||||
系统 SHALL 允许管理员删除非生效的配置,删除前需二次确认。
|
||||
|
||||
#### Scenario: 成功删除配置
|
||||
- **WHEN** 管理员点击某未生效配置的"删除"按钮
|
||||
- **THEN** 系统显示二次确认弹窗
|
||||
- **AND** 管理员确认后,该配置从列表中移除
|
||||
|
||||
#### Scenario: 无法删除生效配置
|
||||
- **WHEN** 某配置是当前生效配置
|
||||
- **THEN** 其删除按钮被禁用
|
||||
- **AND** 鼠标悬停时显示提示"生效中的配置不可删除"
|
||||
|
||||
### Requirement: 新增配置
|
||||
系统 SHALL 提供独立页面供管理员新增模型配置,支持选择配置类型并填写对应字段。
|
||||
|
||||
#### Scenario: 成功新增基础类型配置
|
||||
- **WHEN** 管理员点击"新增配置"按钮进入新增页面
|
||||
- **AND** 选择配置类型为"OpenAI 兼容接口"
|
||||
- **AND** 填写配置名称、API 地址、API 密钥、模型名称
|
||||
- **AND** 填写常用参数(Temperature、Max Tokens、Top P)
|
||||
- **AND** 点击保存
|
||||
- **THEN** 系统创建新配置并返回列表页
|
||||
- **AND** 新配置默认状态为"未生效"
|
||||
|
||||
#### Scenario: 成功新增智算平台配置
|
||||
- **WHEN** 管理员在新增页面选择配置类型为"智算管理平台"
|
||||
- **THEN** 表单动态切换为智算平台字段(API 地址、App ID、App Secret)
|
||||
- **AND** 管理员填写完成后保存
|
||||
- **THEN** 系统创建新配置并返回列表页
|
||||
|
||||
#### Scenario: 新增时切换类型清空字段
|
||||
- **WHEN** 管理员在新增页面已填写某类型的部分字段
|
||||
- **AND** 切换配置类型为另一种类型
|
||||
- **THEN** 系统清空已填写的类型特定字段
|
||||
- **AND** 保留通用字段(配置名称)
|
||||
|
||||
#### Scenario: 新增配置表单验证失败
|
||||
- **WHEN** 管理员提交表单时未填写必填项
|
||||
- **THEN** 系统高亮显示未填写的必填字段
|
||||
- **AND** 阻止表单提交
|
||||
|
||||
### Requirement: 编辑配置
|
||||
系统 SHALL 提供独立页面供管理员编辑现有配置,仅允许编辑非生效配置。
|
||||
|
||||
#### Scenario: 成功编辑配置
|
||||
- **WHEN** 管理员点击某未生效配置的"编辑"按钮
|
||||
- **THEN** 系统进入编辑页面,预填充该配置的当前值
|
||||
- **AND** 配置类型字段显示为只读
|
||||
- **AND** 管理员修改其他字段后保存
|
||||
- **THEN** 系统更新配置并返回列表页
|
||||
|
||||
#### Scenario: 无法编辑生效配置
|
||||
- **WHEN** 某配置是当前生效配置
|
||||
- **THEN** 其编辑按钮被禁用
|
||||
- **AND** 鼠标悬停时显示提示"生效中的配置不可编辑"
|
||||
|
||||
#### Scenario: 编辑时类型字段只读
|
||||
- **WHEN** 管理员在编辑配置页面
|
||||
- **THEN** 配置类型选择器被禁用
|
||||
- **AND** 显示提示"配置类型不可修改"
|
||||
|
||||
### Requirement: 配置类型注册表
|
||||
系统 SHALL 使用可扩展的注册表机制定义配置类型,每种类型包含独立的字段定义和验证规则。
|
||||
|
||||
#### Scenario: 扩展新配置类型
|
||||
- **WHEN** 需要添加新的配置类型(如"阿里云百炼")
|
||||
- **THEN** 开发者只需在注册表中添加类型定义
|
||||
- **AND** 无需修改配置表单页面的核心逻辑
|
||||
- **AND** 新类型自动在类型选择器和表单中生效
|
||||
|
||||
### Requirement: 密钥字段掩码显示
|
||||
系统 SHALL 对所有敏感字段(API 密钥、App Secret 等)使用掩码显示。
|
||||
|
||||
#### Scenario: 列表页密钥掩码
|
||||
- **WHEN** 配置列表展示配置信息
|
||||
- **THEN** API 密钥、App Secret 字段显示为掩码格式(如"sk-****xxxx")
|
||||
|
||||
#### Scenario: 表单页密钥掩码
|
||||
- **WHEN** 编辑配置时表单显示已保存的密钥
|
||||
- **THEN** 密钥输入框显示为掩码格式
|
||||
- **AND** 管理员可点击显示/隐藏按钮切换明文/密文
|
||||
Reference in New Issue
Block a user