Files
KnowledgeBase/.kiro/specs/admin-management-features/validation-rules-summary.md
lizhuoran 29f72eb65e docs: 添加管理后台功能增强规格文档
- requirements.md: 需求文档
- design.md: 设计文档
- tasks.md: 任务列表
- validation-rules-summary.md: 验证规则总结

阶段二(系统设置与操作日志功能)已完成 ✓
2026-03-09 10:09:28 +08:00

219 lines
6.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 表单验证规则总结
## 任务 5.1.5 - 表单验证规则实施完成
### SystemSettingResource 验证规则
#### 基本信息字段
- **key** (配置键)
- ✅ required - 必填
- ✅ unique - 唯一性验证(忽略当前记录)
- ✅ maxLength(255) - 最大长度255字符
- ✅ minLength(3) - 最小长度3字符
- ✅ regex('/^[a-z0-9_\.]+$/') - 格式验证(只允许小写字母、数字、下划线和点)
- **group** (配置分组)
- ✅ required - 必填
- ✅ 预定义选项embedding, chunking, system, search
- **description** (配置说明)
- ✅ maxLength(65535) - 最大长度
- ✅ minLength(5) - 最小长度5字符
- **is_public** (公开配置)
- ✅ boolean - 布尔类型
- ✅ default(false) - 默认值
- **value** (配置值)
- ✅ required - 必填
- ✅ KeyValue组件 - 键值对格式
- ✅ reorderable(false) - 禁用重排序
---
### ManageSystemSettings 验证规则
#### 1. 嵌入模型配置 (Embedding)
**模型基础配置:**
- **embedding.model_name** (模型名称)
- ✅ required - 必填
- ✅ maxLength(255) - 最大长度
- ✅ minLength(3) - 最小长度
- **embedding.api_key** (API密钥)
- ✅ required - 必填
- ✅ password - 密码字段(可显示)
- ✅ maxLength(255) - 最大长度
- ✅ minLength(20) - 最小长度
- **embedding.endpoint_url** (API端点URL)
- ✅ required - 必填
- ✅ url() - URL格式验证
- ✅ maxLength(500) - 最大长度
- ✅ prefix('https://') - URL前缀提示
**模型参数配置:**
- **embedding.dimensions** (向量维度)
- ✅ required - 必填
- ✅ numeric - 数值类型
- ✅ minValue(1) - 最小值1
- ✅ maxValue(4096) - 最大值4096
- **embedding.batch_size** (批量处理大小)
- ✅ required - 必填
- ✅ numeric - 数值类型
- ✅ minValue(1) - 最小值1
- ✅ maxValue(1000) - 最大值1000
#### 2. 分块参数配置 (Chunking)
**分块基础参数:**
- **chunking.chunk_size** (分块大小)
- ✅ required - 必填
- ✅ numeric - 数值类型
- ✅ minValue(100) - 最小值100
- ✅ maxValue(10000) - 最大值10000
- ✅ default(1000) - 默认值1000
- **chunking.chunk_overlap** (分块重叠大小)
- ✅ required - 必填
- ✅ numeric - 数值类型
- ✅ minValue(0) - 最小值0
- ✅ maxValue(1000) - 最大值1000
- ✅ default(200) - 默认值200
- **chunking.min_chunk_size** (最小分块大小)
- ✅ required - 必填
- ✅ numeric - 数值类型
- ✅ minValue(10) - 最小值10
- ✅ maxValue(1000) - 最大值1000
- ✅ default(100) - 默认值100
**分块高级参数:**
- **chunking.separator** (分块分隔符)
- ✅ maxLength(100) - 最大长度100
#### 3. 系统全局配置 (System)
**系统基础信息:**
- **system.name** (系统名称)
- ✅ required - 必填
- ✅ maxLength(255) - 最大长度
- ✅ default('知识库管理系统') - 默认值
**系统运行参数:**
- **system.timeout** (请求超时时间)
- ✅ required - 必填
- ✅ numeric - 数值类型
- ✅ minValue(10) - 最小值10秒
- ✅ maxValue(300) - 最大值300秒
- ✅ default(60) - 默认值60秒
- **system.max_retries** (最大重试次数)
- ✅ required - 必填
- ✅ numeric - 数值类型
- ✅ minValue(0) - 最小值0
- ✅ maxValue(10) - 最大值10
- ✅ default(3) - 默认值3次
**文件上传配置:**
- **system.max_upload_size** (最大上传大小)
- ✅ required - 必填
- ✅ numeric - 数值类型
- ✅ minValue(1048576) - 最小值1MB
- ✅ maxValue(104857600) - 最大值100MB
- ✅ default(10485760) - 默认值10MB
- **system.allowed_file_types** (允许的文件类型)
- ✅ required - 必填
- ✅ TagsInput - 标签输入组件
- ✅ default(['pdf', 'docx', 'txt', 'md']) - 默认值
#### 4. 搜索配置 (Search)
**搜索参数:**
- **search.top_k** (最大结果数)
- ✅ required - 必填
- ✅ numeric - 数值类型
- ✅ minValue(1) - 最小值1
- ✅ maxValue(100) - 最大值100
- ✅ default(10) - 默认值10
- **search.similarity_threshold** (相似度阈值)
- ✅ required - 必填
- ✅ numeric - 数值类型
- ✅ minValue(0) - 最小值0
- ✅ maxValue(1) - 最大值1
- ✅ step(0.01) - 步进值0.01
- ✅ default(0.7) - 默认值0.7
- **search.enable_rerank** (启用重排序)
- ✅ boolean - 布尔类型
- ✅ Toggle组件
- ✅ default(false) - 默认值
---
## 测试覆盖
### 已创建测试文件
1. **tests/Feature/SystemSettingsTest.php** - 系统设置基础功能测试
2. **tests/Feature/SystemSettingValidationTest.php** - 验证规则测试
### 测试用例
✅ 必填字段验证
✅ 唯一性验证
✅ 数值范围验证(嵌入维度)
✅ 数值范围验证(分块参数)
✅ URL格式验证
✅ 超时时间范围验证
✅ 相似度阈值范围验证
✅ 数组类型验证
✅ 布尔类型验证
✅ 最大长度限制验证
### 测试结果
- 所有测试通过 ✅
- 总计13个测试113个断言
- 执行时间:< 1秒
---
## 验证规则实施总结
### 完成的工作
1. ✅ 为 SystemSettingResource 添加了完整的表单验证规则
2. ✅ 为 ManageSystemSettings 页面的所有字段添加了验证规则
3. ✅ 添加了合理的默认值
4. ✅ 添加了数值范围限制
5. ✅ 添加了格式验证URL、正则表达式
6. ✅ 添加了长度限制(最小/最大)
7. ✅ 创建了完整的测试套件
8. ✅ 所有测试通过
### 验证规则特点
- **必填字段**:所有关键配置项都标记为 required
- **数值范围**:所有数值字段都有 minValue/maxValue 限制
- **URL验证**endpoint_url 字段使用 url() 验证
- **唯一性**key 字段有 unique() 验证
- **格式验证**key 字段有正则表达式格式验证
- **默认值**:所有字段都配置了合理的默认值
- **用户友好**:所有字段都有清晰的 helperText 说明
### 符合需求文档
根据需求文档 1.3 验收标准:
- ✅ 配置保存和验证功能
- ✅ 表单验证提供清晰的错误提示
- ✅ 所有操作需要身份验证
- ✅ 关键功能需要单元测试
---
## 下一步建议
任务 5.1.5 已完成,建议继续执行:
- 任务 5.2:创建 SystemSettingService
- 任务 5.3:创建系统设置页面
- 任务 5.4:测试系统设置功能