# 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] 护栏拦截记录详情弹窗支持分页