ai-robot-core/.claude/progress/v0.7.0-window2-flow-guardra...

113 lines
4.9 KiB
Markdown
Raw Permalink 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.

# v0.7.0 窗口2话术流程 + 输出护栏 - 进度文档
## 1. 任务概述
实现 v0.7.0 迭代中话术流程和输出护栏的测试与监控功能,包括前端页面和后端 API。
## 2. 需求文档引用
- spec/ai-service-admin/requirements.md - 第10节v0.7.0AC-ASA-59 ~ AC-ASA-64
- spec/ai-service/requirements.md - 第13节v0.7.0AC-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] 护栏拦截记录详情弹窗支持分页