318 lines
10 KiB
Markdown
318 lines
10 KiB
Markdown
# 元数据职责分层优化 - 任务清单
|
||
|
||
## 任务概览
|
||
|
||
| 阶段 | 任务数 | 状态 |
|
||
|------|-------|------|
|
||
| Phase 1: 数据模型扩展 | 4 | ✅ 已完成 |
|
||
| Phase 2: 后端服务实现 | 6 | ✅ 已完成 |
|
||
| Phase 3: 工具协同改造 | 4 | ✅ 已完成 |
|
||
| Phase 4: 前端页面改造 | 3 | ✅ 已完成 |
|
||
| Phase 5: 测试与验收 | 3 | ⏳ 待开始 |
|
||
|
||
---
|
||
|
||
## Phase 1: 数据模型扩展
|
||
|
||
### Task 1.1: 扩展 MetadataFieldDefinition 模型
|
||
- [x] **状态**: ✅ 已完成
|
||
- **AC**: AC-MRS-01, AC-MRS-02, AC-MRS-03
|
||
- **描述**: 在现有 `MetadataFieldDefinition` 模型中新增 `field_roles` 字段
|
||
- **产出**:
|
||
- 修改 `ai-service/app/models/entities.py` 中的 `MetadataFieldDefinition` 类
|
||
- 新增 `FieldRole` 枚举类
|
||
- **验收标准**:
|
||
- `field_roles` 字段类型为 `list[str]`
|
||
- 支持存储多个角色
|
||
- 允许空列表
|
||
|
||
### Task 1.2: 创建 SlotDefinition 模型
|
||
- [x] **状态**: ✅ 已完成
|
||
- **AC**: AC-MRS-07, AC-MRS-08
|
||
- **描述**: 创建独立的槽位定义模型
|
||
- **产出**:
|
||
- 在 `ai-service/app/models/entities.py` 中新增 `SlotDefinition` 类
|
||
- 新增 `ExtractStrategy` 枚举类
|
||
- **验收标准**:
|
||
- 包含所有必需字段:slot_key, type, required, extract_strategy, validation_rule, ask_back_prompt
|
||
- 支持 linked_field_id 关联元数据字段
|
||
|
||
### Task 1.3: 编写数据库迁移脚本
|
||
- [x] **状态**: ✅ 已完成
|
||
- **AC**: AC-MRS-01, AC-MRS-07
|
||
- **描述**: 编写 PostgreSQL 迁移脚本
|
||
- **产出**:
|
||
- 创建 `ai-service/scripts/migrations/007_add_field_roles_and_slot_definitions.sql`
|
||
- **验收标准**:
|
||
- 为 `metadata_field_definitions` 表新增 `field_roles` 列
|
||
- 创建 `slot_definitions` 表
|
||
- 创建必要的索引
|
||
|
||
### Task 1.4: 更新 Pydantic Schema
|
||
- [x] **状态**: ✅ 已完成
|
||
- **AC**: AC-MRS-01, AC-MRS-07
|
||
- **描述**: 更新请求/响应 Schema
|
||
- **产出**:
|
||
- 创建 `ai-service/app/schemas/metadata.py`
|
||
- 新增 `SlotDefinitionCreate/Update/Response` Schema
|
||
- **验收标准**:
|
||
- Schema 与 OpenAPI 契约一致
|
||
- 包含完整的字段校验规则
|
||
|
||
---
|
||
|
||
## Phase 2: 后端服务实现
|
||
|
||
### Task 2.1: 实现 RoleBasedFieldProvider 服务
|
||
- [x] **状态**: ✅ 已完成
|
||
- **AC**: AC-MRS-04, AC-MRS-05, AC-MRS-10
|
||
- **描述**: 实现按角色查询字段的核心服务
|
||
- **产出**:
|
||
- 创建 `ai-service/app/services/mid/role_based_field_provider.py`
|
||
- **验收标准**:
|
||
- `get_fields_by_role()` 方法正确查询指定角色的字段
|
||
- 无效角色返回 400 错误
|
||
- 支持缓存机制
|
||
|
||
### Task 2.2: 扩展 MetadataFieldDefinitionService
|
||
- [x] **状态**: ✅ 已完成
|
||
- **AC**: AC-MRS-01, AC-MRS-02, AC-MRS-03, AC-MRS-06
|
||
- **描述**: 扩展现有服务支持 field_roles
|
||
- **产出**:
|
||
- 修改 `ai-service/app/services/metadata_field_definition_service.py`
|
||
- **验收标准**:
|
||
- 创建/更新时支持 field_roles 字段
|
||
- 支持按 role 过滤查询
|
||
- field_roles 校验正确
|
||
|
||
### Task 2.3: 实现 SlotDefinitionService
|
||
- [x] **状态**: ✅ 已完成
|
||
- **AC**: AC-MRS-07, AC-MRS-08
|
||
- **描述**: 实现槽位定义管理服务
|
||
- **产出**:
|
||
- 创建 `ai-service/app/services/slot_definition_service.py`
|
||
- **验收标准**:
|
||
- CRUD 操作正确
|
||
- 支持关联元数据字段
|
||
- slot_key 租户内唯一
|
||
|
||
### Task 2.4: 扩展 MetadataFieldDefinition API
|
||
- [x] **状态**: ✅ 已完成
|
||
- **AC**: AC-MRS-01, AC-MRS-04, AC-MRS-05, AC-MRS-06, AC-MRS-16
|
||
- **描述**: 扩展现有 API 端点
|
||
- **产出**:
|
||
- 修改 `ai-service/app/api/admin/metadata_field_definition.py`
|
||
- 新增 `/by-role` 端点
|
||
- **验收标准**:
|
||
- 所有端点符合 OpenAPI 契约
|
||
- 包含 AC 注释
|
||
|
||
### Task 2.5: 实现 SlotDefinition API
|
||
- [x] **状态**: ✅ 已完成
|
||
- **AC**: AC-MRS-07, AC-MRS-08, AC-MRS-16
|
||
- **描述**: 实现槽位定义管理 API
|
||
- **产出**:
|
||
- 创建 `ai-service/app/api/admin/slot_definition.py`
|
||
- **验收标准**:
|
||
- CRUD 端点符合 OpenAPI 契约
|
||
- 包含 AC 注释
|
||
|
||
### Task 2.6: 实现运行时槽位 API
|
||
- [x] **状态**: ✅ 已完成
|
||
- **AC**: AC-MRS-09, AC-MRS-10
|
||
- **描述**: 实现运行时槽位查询 API
|
||
- **产出**:
|
||
- 创建 `ai-service/app/api/mid/slots.py`
|
||
- **验收标准**:
|
||
- `/mid/slots/by-role` 端点正确返回槽位定义
|
||
- `/mid/slots/{slot_key}` 端点正确返回运行时值
|
||
|
||
---
|
||
|
||
## Phase 3: 工具协同改造
|
||
|
||
### Task 3.1: 改造 kb_search_dynamic 工具
|
||
- [x] **状态**: ✅ 已完成
|
||
- **AC**: AC-MRS-11
|
||
- **描述**: 改造 KB 动态检索工具,只消费 resource_filter 角色
|
||
- **产出**:
|
||
- 修改 `ai-service/app/services/mid/kb_search_dynamic_tool.py`
|
||
- 修改 `ai-service/app/services/mid/metadata_filter_builder.py`
|
||
- **验收标准**:
|
||
- 只使用 field_roles 包含 resource_filter 的字段
|
||
- 不影响现有功能
|
||
|
||
### Task 3.2: 改造 memory_recall 工具
|
||
- [x] **状态**: ✅ 已完成
|
||
- **AC**: AC-MRS-12
|
||
- **描述**: 改造记忆召回工具,只消费 slot 角色
|
||
- **产出**:
|
||
- 修改 `ai-service/app/services/mid/memory_recall_tool.py`
|
||
- **验收标准**:
|
||
- 只使用 field_roles 包含 slot 的字段
|
||
- 槽位合并逻辑正确
|
||
|
||
### Task 3.3: 改造 intent_hint 和 high_risk_check 工具
|
||
- [x] **状态**: ✅ 已完成
|
||
- **AC**: AC-MRS-13
|
||
- **描述**: 改造意图提示和高风险检测工具,只消费 routing_signal 角色
|
||
- **产出**:
|
||
- 修改 `ai-service/app/services/mid/intent_hint_tool.py`
|
||
- 修改 `ai-service/app/services/mid/high_risk_check_tool.py`
|
||
- **验收标准**:
|
||
- 只使用 field_roles 包含 routing_signal 的字段
|
||
- 路由判断逻辑正确
|
||
|
||
### Task 3.4: 改造 template_engine
|
||
- [x] **状态**: ✅ 已完成
|
||
- **AC**: AC-MRS-14
|
||
- **描述**: 改造模板引擎,只消费 prompt_var 角色
|
||
- **产出**:
|
||
- 修改 `ai-service/app/services/flow/template_engine.py`
|
||
- **验收标准**:
|
||
- 只使用 field_roles 包含 prompt_var 的字段
|
||
- 模板渲染正确
|
||
|
||
---
|
||
|
||
## Phase 4: 前端页面改造
|
||
|
||
### Task 4.1: 元数据字段配置页面增加 field_roles
|
||
- [x] **状态**: ✅ 已完成
|
||
- **AC**: AC-MRS-15
|
||
- **描述**: 在元数据字段编辑表单中增加角色选择组件
|
||
- **产出**:
|
||
- 创建 `ai-service-admin/src/components/metadata/FieldRolesSelector.vue`
|
||
- 修改 `ai-service-admin/src/views/admin/metadata-schema/index.vue`
|
||
- **验收标准**:
|
||
- 支持多选角色
|
||
- 显示角色说明
|
||
- 保存时正确提交
|
||
|
||
### Task 4.2: 增加按角色过滤视图
|
||
- [x] **状态**: ✅ 已完成
|
||
- **AC**: AC-MRS-06
|
||
- **描述**: 在元数据字段列表页面增加角色过滤功能
|
||
- **产出**:
|
||
- 修改 `ai-service-admin/src/views/admin/metadata-schema/index.vue`
|
||
- **验收标准**:
|
||
- 下拉框选择角色
|
||
- 过滤结果正确
|
||
|
||
### Task 4.3: 槽位定义管理页面
|
||
- [x] **状态**: ✅ 已完成
|
||
- **AC**: AC-MRS-07, AC-MRS-08, AC-MRS-16
|
||
- **描述**: 创建槽位定义管理页面
|
||
- **产出**:
|
||
- 创建 `ai-service-admin/src/views/admin/slot-definition/index.vue`
|
||
- 创建 `ai-service-admin/src/api/slot-definition.ts`
|
||
- 创建 `ai-service-admin/src/types/slot-definition.ts`
|
||
- 更新 `ai-service-admin/src/router/index.ts`
|
||
- 更新 `ai-service-admin/src/App.vue` 导航菜单
|
||
- **验收标准**:
|
||
- 支持 CRUD 操作
|
||
- 支持关联元数据字段
|
||
|
||
---
|
||
|
||
## Phase 5: 测试与验收
|
||
|
||
### Task 5.1: 单元测试
|
||
- [x] **状态**: ✅ 已完成
|
||
- **AC**: AC-MRS-01~16
|
||
- **描述**: 编写单元测试
|
||
- **产出**:
|
||
- `ai-service/tests/test_role_based_field_provider.py`
|
||
- `ai-service/tests/test_slot_definition_service.py`
|
||
- `ai-service/tests/test_field_roles.py`
|
||
- **验收标准**:
|
||
- 覆盖核心逻辑
|
||
- 测试通过
|
||
|
||
### Task 5.2: 集成测试
|
||
- [ ] **状态**: ⏳ 待开始
|
||
- **AC**: AC-MRS-01~16
|
||
- **描述**: 编写 API 集成测试
|
||
- **产出**:
|
||
- `ai-service/tests/api/test_metadata_field_roles.py`
|
||
- `ai-service/tests/api/test_slot_definition.py`
|
||
- **验收标准**:
|
||
- 覆盖所有 API 端点
|
||
- 测试通过
|
||
|
||
### Task 5.3: 契约测试
|
||
- [ ] **状态**: ⏳ 待开始
|
||
- **AC**: AC-MRS-01~16
|
||
- **描述**: 验证 API 符合 OpenAPI 契约
|
||
- **产出**:
|
||
- 运行契约测试
|
||
- 修复不一致
|
||
- **验收标准**:
|
||
- Provider 契约达到 L2 级别
|
||
- 所有响应符合 Schema
|
||
|
||
---
|
||
|
||
## 任务依赖关系
|
||
|
||
```
|
||
Phase 1 (数据模型)
|
||
│
|
||
├── Task 1.1 (扩展 MetadataFieldDefinition)
|
||
├── Task 1.2 (创建 SlotDefinition)
|
||
├── Task 1.3 (迁移脚本) ← 依赖 1.1, 1.2
|
||
└── Task 1.4 (更新 Schema) ← 依赖 1.1, 1.2
|
||
│
|
||
▼
|
||
Phase 2 (后端服务)
|
||
│
|
||
├── Task 2.1 (RoleBasedFieldProvider) ← 依赖 1.4
|
||
├── Task 2.2 (扩展 MetadataFieldService) ← 依赖 1.4
|
||
├── Task 2.3 (SlotDefinitionService) ← 依赖 1.4
|
||
├── Task 2.4 (扩展 MetadataField API) ← 依赖 2.2
|
||
├── Task 2.5 (SlotDefinition API) ← 依赖 2.3
|
||
└── Task 2.6 (运行时槽位 API) ← 依赖 2.1, 2.3
|
||
│
|
||
▼
|
||
Phase 3 (工具改造)
|
||
│
|
||
├── Task 3.1 (kb_search_dynamic) ← 依赖 2.1
|
||
├── Task 3.2 (memory_recall) ← 依赖 2.1
|
||
├── Task 3.3 (intent_hint/high_risk_check) ← 依赖 2.1
|
||
└── Task 3.4 (template_engine) ← 依赖 2.1
|
||
│
|
||
▼
|
||
Phase 4 (前端改造)
|
||
│
|
||
├── Task 4.1 (field_roles 组件) ← 依赖 2.4
|
||
├── Task 4.2 (角色过滤视图) ← 依赖 2.4
|
||
└── Task 4.3 (槽位定义页面) ← 依赖 2.5
|
||
│
|
||
▼
|
||
Phase 5 (测试验收)
|
||
│
|
||
├── Task 5.1 (单元测试) ← 依赖 Phase 2
|
||
├── Task 5.2 (集成测试) ← 依赖 Phase 2, 3, 4
|
||
└── Task 5.3 (契约测试) ← 依赖 5.2
|
||
```
|
||
|
||
---
|
||
|
||
## 执行顺序建议
|
||
|
||
1. **Phase 1** → **Phase 2** → **Phase 3** → **Phase 4** → **Phase 5**
|
||
2. Phase 3 和 Phase 4 可并行执行
|
||
3. 每个 Task 完成后需更新状态并提交
|
||
|
||
---
|
||
|
||
## 变更记录
|
||
|
||
| 日期 | 变更内容 | 变更人 |
|
||
|------|---------|-------|
|
||
| 2026-03-05 | 初始创建 | AI Agent |
|
||
| 2026-03-05 | 完成 Phase 3 工具协同改造 (Task 3.1-3.4) [AC-MRS-11~14] | AI Agent |
|
||
| 2026-03-05 | 完成 Phase 4 前端页面改造 (Task 4.1-4.3) [AC-MRS-06,07,08,15,16] | AI Agent |
|
||
| 2026-03-05 | 完成 Phase 2 后端服务实现 (Task 2.3-2.6) [AC-MRS-07~10,16] | AI Agent |
|
||
| 2026-03-05 | 完成 Task 5.1 单元测试 [AC-MRS-01~16] | AI Agent |
|