ai-robot-core/.claude/progress/v0.7.0-window3-dashboard-tr...

243 lines
9.8 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 窗口3Dashboard + 流程测试 + 对话追踪 - 进度文档
## 1. 任务概述
实现 v0.7.0 迭代中的**核心监控基础设施**,包括 Dashboard 统计增强、完整流程测试台12步执行链路、对话追踪与导出功能。这是整个监控系统的核心支撑。
## 2. 需求文档引用
- spec/ai-service-admin/requirements.md - 第10节v0.7.0AC-ASA-45 ~ AC-ASA-52, AC-ASA-65 ~ AC-ASA-68
- spec/ai-service/requirements.md - 第13节v0.7.0AC-AISVC-91 ~ AC-AISVC-95, AC-AISVC-108 ~ AC-AISVC-110
## 3. 总体进度
- [x] 后端任务6个
- [x] T16.1-T16.5: 监控数据模型与基础设施
- [x] T16.6-T16.8: Dashboard 统计增强
- [x] T16.9-T16.12: Orchestrator 监控增强
- [x] T16.33-T16.36: 对话追踪服务
- [x] T16.37-T16.39: 对话导出服务
- [x] 前端任务4个
- [x] P13-02-P13-04: Dashboard 统计卡片增强
- [x] P13-05-P13-08: 完整流程测试台
- [x] P13-20-P13-23: 对话追踪页面
- [x] P13-24-P13-25: 监控导航菜单
## 4. Phase 详细进度
### Phase 1: 监控数据模型与基础设施 (T16.1-T16.5)
**状态**: ✅ 已完成
**文件修改记录**:
- ✅ 修改: ai-service/app/models/entities.py
- 扩展 ChatMessage 实体,新增监控字段: prompt_template_id, intent_rule_id, flow_instance_id, guardrail_triggered, guardrail_words
- 新增 FlowTestRecord 实体(流程测试记录)
- 新增 FlowTestStepResult 模型
- 新增 ExportTask 实体(导出任务)
- 新增 ExportTaskStatus 枚举
- 新增 ConversationDetail 模型
### Phase 2: Redis 统计缓存层 (T16.2)
**状态**: ✅ 已完成
**文件修改记录**:
- ✅ 创建: ai-service/app/services/monitoring/cache.py
- MonitoringCache 类Redis 缓存层
- incr_counter: 原子计数器
- get/set_dashboard_stats: Dashboard 缓存
- add_to_leaderboard/get_leaderboard: 排行榜
- ✅ 修改: ai-service/app/core/config.py
- 新增 redis_url, redis_enabled, dashboard_cache_ttl, stats_counter_ttl 配置
- ✅ 修改: ai-service/pyproject.toml
- 新增 redis>=5.0.0 依赖
### Phase 3: Dashboard 统计增强 (T16.6-T16.8)
**状态**: ✅ 已完成
**文件修改记录**:
- ✅ 创建: ai-service/app/services/monitoring/dashboard_service.py
- DashboardService 类
- get_enhanced_stats: 获取增强统计
- _get_intent_rule_stats: 意图规则统计
- _get_template_stats: 模板使用统计
- _get_flow_stats: 流程激活统计
- _get_guardrail_stats: 护栏拦截统计
- ✅ 修改: ai-service/app/api/admin/dashboard.py
- 扩展 GET /admin/dashboard/stats
- 新增 start_date, end_date, include_enhanced 参数
- 返回增强监控统计
### Phase 4: Orchestrator 监控增强 (T16.9-T16.12)
**状态**: ✅ 已完成
**文件修改记录**:
- ✅ 创建: ai-service/app/services/monitoring/recorder.py
- MonitoringRecorder 类:执行记录器
- StepMetrics 数据类:步骤指标
- start_step/end_step: 步骤计时
- record_intent_hit: 记录意图命中
- record_template_usage: 记录模板使用
- record_flow_activation: 记录流程激活
- record_guardrail_block: 记录护栏拦截
- save_test_record: 保存测试记录
### Phase 5: 对话追踪服务 (T16.33-T16.36)
**状态**: ✅ 已完成
**文件修改记录**:
- ✅ 修改: ai-service/app/api/admin/monitoring.py
- GET /admin/monitoring/conversations: 对话列表
- GET /admin/monitoring/conversations/{message_id}: 对话详情
### Phase 6: 对话导出服务 (T16.37-T16.39)
**状态**: ✅ 已完成
**文件修改记录**:
- ✅ 修改: ai-service/app/api/admin/monitoring.py
- POST /admin/monitoring/conversations/export: 创建导出任务
- GET /admin/monitoring/conversations/export/{task_id}: 获取导出状态
- GET /admin/monitoring/conversations/export/{task_id}/download: 下载导出文件
### Phase 7: 流程测试 API
**状态**: ✅ 已完成
**文件修改记录**:
- ✅ 创建: ai-service/app/api/admin/flow_test.py
- POST /admin/test/flow-execution: 执行完整12步流程测试
- GET /admin/test/flow-execution/{test_id}: 获取测试结果
- GET /admin/test/flow-executions: 列出测试记录
- POST /admin/test/compare: 对比测试
- ✅ 修改: ai-service/app/api/admin/__init__.py
- ✅ 修改: ai-service/app/main.py
### Phase 8: 数据库迁移
**状态**: ✅ 已完成
**文件修改记录**:
- ✅ 创建: ai-service/scripts/migrations/002_add_monitoring_fields.sql
- chat_messages 表新增监控字段
- 创建 flow_test_records 表
- 创建 export_tasks 表
- 创建相关索引
### Phase 9: 前端 Dashboard 统计卡片增强 (P13-02-P13-04)
**状态**: ✅ 已完成
**文件修改记录**:
- ✅ 修改: ai-service-admin/src/api/dashboard.ts
- 新增 DashboardStats 接口类型定义
- 新增 IntentRuleStat, PromptTemplateStat, ScriptFlowStat, GuardrailWordStat 类型
- 扩展 getDashboardStats 支持时间范围参数
- ✅ 修改: ai-service-admin/src/views/dashboard/index.vue
- 新增时间范围筛选器(日期选择器 + 快捷选项)
- 新增四个监控统计卡片意图规则命中、Prompt 模板、话术流程、护栏拦截
- 卡片支持点击跳转到对应监控页面
- 显示 Top 3 排行数据
### Phase 10: 前端完整流程测试台 (P13-05-P13-08)
**状态**: ✅ 已完成
**文件修改记录**:
- ✅ 创建: ai-service-admin/src/api/flow-test.ts
- FlowExecutionRequest/Response 接口
- FlowExecutionStep 接口
- executeFlowTest, getFlowTestResult, listFlowTests, compareFlowTest 函数
- ✅ 修改: ai-service-admin/src/views/rag-lab/index.vue
- 新增"完整流程测试"模式切换开关
- 新增流程配置开关意图识别、话术流程、RAG检索、输出护栏、上下文记忆
- 新增 12 步执行流程时间线展示
- 支持步骤展开查看详细输入输出
- 显示最终响应和置信度
### Phase 11: 前端对话追踪页面 (P13-20-P13-23)
**状态**: ✅ 已完成
**文件修改记录**:
- ✅ 修改: ai-service-admin/src/api/monitoring.ts
- 新增 ConversationItem, ConversationDetail 接口
- 新增 ExportTaskResponse, ExportRequest 接口
- 新增 listConversations, getConversationDetail 函数
- 新增 createExportTask, getExportStatus, getExportDownloadUrl 函数
- ✅ 创建: ai-service-admin/src/views/admin/monitoring/ConversationTracking.vue
- 对话列表页面支持会话ID、时间范围、流程、护栏筛选
- 对话详情抽屉显示用户消息、AI回复、触发规则、使用模板、话术流程
- 执行链路时间线展示12步流程详情
- 导出功能(支持 JSON/CSV 格式)
### Phase 12: 前端监控导航菜单 (P13-24-P13-25)
**状态**: ✅ 已完成
**文件修改记录**:
- ✅ 修改: ai-service-admin/src/router/index.ts
- 新增 /admin/monitoring/conversations 路由
## 5. 技术上下文
### 项目结构
- **前端**: `ai-service-admin/` - Vue 3 + Element Plus + TypeScript
- **后端**: `ai-service/` - Python FastAPI + SQLModel + PostgreSQL + Redis
### 核心约定
- 多租户隔离: 所有数据访问必须带 tenant_id 过滤
- 实体使用 SQLModel 定义,支持 Pydantic 验证
- API 使用 FastAPI Router 组织
### 新增依赖
- redis>=5.0.0: Redis 异步客户端
## 6. 会话历史
### 会话 1 (2026-02-27)
- 完成: 阅读需求文档和设计文档,创建进度文档
- 完成: 所有后端任务实现
- 问题: metadata 字段名与 SQLModel 父类冲突
- 解决方案: 重命名为 step_metadata
### 会话 2 (2026-02-27)
- 完成: 所有前端任务实现
- Dashboard 统计卡片增强
- RAG 实验室完整流程测试台
- 对话追踪页面
- 监控导航路由
### 会话 3 (2026-02-28) - 验收会话
- 完成: 前端验收标准 AC-ASA-59 ~ AC-ASA-64 验收通过
- AC-ASA-59: 流程模拟对话框 - 步骤可视化 ✅
- AC-ASA-60: 话术流程监控页面 - 流程激活统计 ✅
- AC-ASA-61: 流程执行记录详情弹窗 - 分页支持 ✅
- AC-ASA-62: 护栏测试对话框 - 禁词检测结果 ✅
- AC-ASA-63: 输出护栏监控页面 - 护栏拦截统计 ✅
- AC-ASA-64: 护栏拦截记录详情弹窗 - 分页支持 ✅
- 完成: 后端验收标准 AC-AISVC-91 ~ AC-AISVC-95, AC-AISVC-108 ~ AC-AISVC-110 验收通过
- AC-AISVC-91/92: Dashboard统计增强 - 四个监控统计卡片+时间筛选 ✅
- AC-AISVC-93/94/95: 完整流程测试 - 12步执行时间线+步骤详情 ✅
- AC-AISVC-108/109/110: 对话追踪 - 列表+详情+导出 ✅
- 修复问题:
- flow_test.py 导入错误: Orchestrator → OrchestratorService
- flow_test.py ChatRequest 导入路径修正
- flow_test.py ChatResponse.sources 属性不存在
- 数据库迁移: 创建 add_chat_message_fields.py 添加缺失字段
- 前后端字段不一致: order → step_no, wait_for_input → wait_input
## 7. 下一步行动
**任务已全部完成**
## 8. 待解决问题
暂无
## 9. 最终验收标准
### Dashboard 统计增强 (AC-AISVC-91, AC-AISVC-92)
- [x] GET /admin/dashboard/stats 返回意图规则命中率
- [x] GET /admin/dashboard/stats 返回 Prompt 模板使用次数
- [x] GET /admin/dashboard/stats 返回话术流程激活次数
- [x] GET /admin/dashboard/stats 返回护栏拦截次数
- [x] 支持时间范围筛选参数
- [x] 前端展示四个监控统计卡片
- [x] 前端支持时间范围筛选
### 完整流程测试 (AC-AISVC-93, AC-AISVC-94, AC-AISVC-95)
- [x] POST /admin/test/flow-execution 执行完整12步流程
- [x] 返回每一步的详细执行结果
- [x] 支持对比测试
- [x] 前端展示12步执行时间线
- [x] 前端支持步骤详情展开
### 对话追踪 (AC-AISVC-108, AC-AISVC-109, AC-AISVC-110)
- [x] GET /admin/monitoring/conversations 返回对话列表
- [x] GET /admin/monitoring/conversations/{id} 返回执行链路详情
- [x] POST /admin/monitoring/conversations/export 导出对话记录
- [x] 前端对话列表页面
- [x] 前端对话详情展示
- [x] 前端导出功能JSON/CSV