113 lines
4.9 KiB
Markdown
113 lines
4.9 KiB
Markdown
|
|
# v0.7.0 窗口2:话术流程 + 输出护栏 - 进度文档
|
|||
|
|
|
|||
|
|
## 1. 任务概述
|
|||
|
|
实现 v0.7.0 迭代中话术流程和输出护栏的测试与监控功能,包括前端页面和后端 API。
|
|||
|
|
|
|||
|
|
## 2. 需求文档引用
|
|||
|
|
- spec/ai-service-admin/requirements.md - 第10节(v0.7.0),AC-ASA-59 ~ AC-ASA-64
|
|||
|
|
- spec/ai-service/requirements.md - 第13节(v0.7.0),AC-AISVC-101 ~ AC-AISVC-107
|
|||
|
|
|
|||
|
|
## 3. 总体进度
|
|||
|
|
- [x] 后端任务(4个)
|
|||
|
|
- [x] T16.22-T16.24: 话术流程模拟测试 API
|
|||
|
|
- [x] T16.25-T16.27: 话术流程监控 API
|
|||
|
|
- [x] T16.28-T16.29: 输出护栏测试 API
|
|||
|
|
- [x] T16.30-T16.32: 输出护栏监控 API
|
|||
|
|
- [x] 前端任务(5个)
|
|||
|
|
- [x] P13-14: 流程模拟对话框
|
|||
|
|
- [x] P13-15-P13-16: 话术流程监控页面
|
|||
|
|
- [x] P13-17: 护栏测试对话框
|
|||
|
|
- [x] P13-18-P13-19: 输出护栏监控页面
|
|||
|
|
- [x] P13-01: API 服务层扩展
|
|||
|
|
|
|||
|
|
## 4. Phase 详细进度
|
|||
|
|
|
|||
|
|
### Phase 1: 话术流程模拟测试 API (T16.22-T16.24)
|
|||
|
|
**状态**: 已完成
|
|||
|
|
**文件修改记录**:
|
|||
|
|
- 新建: ai-service/app/services/flow/tester.py - ScriptFlowTester 类
|
|||
|
|
- 修改: ai-service/app/api/admin/script_flows.py - 添加 POST /{flowId}/simulate 端点
|
|||
|
|
|
|||
|
|
### Phase 2: 话术流程监控 API (T16.25-T16.27)
|
|||
|
|
**状态**: 已完成
|
|||
|
|
**文件修改记录**:
|
|||
|
|
- 新建: ai-service/app/services/monitoring/flow_monitor.py - FlowMonitor 类
|
|||
|
|
- 修改: ai-service/app/api/admin/monitoring.py - 添加 GET /script-flows 和 GET /script-flows/{flowId}/executions 端点
|
|||
|
|
|
|||
|
|
### Phase 3: 输出护栏测试 API (T16.28-T16.29)
|
|||
|
|
**状态**: 已完成
|
|||
|
|
**文件修改记录**:
|
|||
|
|
- 新建: ai-service/app/services/guardrail/tester.py - GuardrailTester 类
|
|||
|
|
- 修改: ai-service/app/api/admin/guardrails.py - 添加 POST /test 端点
|
|||
|
|
|
|||
|
|
### Phase 4: 输出护栏监控 API (T16.30-T16.32)
|
|||
|
|
**状态**: 已完成
|
|||
|
|
**文件修改记录**:
|
|||
|
|
- 新建: ai-service/app/services/monitoring/guardrail_monitor.py - GuardrailMonitor 类
|
|||
|
|
- 修改: ai-service/app/api/admin/monitoring.py - 添加 GET /guardrails 和 GET /guardrails/{wordId}/blocks 端点
|
|||
|
|
- 修改: ai-service/app/services/monitoring/__init__.py - 导出新模块
|
|||
|
|
|
|||
|
|
### Phase 5: 前端实现 (P13-14 ~ P13-19, P13-01)
|
|||
|
|
**状态**: 已完成
|
|||
|
|
**文件修改记录**:
|
|||
|
|
- 新建: ai-service-admin/src/views/admin/script-flow/components/SimulateDialog.vue
|
|||
|
|
- 新建: ai-service-admin/src/views/admin/monitoring/ScriptFlows.vue
|
|||
|
|
- 新建: ai-service-admin/src/views/admin/guardrail/components/TestDialog.vue
|
|||
|
|
- 新建: ai-service-admin/src/views/admin/monitoring/Guardrails.vue
|
|||
|
|
- 扩展: ai-service-admin/src/api/monitoring.ts - 添加流程和护栏监控 API
|
|||
|
|
- 扩展: ai-service-admin/src/api/script-flow.ts - 添加流程模拟 API
|
|||
|
|
- 扩展: ai-service-admin/src/api/guardrail.ts - 添加护栏测试 API
|
|||
|
|
- 修改: ai-service-admin/src/views/admin/script-flow/index.vue - 添加模拟按钮
|
|||
|
|
- 修改: ai-service-admin/src/views/admin/guardrail/components/ForbiddenWordsTab.vue - 添加测试按钮
|
|||
|
|
- 修改: ai-service-admin/src/router/index.ts - 添加监控页面路由
|
|||
|
|
|
|||
|
|
## 5. 技术上下文
|
|||
|
|
|
|||
|
|
### 项目结构
|
|||
|
|
- **前端**: `ai-service-admin/` - Vue 3 + Element Plus + TypeScript
|
|||
|
|
- **后端**: `ai-service/` - Python FastAPI + SQLModel + PostgreSQL
|
|||
|
|
|
|||
|
|
### 核心约定
|
|||
|
|
- 所有 API 必须支持多租户隔离(`tenant_id` 参数)
|
|||
|
|
- 流程模拟不应修改数据库状态(只读操作)
|
|||
|
|
- 护栏测试应复用现有的 `OutputFilter` 逻辑
|
|||
|
|
- 监控数据异步更新,不阻塞主流程
|
|||
|
|
|
|||
|
|
### 关键代码示例
|
|||
|
|
- 流程引擎: `app/services/flow/engine.py` - `_match_next_step()` 方法
|
|||
|
|
- 护栏过滤: `app/services/guardrail/output_filter.py` - `filter()` 方法
|
|||
|
|
- 禁词服务: `app/services/guardrail/word_service.py` - `get_enabled_words_for_filtering()` 方法
|
|||
|
|
|
|||
|
|
### 模块依赖
|
|||
|
|
- FlowEngine: 流程状态机引擎
|
|||
|
|
- OutputFilter: 输出护栏过滤器
|
|||
|
|
- ForbiddenWordService: 禁词管理服务
|
|||
|
|
- ScriptFlowService: 话术流程管理服务
|
|||
|
|
|
|||
|
|
## 6. 会话历史
|
|||
|
|
### 会话 1 (2026-02-27)
|
|||
|
|
- 完成:所有后端 API 和前端页面实现
|
|||
|
|
- 问题:无
|
|||
|
|
- 解决方案:无
|
|||
|
|
|
|||
|
|
## 7. 下一步行动
|
|||
|
|
**任务已完成**
|
|||
|
|
|
|||
|
|
## 8. 待解决问题
|
|||
|
|
暂无
|
|||
|
|
|
|||
|
|
## 9. 最终验收标准
|
|||
|
|
- [x] [AC-AISVC-101] 流程模拟测试接口返回完整的模拟执行结果
|
|||
|
|
- [x] [AC-AISVC-102] 流程模拟支持覆盖率分析和问题检测
|
|||
|
|
- [x] [AC-AISVC-103] 流程监控统计接口返回激活次数、完成率等统计
|
|||
|
|
- [x] [AC-AISVC-104] 流程执行记录接口支持分页查询
|
|||
|
|
- [x] [AC-AISVC-105] 护栏测试接口返回详细的检测结果
|
|||
|
|
- [x] [AC-AISVC-106] 护栏监控统计接口返回拦截次数等统计
|
|||
|
|
- [x] [AC-AISVC-107] 禁词拦截记录接口支持分页查询
|
|||
|
|
- [x] [AC-ASA-59] 流程模拟对话框支持步骤可视化
|
|||
|
|
- [x] [AC-ASA-60] 话术流程监控页面展示流程激活统计
|
|||
|
|
- [x] [AC-ASA-61] 流程执行记录详情弹窗支持分页
|
|||
|
|
- [x] [AC-ASA-62] 护栏测试对话框展示禁词检测结果
|
|||
|
|
- [x] [AC-ASA-63] 输出护栏监控页面展示护栏拦截统计
|
|||
|
|
- [x] [AC-ASA-64] 护栏拦截记录详情弹窗支持分页
|