93ba41ed79
- 新增 backend/app/api/approval.py 审批API - 前端H5支持发起审批、审批操作 - 添加审批卡片弹窗组件 - 路由注册审批模块
364 lines
10 KiB
Markdown
364 lines
10 KiB
Markdown
# 阶段 4-5 规划:数据驱动 + 工单闭环
|
|
|
|
**生成日期**: 2026-06-15
|
|
**关联**: PRD.md §5.2 阶段四 / 阶段五
|
|
**前置依赖**: 阶段 2-3 完项
|
|
|
|
---
|
|
|
|
## 📌 阶段 4:日志标准 + AI 知识库迭代
|
|
|
|
**目标**: 解决痛点 3-4(知识库人工维护效率低 + 缺乏数据驱动)
|
|
**预期工时**: 12-16 周
|
|
**关联**: [[Wingman设计]] / [[SOPs]]
|
|
|
|
### 4.1 关键模块
|
|
|
|
#### 4.1.1 会话标注体系
|
|
|
|
**目标**: 坐席对 AI 回复/草稿/排查步骤标注有用/无用,数据用于阶段 4 知识库迭代
|
|
|
|
**实现**:
|
|
- 后端 `backend/app/models/annotation.py` (新):
|
|
```python
|
|
class Annotation(Base):
|
|
__tablename__ = "annotations"
|
|
id = Column(Integer, primary_key=True)
|
|
agent_id = Column(String, ForeignKey("agents.id"))
|
|
conv_id = Column(String, ForeignKey("conversations.id"))
|
|
message_id = Column(String, ForeignKey("messages.id"))
|
|
annotation_type = Column(String) # helpful / not_helpful / wrong / missing
|
|
comment = Column(Text)
|
|
created_at = Column(DateTime)
|
|
```
|
|
- 前端 `frontend-agent/src/components/AnnotationPanel.vue`:
|
|
- 消息右侧 👍/👎 按钮
|
|
- 弹窗写 comment
|
|
- 提交落库
|
|
- Alembic 010 迁移
|
|
|
|
**验收**:
|
|
- 坐席可标注任何 AI 生成的内容
|
|
- 标注数据可查询/导出(供后续分析)
|
|
- 月度统计报告(标注数 / 准确率)
|
|
|
|
#### 4.1.2 AI 知识库自动迭代闭环
|
|
|
|
**目标**: AI 错误率/标注分析 → 自动提炼新 FAQ → 入库 → 验证
|
|
|
|
**实现**:
|
|
- 后端 `backend/app/services/knowledge_evolution.py` (新):
|
|
- 周一 cron 跑一次
|
|
- 取上周"wrong/missing"标注 ≥ 3 的会话
|
|
- 调 Dify 工作流"提炼 FAQ"
|
|
- 入 `knowledge` 表(待人工审)
|
|
- 通知 admin
|
|
- 前端 `frontend-admin/src/views/KnowledgeReview.vue`:
|
|
- 待审 FAQ 列表
|
|
- 一键通过 / 拒绝 / 改写
|
|
- 通过后正式入知识库
|
|
- 知识库效果 A/B 测试(对比自动 vs 人工)
|
|
|
|
**验收**:
|
|
- 闭环跑通(标注 → 提炼 → 审 → 入库)
|
|
- 月度新 FAQ ≥ 20 条
|
|
- 错误率从 X% 降到 Y%
|
|
|
|
#### 4.1.3 数据统计看板
|
|
|
|
**目标**: 管理者看到核心指标(响应时间/解决率/坐席效率/知识库效果)
|
|
|
|
**实现**:
|
|
- 后端 `backend/app/api/analytics.py` (新):
|
|
- `/api/v1/analytics/overview` 总览
|
|
- `/api/v1/analytics/agents` 坐席效率
|
|
- `/api/v1/analytics/knowledge` 知识库效果
|
|
- `/api/v1/analytics/conversations` 会话统计
|
|
- 前端 `frontend-admin/src/views/Dashboard.vue`:
|
|
- ECharts 图表
|
|
- 实时刷新(WebSocket)
|
|
- 时间筛选 + 导出
|
|
- 关键指标:
|
|
- 总会话数 / 已结单 / 待处理
|
|
- 平均响应时间 / 平均结单时间
|
|
- AI 自助解决率 / 坐席解决率
|
|
- 知识库命中率 / 反馈率
|
|
- 坐席效率(每小时结单数)
|
|
|
|
**验收**:
|
|
- 看板 5 大模块齐全
|
|
- 数据准确(对照 DB 验证)
|
|
- 实时刷新(≤ 5 秒延迟)
|
|
|
|
### 4.2 数据库扩展
|
|
|
|
```sql
|
|
-- 010 alembic: 标注
|
|
CREATE TABLE annotations (
|
|
id SERIAL PRIMARY KEY,
|
|
agent_id VARCHAR(50) NOT NULL,
|
|
conv_id VARCHAR(50) NOT NULL,
|
|
message_id VARCHAR(50) NOT NULL,
|
|
annotation_type VARCHAR(20) NOT NULL,
|
|
comment TEXT,
|
|
created_at TIMESTAMP DEFAULT NOW()
|
|
);
|
|
|
|
-- 011 alembic: 知识库条目
|
|
CREATE TABLE knowledge (
|
|
id SERIAL PRIMARY KEY,
|
|
question TEXT NOT NULL,
|
|
answer TEXT NOT NULL,
|
|
source VARCHAR(20) NOT NULL, -- manual / auto / imported
|
|
status VARCHAR(20) DEFAULT 'pending', -- pending / approved / rejected
|
|
hits INT DEFAULT 0,
|
|
helpful INT DEFAULT 0,
|
|
not_helpful INT DEFAULT 0,
|
|
created_at TIMESTAMP DEFAULT NOW(),
|
|
updated_at TIMESTAMP DEFAULT NOW()
|
|
);
|
|
|
|
-- 012 alembic: 反馈(知识库命中后的反馈)
|
|
CREATE TABLE knowledge_feedback (
|
|
id SERIAL PRIMARY KEY,
|
|
knowledge_id INT NOT NULL,
|
|
agent_id VARCHAR(50),
|
|
helpful BOOLEAN,
|
|
comment TEXT,
|
|
created_at TIMESTAMP DEFAULT NOW()
|
|
);
|
|
```
|
|
|
|
### 4.3 阶段 4 工时
|
|
|
|
| 模块 | 估计工时 | 难度 |
|
|
|---|---|---|
|
|
| 4.1.1 会话标注 | 2 周 | 低 |
|
|
| 4.1.2 知识库迭代 | 4 周 | 高(AI 闭环) |
|
|
| 4.1.3 数据看板 | 3 周 | 中(前端图表) |
|
|
| 数据库迁移 | 1 周 | 低 |
|
|
| 集成 + 部署 | 2 周 | 中 |
|
|
| **合计** | **12 周** | |
|
|
|
|
### 4.4 风险
|
|
|
|
| 风险 | 等级 | 缓解 |
|
|
|---|---|---|
|
|
| AI 提炼 FAQ 质量差 | 🟠 高 | 人工 review + 灰度发布 |
|
|
| 看板性能(数据大) | 🟡 中 | 物化视图 + 缓存 |
|
|
| 标注数据稀疏 | 🟡 中 | 强制标注 + 提示坐席 |
|
|
|
|
---
|
|
|
|
## 📌 阶段 5:自动/辅助审核 + 开单 + 结单
|
|
|
|
**目标**: 多系统切换效率问题 → 统一工作台闭环
|
|
**预期工时**: 16-20 周
|
|
**前置**: 阶段 4 数据基础 + 外部系统集成(已就绪)
|
|
|
|
### 5.1 关键模块
|
|
|
|
#### 5.1.1 工单系统
|
|
|
|
**目标**: 开会话即开单 → 全生命周期跟踪(开单→审批→处理→结单→归档)
|
|
|
|
**实现**:
|
|
- 后端 `backend/app/models/ticket.py` (新):
|
|
```python
|
|
class Ticket(Base):
|
|
__tablename__ = "tickets"
|
|
id = Column(Integer, primary_key=True)
|
|
ticket_no = Column(String, unique=True) # T20260615001
|
|
conv_id = Column(String, ForeignKey("conversations.id"))
|
|
title = Column(String, nullable=False)
|
|
description = Column(Text)
|
|
category = Column(String) # hardware / software / network / account
|
|
priority = Column(String) # low / medium / high / urgent
|
|
status = Column(String, default="open") # open / assigned / in_progress / pending / resolved / closed
|
|
assignee_id = Column(String, ForeignKey("agents.id"))
|
|
department = Column(String)
|
|
sla_due = Column(DateTime)
|
|
created_at = Column(DateTime)
|
|
closed_at = Column(DateTime)
|
|
```
|
|
- 工单流转:
|
|
- 坐席一键"开会话转工单"
|
|
- 工单可分配/转交/合并
|
|
- SLA 自动跟踪(超时告警)
|
|
- 集成火绒/联软(资产联动,见 [[外部集成]])
|
|
- 集成 eHR(账号联动)
|
|
|
|
**验收**:
|
|
- 工单可从会话创建
|
|
- 工单全生命周期跟踪
|
|
- SLA 告警有效
|
|
|
|
#### 5.1.2 审批流程
|
|
|
|
**目标**: IT 服务涉及多部门审批(资产申请 / 权限变更 / 远程协助)
|
|
|
|
**实现**:
|
|
- 后端 `backend/app/models/approval.py` (新):
|
|
```python
|
|
class Approval(Base):
|
|
__tablename__ = "approvals"
|
|
id = Column(Integer, primary_key=True)
|
|
ticket_id = Column(Integer, ForeignKey("tickets.id"))
|
|
approver_id = Column(String, ForeignKey("agents.id"))
|
|
step = Column(Integer) # 审批层级 1/2/3
|
|
decision = Column(String) # pending / approved / rejected
|
|
comment = Column(Text)
|
|
created_at = Column(DateTime)
|
|
```
|
|
- 工作流引擎:
|
|
- 简单:用 `if/else` 写死审批链
|
|
- 复杂:用 `spiffworkflow` BPMN 引擎
|
|
- 集成 eHR(主管审批,取组织架构)
|
|
- 集成企微(审批通知)
|
|
|
|
**验收**:
|
|
- 3 步审批链跑通
|
|
- 审批通过自动开单 / 拒绝回退
|
|
- 企微推送通知
|
|
|
|
#### 5.1.3 设备异常一站式处理
|
|
|
|
**目标**: 检测到设备异常 → 自动开单 → 自动派单
|
|
|
|
**实现**:
|
|
- 集成火绒/联软:
|
|
- 定时拉取终端告警
|
|
- 异常员工自动开会话/工单
|
|
- 一键远程协助
|
|
- 集成 aTrust(VPN):
|
|
- 员工 VPN 失败 → 自动检测 → 推会话
|
|
- 前端 `frontend-agent/src/views/DeviceAlerts.vue`:
|
|
- 异常告警列表
|
|
- 一键处理(开单 / 远程 / 转人工)
|
|
|
|
**验收**:
|
|
- 火绒/联软告警 → 会话 自动化
|
|
- aTrust VPN 失败 → 自动检测
|
|
|
|
#### 5.1.4 AI 辅助填单
|
|
|
|
**目标**: 会话结束 → AI 自动填工单(标题/描述/分类/优先级)
|
|
|
|
**实现**:
|
|
- 后端 `backend/app/services/ticket_ai.py` (新):
|
|
- 会话结束触发
|
|
- 调 Dify "工单提炼"工作流
|
|
- 返回 JSON(标题/描述/分类/优先级)
|
|
- 坐席一键确认 / 改写
|
|
- 减少坐席手动填写工作量 70%
|
|
|
|
**验收**:
|
|
- AI 填单准确率 ≥ 80%
|
|
- 坐席手动改写 < 20%
|
|
|
|
#### 5.1.5 自动结单
|
|
|
|
**目标**: 简单问题 AI 自动结单 / 复杂问题 SLA 到时自动结单
|
|
|
|
**实现**:
|
|
- 自动结单规则:
|
|
- 客户无回复 ≥ 7 天 → 自动结单
|
|
- 客户回复"谢谢/解决了" → 自动结单
|
|
- SLA 超时未处理 → 升级 + 告警(不自动结)
|
|
- 人工 review 队列(待审自动结单)
|
|
|
|
**验收**:
|
|
- 自动结单准确率 ≥ 95%
|
|
- 误结率 < 1%
|
|
|
|
### 5.2 阶段 5 数据库扩展
|
|
|
|
```sql
|
|
-- 020 alembic: 工单
|
|
-- (见 5.1.1 schema)
|
|
|
|
-- 021 alembic: 审批
|
|
-- (见 5.1.2 schema)
|
|
|
|
-- 022 alembic: 设备告警
|
|
CREATE TABLE device_alerts (
|
|
id SERIAL PRIMARY KEY,
|
|
source VARCHAR(20) NOT NULL, -- huorong / lianruan / atrust
|
|
employee_id VARCHAR(50),
|
|
device_id VARCHAR(100),
|
|
alert_type VARCHAR(50),
|
|
severity VARCHAR(20),
|
|
description TEXT,
|
|
handled BOOLEAN DEFAULT FALSE,
|
|
handled_by VARCHAR(50),
|
|
created_at TIMESTAMP DEFAULT NOW()
|
|
);
|
|
|
|
-- 023 alembic: SLA 跟踪
|
|
CREATE TABLE sla_tracking (
|
|
id SERIAL PRIMARY KEY,
|
|
ticket_id INT NOT NULL,
|
|
sla_type VARCHAR(20), -- response / resolve
|
|
due_at TIMESTAMP,
|
|
breached BOOLEAN DEFAULT FALSE,
|
|
notified_at TIMESTAMP
|
|
);
|
|
```
|
|
|
|
### 5.3 阶段 5 工时
|
|
|
|
| 模块 | 估计工时 | 难度 |
|
|
|---|---|---|
|
|
| 5.1.1 工单系统 | 6 周 | 高 |
|
|
| 5.1.2 审批流程 | 4 周 | 中 |
|
|
| 5.1.3 设备异常 | 3 周 | 中(集成) |
|
|
| 5.1.4 AI 填单 | 2 周 | 中(Dify) |
|
|
| 5.1.5 自动结单 | 2 周 | 中 |
|
|
| 集成 + 部署 | 3 周 | 中 |
|
|
| **合计** | **20 周** | |
|
|
|
|
### 5.4 阶段 5 风险
|
|
|
|
| 风险 | 等级 | 缓解 |
|
|
|---|---|---|
|
|
| 工单系统复杂度爆炸 | 🟠 高 | 拆子模块,先 MVP 后扩展 |
|
|
| 审批链配置错误 | 🟠 高 | 严格测试 + 灰度 |
|
|
| AI 填单准确率低 | 🟡 中 | 人工 review + 持续训练 |
|
|
| 多系统集成不稳定 | 🟠 高 | 熔断 + 降级 + 重试 |
|
|
|
|
---
|
|
|
|
## 📌 关键路径
|
|
|
|
```
|
|
阶段 2-3 完项 (本季度)
|
|
↓
|
|
阶段 4 启动 (数据基础)
|
|
├─ 4.1.1 会话标注 (前置)
|
|
├─ 4.1.2 知识库迭代
|
|
└─ 4.1.3 数据看板
|
|
↓
|
|
阶段 5 启动 (闭环)
|
|
├─ 5.1.1 工单系统
|
|
├─ 5.1.2 审批流程
|
|
├─ 5.1.3 设备异常
|
|
├─ 5.1.4 AI 填单
|
|
└─ 5.1.5 自动结单
|
|
↓
|
|
生产稳定 + 持续优化
|
|
```
|
|
|
|
---
|
|
|
|
## 📌 关联文档
|
|
|
|
- [[阶段1-已实现盘点]]: 阶段 1 完项
|
|
- [[阶段2-3-任务]]: 阶段 2-3 任务拆解
|
|
- [[Wingman设计]]: AI Wingman 完整设计
|
|
- [[外部系统集成]]: 火绒/联软/aTrust/eHR 集成
|
|
- [[风险跟踪表]]: 项目风险审计
|
|
|
|
---
|
|
|
|
*本规划是 2026-06-15 Claude 满载任务产出,供项目组评审*
|