93ba41ed79
- 新增 backend/app/api/approval.py 审批API - 前端H5支持发起审批、审批操作 - 添加审批卡片弹窗组件 - 路由注册审批模块
6.6 KiB
6.6 KiB
阶段 1 已实现项盘点
生成日期: 2026-06-15 对照: PRD.md §5.2 阶段一 状态: 阶段 1 已基本完成,扫尾中
1. 阶段 1 目标(回顾)
本阶段解决痛点: 坐席摆脱企微员工服务限制(为阶段二解决痛点1打基础)
关键前提: 企微AI机器人 + Dify + RAGFlow + 千问已在生产环境运行,本阶段不做任何AI引擎改动,仅改变转人工环节的链接指向和坐席端工具。
2. 完成度盘点
2.1 员工端(H5 WebView,Vue3 + Vant4)
| 项 | 状态 | 文件 | 备注 |
|---|---|---|---|
| 自建应用创建 + H5 基础框架 | ✅ | frontend-h5/ |
|
| OAuth2 静默授权 → 员工身份识别 | ✅ | backend/app/api/h5.py |
|
| 聊天界面(4 种消息气泡) | ✅ | frontend-h5/src/views/Chat.vue |
员工/坐席/AI/系统 |
| 「敲桌子」呼叫坐席(7 种 SVG 动画) | ✅ | frontend-h5/src/components/KnockButton.vue |
|
| AI 助手面板 | ✅ | frontend-h5/src/components/AIPanel.vue |
阶段 1 简化版 |
| 审批流程链接 | ✅ | frontend-h5/src/views/Approval.vue |
|
| 软件下载 | ✅ | frontend-h5/src/views/Download.vue |
|
| AI 回复展示 | 🟡 占位 | - | 依赖阶段 3 AI Wingman |
| 摇人按钮 | 🟡 占位 | - | 阶段 2(任务 2-1.1) |
| 满意度评价 | ❌ 缺 | - | 阶段 2(任务 2-1.2) |
| 排队系统 | ❌ 缺 | - | 阶段 2(任务 2-1.3) |
2.2 坐席端(Web,Vue3 + Element Plus)
| 项 | 状态 | 文件 | 备注 |
|---|---|---|---|
| 登录页(用户ID + 姓名) | ✅ | frontend-agent/src/views/Login.vue |
|
| 三栏工作台 | ✅ | frontend-agent/src/views/Workbench.vue |
|
| 6 分区会话列表 | ✅ | frontend-agent/src/components/ConversationList.vue |
待接单/我的/协作/其他坐席/AI处理/已结单 |
| 协作功能(摇人邀请、接受/拒绝) | ✅ | frontend-agent/src/components/Collaboration.vue |
|
| WebSocket + 轮询双模式 | ✅ | frontend-agent/src/composables/useWebSocket.ts |
P0 鉴权修复后 |
| AI 助手面板(右侧栏) | ✅ | frontend-agent/src/components/AIPanel.vue |
阶段 1 简化版 |
| 操作步骤/风险提示/用户信息面板 | 🟡 占位 | - | 需后端数据 |
| 草稿回复(AI) | ❌ 缺 | - | 阶段 3(任务 3-1.1) |
| 自动摘要 | ❌ 缺 | - | 阶段 3(任务 3-1.2) |
| 知识推荐 | ❌ 缺 | - | 阶段 3(任务 3-1.3) |
| 排查步骤 | ❌ 缺 | - | 阶段 3(任务 3-1.4) |
2.3 后端(FastAPI + PostgreSQL + Redis)
| 项 | 状态 | 文件 | 备注 |
|---|---|---|---|
| 企微回调加解密(AES-CBC-256) | ✅ | backend/app/utils/crypto.py |
|
| 消息路由(VIP 识别、紧急度评分 1-5、标记检测) | ✅ | backend/app/services/message_router.py |
|
| WebSocket 实时推送(心跳、重连、定向广播) | ✅ | backend/app/services/ws_manager.py |
P0 鉴权修复 |
| 会话全生命周期(创建→分配→处理→结单→转接) | ✅ | backend/app/api/conversations.py |
|
| 坐席管理(登录、状态切换、在线列表) | ✅ | backend/app/api/agents.py |
P0 加 password_hash |
| H5 端 OAuth2 认证、审批链接、软件下载 | ✅ | backend/app/api/h5.py |
|
| 应急模式(系统故障时手动开启) | ✅ | backend/app/api/system.py |
|
| Alembic 数据库迁移(初始表结构) | 🟡 部分 | backend/alembic/versions/ |
008 + 009 已加,001 缺 |
| AI 回复集成(对接 Dify) | ❌ 缺 | - | 阶段 3 启动前置(W-4 任务) |
| 自动化测试(pytest) | ❌ 缺 | - | README 已知问题 #2,workbuddy W-3 跑 |
| WS 鉴权修复(P0) | ✅ | backend/app/api/ws.py |
Sec-WebSocket-Protocol |
| 坐席密码字段(P0) | ✅ | backend/app/models/agent.py |
password_hash 字段 |
| 5 P0 端点鉴权(P0-2~6) | ✅ | backend/app/api/messages.py |
5 端点加 Depends |
| 消息状态字段 + 广播(P1-2/4) | ✅ | backend/app/models/message.py |
009 alembic + ws_manager |
| Upload 路径持久化(P1-1) | 🟡 半成品 | docker-compose.yml |
named volume,留 P2 优化(#25) |
| Healthcheck Python(P1-3) | ✅ | docker-compose.yml |
urllib 替代 curl |
2.4 部署
| 项 | 状态 | 文件 | 备注 |
|---|---|---|---|
| Docker Compose 4 容器编排 | ✅ | docker-compose.yml |
nginx + backend + postgres + redis |
| Nginx 反向代理(共享域名) | ✅ | nginx/nginx.conf |
it-dataquery.dc.servyou-it.com |
| 部署脚本 | ✅ | scripts/deploy.sh |
5 种运行模式 |
| HTTPS 启用(nginx.conf 模板) | 🟡 占位 | - | 需 SSL 证书 |
| 预生产环境验证 | 🟡 部分 | - | 独立主机部署中 |
| Gitea 仓治理 | ✅ | - | 见 Gitea部署指南 |
| Tailscale Funnel 暴露 | ✅ | - | 给 workbuddy 沙箱 |
| 备份 + cron | 🟡 待部署 | scripts/backup-gitea.sh |
睡醒后部署 |
3. 阶段 1 完项统计
| 分类 | 总数 | 已完成 | 半成品 | 缺 |
|---|---|---|---|---|
| 员工端 | 11 | 8 | 2 | 1 |
| 坐席端 | 12 | 7 | 1 | 4 |
| 后端 | 16 | 11 | 2 | 3 |
| 部署 | 8 | 5 | 2 | 1 |
| 合计 | 47 | 31 (66%) | 7 (15%) | 9 (19%) |
4. 阶段 1 扫尾任务(给 workbuddy 跑)
| # | 任务 | 阻塞 | 关联 |
|---|---|---|---|
| S-1 | 初始 alembic 001 基准 | 无 | W-3 跑 |
| S-2 | pytest 基础配置 | 无 | W-3 跑 |
| S-3 | P1-1 优化(named → host bind mount) | 无 | #25 跑 |
| S-4 | P0 二次评审 5 遗留修完 | 无 | #18 跑 |
| S-5 | 坐席端操作步骤/风险提示/用户信息面板 | 需后端字段 | 阶段 2 |
| S-6 | H5 端 AI 回复展示 | 阶段 3 启动 | Dify 集成 |
5. 阶段 1 完结评估
5.1 痛点解决度
| 痛点 | 解决度 | 备注 |
|---|---|---|
| 痛点 1(分散渠道) | 🟡 部分 | 阶段 2 完善 |
| 坐席摆脱员工服务限制 | ✅ | 已脱离 |
5.2 核心指标
| 指标 | 目标 | 实际 | 状态 |
|---|---|---|---|
| AI 自助解决率 | 55% | 70.2% (1-5月) | ✅ 超目标 |
| 坐席响应时间 | ≤5 min | 待测 | 🟡 |
| 系统可用性 | 99.5% | 待测 | 🟡 |
6. 决策记录
- 决策1:阶段 1 不动企微 AI 机器人 → 渐进式替换
- 决策2:WS 鉴权走 Sec-WebSocket-Protocol(ADR-002)
- 决策3:nginx 敏感路径 access_log off(ADR-003)
- 决策4:Token 不入文件走 wincred(ADR-004)
- 决策5:Gitea 自托管 + Funnel(ADR-001)
7. 下一步
- 立即(本晚 workbuddy 跑):S-1 ~ S-4 扫尾
- 本晚(Claude 写):S-5 / S-6 设计 + 阶段 4-5 规划
- 明日:走阶段 2 任务清单(2-1.1 摇人开始)
- 本周末:阶段 2 完项 + 阶段 3 Dify POC
关联文档:
- 阶段 2-3 任务拆解:
docs/路线图/阶段2-3-任务.md - 阶段 4-5 规划:
docs/路线图/阶段4-5-规划.md(待 Claude 写) - AI Wingman 设计:
docs/Wingman设计.md(待 Claude 写)