docs: 更新 Phase 13 话术流程引擎进度文档 [AC-AISVC-71~AC-AISVC-77]

This commit is contained in:
MerCry 2026-02-27 17:59:23 +08:00
parent fba9b9313c
commit d4b0bc3101
1 changed files with 52 additions and 12 deletions

View File

@ -43,21 +43,20 @@
## 🔄 Current Phase
### Goal
Phase 14 输出护栏核心功能已完成 (T14.1-T14.7)T14.8(单元测试)留到集成阶段
Phase 13 话术流程引擎核心功能已完成 (T13.1-T13.6)T13.7单元测试留到集成阶段。下一阶段Phase 15 智能 RAG 增强与编排升级
### Completed Tasks (Phase 14)
### Completed Tasks (Phase 13)
- [x] T14.1 定义 `ForbiddenWord``BehaviorRule` SQLModel 实体,创建数据库表 `[AC-AISVC-78, AC-AISVC-84]`
- [x] T14.2 实现 `ForbiddenWordService`:禁词 CRUD + 命中统计 `[AC-AISVC-78, AC-AISVC-79, AC-AISVC-80, AC-AISVC-81]`
- [x] T14.3 实现 `BehaviorRuleService`:行为规则 CRUD `[AC-AISVC-84, AC-AISVC-85]`
- [x] T14.4 实现 `InputScanner`:用户输入前置禁词检测(仅记录,不阻断) `[AC-AISVC-83]`
- [x] T14.5 实现 `OutputFilter`LLM 输出后置过滤mask/replace/block 三种策略) `[AC-AISVC-82]`
- [x] T14.6 实现 Streaming 模式下的滑动窗口禁词检测 `[AC-AISVC-82]`
- [x] T14.7 实现护栏管理 API`/admin/guardrails` 相关端点 `[AC-AISVC-78~AC-AISVC-85]`
- [x] T13.1 定义 `ScriptFlow``FlowInstance` SQLModel 实体,创建数据库表 `[AC-AISVC-71, AC-AISVC-74]`
- [x] T13.2 实现 `ScriptFlowService`:流程定义 CRUD `[AC-AISVC-71, AC-AISVC-72, AC-AISVC-73]`
- [x] T13.3 实现 `FlowEngine.check_active_flow()`:检查会话是否有活跃流程实例 `[AC-AISVC-75]`
- [x] T13.4 实现 `FlowEngine.start()`:创建流程实例,返回第一步话术 `[AC-AISVC-74]`
- [x] T13.5 实现 `FlowEngine.advance()`:根据用户输入匹配条件,推进步骤或重复当前步骤 `[AC-AISVC-75, AC-AISVC-76]`
- [x] T13.6 实现话术流程管理 API`POST/GET/PUT /admin/script-flows` `[AC-AISVC-71, AC-AISVC-72, AC-AISVC-73]`
### Pending Tasks (Phase 14 - 集成阶段)
### Pending Tasks (Phase 13 - 集成阶段)
- [ ] T14.8 编写输出护栏服务单元测试 `[AC-AISVC-78~AC-AISVC-85]`
- [ ] T13.7 编写话术流程引擎单元测试 `[AC-AISVC-71~AC-AISVC-77]`
---
@ -69,8 +68,9 @@ Phase 14 输出护栏核心功能已完成 (T14.1-T14.7)T14.8(单元测试
- `app/`
- `api/` - FastAPI 路由层
- `admin/guardrails.py` - 护栏管理 API ✅
- `admin/script_flows.py` - 话术流程管理 API ✅
- `models/` - Pydantic 模型和 SQLModel 实体
- `entities.py` - ForbiddenWord, BehaviorRule, GuardrailResult, InputScanResult 实体 ✅
- `entities.py` - ForbiddenWord, BehaviorRule, GuardrailResult, InputScanResult, ScriptFlow, FlowInstance, FlowInstanceStatus, TimeoutAction, FlowStep, FlowAdvanceResult 实体 ✅
- `services/`
- `guardrail/` - 输出护栏服务 ✅
- `__init__.py` - 模块导出
@ -79,6 +79,10 @@ Phase 14 输出护栏核心功能已完成 (T14.1-T14.7)T14.8(单元测试
- `input_scanner.py` - 用户输入前置检测(仅记录,不阻断)
- `output_filter.py` - LLM 输出后置过滤mask/replace/block
- `streaming_filter.py` - Streaming 滑动窗口检测
- `flow/` - 话术流程引擎 ✅
- `__init__.py` - 模块导出
- `flow_service.py` - 流程定义 CRUD
- `engine.py` - FlowEngine 状态机check_active_flow、start、advance、handle_timeout、cancel_flow
### Key Decisions (Why / Impact)
@ -102,10 +106,46 @@ Phase 14 输出护栏核心功能已完成 (T14.1-T14.7)T14.8(单元测试
reason: 减少数据库查询,提升过滤性能
impact: 缓存 TTL=60sCRUD 操作时主动失效
- decision: FlowEngine 状态机设计
reason: 实现多轮引导对话的固定话术流程
impact: 状态流转 IDLE → ACTIVE → COMPLETED/TIMEOUT/CANCELLED
- decision: 步骤推进条件匹配
reason: 根据用户输入决定下一步骤
impact: 支持关键词匹配和正则匹配nextConditions 定义跳转条件
- decision: 超时处理三种策略
reason: 用户长时间无响应时的不同处理方式
impact: repeat重复当前步骤、skip跳过到指定步骤、transfer转人工
---
## 🧾 Session History
### Session #11 (2026-02-27)
- completed:
- T13.1-T13.6 话术流程引擎核心功能
- 实现 ScriptFlow 和 FlowInstance 实体
- 实现 ScriptFlowService流程定义 CRUD
- 实现 FlowEngine 状态机check_active_flow、start、advance、handle_timeout、cancel_flow
- 实现步骤推进逻辑关键词匹配、正则匹配、nextConditions 条件判断)
- 实现超时处理repeat/skip/transfer 三种策略)
- 实现话术流程管理 API
- changes:
- 新增 `app/models/entities.py` ScriptFlow, FlowInstance, FlowInstanceStatus, TimeoutAction, FlowStep, FlowAdvanceResult 实体
- 新增 `app/services/flow/__init__.py` 模块导出
- 新增 `app/services/flow/flow_service.py` 流程定义服务
- 新增 `app/services/flow/engine.py` FlowEngine 状态机引擎
- 新增 `app/api/admin/script_flows.py` 话术流程管理 API
- 更新 `app/api/admin/__init__.py` 导出新路由
- 更新 `app/main.py` 注册新路由
- 更新 `spec/ai-service/tasks.md` 标记任务完成
- notes:
- T13.7(单元测试)留到集成阶段
- FlowEngine 状态机IDLE → ACTIVE → COMPLETED/TIMEOUT/CANCELLED
- 步骤推进支持关键词匹配和正则匹配
- 超时处理支持三种策略repeat重复当前步骤、skip跳过到指定步骤、transfer转人工
### Session #10 (2026-02-27)
- completed:
- T14.1-T14.7 输出护栏核心功能