综合缺口分析修订版与 BRD v1.1 制定二期推进计划,并补齐逐项复核 发现的 6 处缺漏:#6/#9/#16/师徒演练处置、#13 定向再练落点(M4)、 画像雷达图承载、TechSpec P1 表映射、场景管理权限口径、G6 成本上限。
18 KiB
AI 陪练二期开发推进计划
版本:v0.2 | 日期:2026-07-06 输入源:《AI陪练功能优化与缺口分析(修订版 · 2026-07-06)》+《物业行业 AI 人力资源系统 · BRD v1.1》。 v0.2 修订:与两份输入源逐项复核后补齐 6 处缺漏——#6/#9/#16/师徒演练的明确处置(§2)、#13 定向再练的里程碑落点(M4)、画像雷达图与 BRD L1「留」段验收承载(M4)、TechSpec P1 表映射与岗位身份前置(M1)、场景管理权限口径(M1/§7)、G6 成本上限量化(§7)。 结论:二期不做“24 个缺口全量铺开”,先把 AI 陪练从 MVP 演示闭环推进到生活顾问岗位试点可用。
1. 二期目标
二期的交付主题是:围绕“生活顾问”岗位,把 AI 陪练做成可训练、可复盘、可派发、可衡量的“数字师傅”训练闭环。
业务上承接 BRD 的“育 / 用 / 留”三段:
| BRD 主线 | 二期落点 |
|---|---|
| 用 | 岗位 SOP 与训练场景绑定,训练前给预习卡和红线话术 |
| 育 | 语音对手戏、多场景训练、求助、打断纠偏、训练记录 |
| 留 | 画像扩展、复盘标注、主管预警、定向再练 |
二期不追求招聘、薪酬、绩效、知识图谱、原生 APP 的全量扩张。AI 分数仍定位为“辅助参考,人可否决”。
2. 范围切割
必做
| 工作包 | 覆盖缺口 | 价值 |
|---|---|---|
| 场景地基 | #1 #2 #3 #13 #17 #19 | 把代码 seed 迁到表,让岗位、场景、分发可运营 |
| 对练体验增强 | #4 #5 #7 #8 #10 | 训练前有准备、训练中有情绪变化和纠偏、语音体验更像真实业主 |
| 复盘与记录 | #11 #12 #14 #20 | 训练后能回放、标注、人工校准,形成可复盘资产 |
| 画像与主管侧 | #15 #17 #19 | 员工看成长,主管看风险并派专项 |
| 数据治理底线 | #22 #23 | Rubric 有版本,文本入库前脱敏,为试点和合规留余地 |
暂缓
| 暂缓项 | 原因 |
|---|---|
| 实时主管旁听(#18) | WebSocket + 低延迟音频工程量大;先做事后回放 |
| 录像存储 | 涉员工隐私和 G3/G4,二期只存录音 |
| 完整离线对练(#24) | 无 LLM 不可离线;只做 SOP/预习/题目缓存 |
| 纯视觉向量检索 | 依赖素材规模和供应商合规;现有关键帧 caption 已可覆盖大部分检索 |
| 原生 APP、SSO、知识图谱、绩效挂钩 | BRD 已明确为二期后或生产闸门项 |
| 图片/视频情境输入(#9) | BRD 4.3.3 明列(拍照报修),vision 模型已就绪;但场景素材是瓶颈,待 12 条文本场景跑稳后独立评估,可与 B3 文生图联动 |
| 环境噪音模拟(#6) | 前端混音成本不高但非试点闭环必需;噪音音源授权未解决 |
| 自动案例沉淀(#16) | 挂 BRD 4.6/4.7 共创与 review_task 审核链;二期只保证"贡献度"有人工计分入口(见 M4),自动沉淀待案例量起来再评估 |
| 师徒演练(BRD 4.4) | 依赖 mentor_assignment(P1)与真人师父运营;二期由"主管复盘 + 派发"承载师徒最小语义 |
| 动态难度调级(#1 后半 / BRD 4.5) | 场景表保留 difficulty 字段即可;自动升降级依赖画像数据稳定,分发规则 v1 不做 |
3. 技术路线
3.1 数据地基先行
二期第一优先级是把训练运营对象落库。当前现状是 2 个 seed 场景 + aihr_practice_session 汇总表,足够演示,不够试点。
建议新增或补齐以下表,统一使用 aihr_* 前缀:
| 表 | 用途 |
|---|---|
aihr_practice_scenario |
训练场景、岗位、项目类型、难度、人设、SOP 绑定 |
aihr_practice_rubric / aihr_practice_rubric_dimension |
Rubric 版本、维度、权重、启停 |
aihr_practice_assignment |
主管/规则引擎派发每日小训、专项训练 |
aihr_practice_annotation |
finish 后逐句标注、好/差示例、证据 turn |
aihr_practice_calibration |
人工修正评分,沉淀一致率校准集 |
aihr_practice_audio 或 audio_oss_id 字段 |
对练录音 MinIO/sys_oss 回放 |
注意:旧 TechSpec 中出现过 practice_scenario 等无前缀名称,二期实现时应同步修正文档或在 DDL 中明确采用 aihr_practice_*,避免和若依/未来模块冲突。
与 TechSpec P1 表的映射(不另建平行体系):
aihr_practice_assignment吸收daily_drill(每日一练)与training_camp(专项训练营)的语义,用source(daily/camp/retry/manual)+reason字段区分来源,不再单独建这两张表。mistake_book(错题本)语义由“低分维度 → 定向再练派发”承载(见 M4),assignment.source='retry'即错题重练记录。- 跨期五维画像仍走 TechSpec M6 的
competency_assessment,本计划只做单场四维分与四项画像聚合,勿与跨期评估混成一个数(BACKLOG B5 口径)。
3.2 复用现有能力
- 语音识别继续复用
POST /api/ai/asr,不新建移动端专用 ASR。 - TTS 继续复用
POST /api/ai/tts,二期把voice扩成voice_profile。 - 文件与录音存储复用
sys_oss+ MinIO。 - SOP 求助复用
/api/knowledge/search和/api/knowledge/summary-card。 - 模型配置继续走
aihr_model_config的chat/vector/rerank/asr/tts/vision分类。 - 员工端训练仍复用
/api/train/practice/start|turn|finish,不要另起一套移动端训练后端。
4. 里程碑计划
M0. 二期基线冻结(2 天)
目标:确认二期不再追 MVP 演示壳,而是追试点可用闭环。
- 锁定首个岗位:生活顾问。
- 锁定首批场景:投诉处理、催费/停车费、报修跟进、突发求助。
- 每类至少 3 条场景,二期首批共 12 条。
- 每条场景必须有:人设、开场、成功条件、雷点/爽点、SOP 引用、Rubric。
- 明确试点指标:20 名员工、每人 10 次对练、完训率 80%、满意度 4/5。
验收:
docs/BACKLOG.md和本计划无冲突。- 内容负责人能提供或确认 12 条场景素材。
- 开发不再把“实时旁听、录像、知识图谱、原生 APP”拉进二期。
M1. 场景与 Rubric 地基(第 1-2 周)
目标:让“场景管理”和“评分标准版本”从代码 seed 变成可运营数据。
后端:
backend/script/sql/aihr_practice_mysql8.sql:补二期表或新增同目录二期 DDL。backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/domain/AihrPracticeDto.java:补 scenario/rubric/assignment DTO。- 新增
AihrPracticeScenarioService或扩展AihrPracticeSeedService:优先读表,失败回退 seed。 AihrPracticeController:新增场景列表、详情、保存、启停、Rubric 查询接口。scripts/reset-dev-db.sh:导入新 DDL 和 12 条生活顾问 seed。
管理端:
frontend/src/api/aihr/practice.ts:补场景/Rubric API。frontend/src/views/train/practice.vue:先加轻量场景选择和 Rubric 预览,不做复杂 CRUD。
移动端:
mobile/src/App.vue:“开始训练”根据岗位/今日安排传scenarioId,没有数据时回退当前 seed。
验收:
- 管理端能选择不同生活顾问场景并开始对练。
- API 可返回场景绑定的 SOP、Rubric、persona。
- 模型失败或表为空时,原 MVP 对练仍可跑。
- 场景 CRUD 接口挂
hr_operator角色权限(BACKLOG B1“出题”职责),普通员工端只读。 - 员工进入训练时能按登录身份取到岗位(
position),场景列表按岗位过滤——这是 M4 派发与分发规则的身份前置。
M2. 训练前与训练中增强(第 3-4 周)
目标:把体验从“回合制答题”推进到“有准备、有情绪、有求助”的语音对手戏。
功能:
- 训练前预习卡:从场景 SOP 生成“要点 / 红线 / 可说话术”。
- 每轮 emotion 由 LLM 输出并落入 turn/session,不再只用 seed 锚点。
- 求助按钮:训练中弹出该场景 SOP 提示,记录一次求助事件。
- 主动打断:COACH_CHECK 命中红线时中断本轮,提示纠正后重来。
- 方言/多语气:先支持
voice_profile.speed/emotion/dialect,不做语音克隆。
文件落点:
AihrPracticeLlmService.java:扩展 turn 输出 JSON,包含emotion/trustDelta/redFlag/coachHint。AihrPracticeSeedService.java:seed fallback 也返回同样字段。AihrSpeechDto.java/AihrSpeechService.java:扩展 TTS voice 参数,保留旧字符串兼容。frontend/src/views/train/practice.vue:加预习卡、情绪条、求助按钮、红线提示。mobile/src/App.vue:复用训练前卡和求助逻辑,语音失败仍退文本。
验收:
- 员工开始训练前能看到该场景预习卡。
- 至少 3 条场景能看到情绪随话术变化。
- 求助按钮命中 SOP 并显示引用。
- 红线话术触发纠偏,但不在训练中做逐句评分。
M3. 录音回放与复盘标注(第 5 周)
目标:训练完成后能复盘,但不做实时旁听。
功能:
- 训练中员工音频和 TTS 音频按需存 MinIO,记录
oss_id。 - 主管复盘详情展示音频回放。
- finish 后对整场 dialogue 做一次性逐句标注,输出“问题句 / 推荐改写 / 命中或漏掉的 SOP 点”。
- 标杆对话先用导师改写生成“更优示例”,不等案例库自然积累。
文件落点:
backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrPracticeSeedService.java:保存 session 时写 audio/annotation 信息。- 新增
AihrPracticeReviewService.java:生成和查询逐句标注。 AihrMobileController.java:复盘详情返回 audio 和 annotations。mobile/src/App.vue:主管复盘详情增加回放和逐句标注区。
验收:
- 完成一场训练后,主管端能打开回放。
- 逐句标注只在 finish 后生成一次,刷新不重复算分。
- 没有录音权限时仍保存文本 transcript。
M4. 画像、校准与主管派发(第 6-7 周)
目标:把训练结果变成员工成长与主管管理动作。
功能:
- 员工画像扩展为四项:训练时长、贡献度、测评分、AI 等级(BACKLOG B5;贡献度二期用人工计分入口记
incentive_point,不做自动案例沉淀)。 - 员工端画像以雷达图 + 趋势呈现单场四维分聚合(BRD 4.5 可视化口径,数据留跨期
competency_assessment的入口)。 - 主管端预警:连续低分、超期未训、分数下滑。
- 批量训练任务派发:主管按岗位/短板派发专项。
- 定向再练(#13):低分维度自动生成
source='retry'的待训任务,员工“今日安排”可见——错题本语义的最小实现。 - 人工评分校准:HR/主管可修正 AI 评分,形成校准集。
- 训练数据脱敏:入库前处理姓名、手机号、房号等明显 PII。
文件落点:
AihrMobileSeedService.java:扩展profile()聚合。AihrMobileDto.java:补画像、预警、派发 DTO。AihrMobileController.java:新增/扩展主管预警、派发接口。frontend/src/views/train/practice.vue或新增管理端页:提供人工校准入口。mobile/src/App.vue:员工画像和主管待办展示新增字段。
验收:
- 员工端能看到四项画像,不做同侪排名。
- 主管端能看到待处理预警并派发训练。
- 低分场景完成后,员工待训列表出现对应的再练任务。
- 人工修正评分后,保留原 AI 分和修正分。
- 入库文本中明显手机号/房号被脱敏。
M5. 试点收口(第 8 周)
目标:二期可进入 1-2 个住宅项目小范围试点。
验收清单:
- 生活顾问 12 条场景可用。
- 员工从“今日安排”进入训练,完成后画像和主管端同步。
- 主管能复盘、听录音、看逐句标注、派发专项。
- AI 与人工评分分档一致率用不少于 20 条样本评估,目标 ≥70%。
- 住宅类 SOP 问答人工评审可用率目标 ≥80%。
- 语音单轮响应目标 ≤5 秒;超过时有文本降级。
- 试点数据可导出:训练次数、完训率、平均分、预警数、主管复盘率。
5. 二期 API 建议
| 能力 | 接口 |
|---|---|
| 场景列表 | GET /api/train/practice/scenarios?position=&scenarioType= |
| 场景详情 | GET /api/train/practice/scenarios/{id} |
| 保存场景 | POST /api/train/practice/scenarios |
| Rubric 版本 | GET /api/train/practice/rubrics?scenarioId= |
| 训练预习卡 | GET /api/train/practice/scenarios/{id}/prep-card |
| 逐句标注 | POST /api/train/practice/sessions/{sessionId}/annotations |
| 评分校准 | POST /api/train/practice/sessions/{sessionId}/calibration |
| 主管预警 | GET /api/aihr/mobile/practice/alerts |
| 派发训练 | POST /api/aihr/mobile/practice/assignments |
| 员工待训 | GET /api/aihr/mobile/practice/assignments |
这些接口都应保留 seed fallback 或空数据兜底,但真实验收必须以数据库链路为准。
6. 内容准备清单
二期能不能推进,最大风险不是代码,是场景内容。每个场景至少准备:
| 字段 | 示例 |
|---|---|
| 岗位 | 生活顾问 |
| 场景类型 | 投诉 / 催费 / 报修 / 突发求助 |
| 业主人设 | 年龄、身份、说话风格、情绪、偏见 |
| 开场白 | “你们物业到底管不管楼上噪音?” |
| 显性诉求 | 投诉噪音 |
| 隐性诉求 | 想确认物业是否愿意持续跟进 |
| 雷点 | 被敷衍、先讲规定、推给业主自己协调 |
| 爽点 | 先共情、给首次反馈时间、明确责任人 |
| SOP 引用 | 对应知识库片段 ID |
| Rubric | 合规、沟通、情绪、营销四维权重 |
| 标杆话术 | 1 条优秀版本、1 条反例 |
7. 决策待确认
| 决策 | 推荐口径 |
|---|---|
| 二期时长 | 8 周,每两周一个可验收增量 |
| 首个岗位 | 生活顾问,四保一服后置 |
| 录音合规 | 二期只录音不录像;进入训练前给明确提示 |
| 方言/TTS | 先扩 voice_profile,不做克隆;供应商稳定后再评估克隆 |
| AI 排序 | 分发引擎 v1 用规则表,不上 AI 排序 |
| 排名 | 先做自我对比和主管预警,不做同侪排名 |
| 场景管理权限 | 场景/Rubric CRUD 归 hr_operator 与管理员;主管只派发不编场景 |
| G6 成本上限 | 试点期设 LLM/ASR/TTS 月度调用金额上限与告警阈值(具体数额由 HR 负责人与供应商账单确认);超限降级为文本对练 + 关闭逐句标注 |
8. 主要风险
| 风险 | 控制 |
|---|---|
| 内容不足 | M0 先锁 12 条生活顾问场景,内容没到位不进 M2 |
| 移动端过大 | M1 同步拆 mobile/src/App.vue 的训练/画像/主管面板,不继续堆单文件 |
| 成本失控 | 逐句标注只在 finish 后一次性做;总结卡/视频按需触发 |
| 评分争议 | 原 AI 分和人工修正分并存;AI 分不挂绩效 |
| 隐私问题 | 只做录音,不做录像;文本脱敏;音频存储权限明确 |
| 范围膨胀 | 实时旁听、原生 APP、知识图谱、纯视觉检索全部不进二期主线 |
9. 交付物
| 类型 | 交付 |
|---|---|
| 产品 | 员工端训练前卡、语音对手戏、求助、回放、画像;主管端复盘、预警、派发 |
| 后端 | 场景/Rubric/Assignment/Annotation/Calibration 数据与 API |
| 管理端 | 场景选择/轻管理、Rubric 预览、评分校准 |
| 内容 | 12 条生活顾问场景、SOP 引用、Rubric、标杆话术 |
| 验收 | 20 条评分校准样本、试点数据导出、演示脚本更新 |
10. 第一批实施任务
Task 1: 二期 DDL 与 seed
Files
- Modify:
backend/script/sql/aihr_practice_mysql8.sql - Modify:
scripts/reset-dev-db.sh - Verify:
./scripts/dev.sh --reset
Steps
- 增加
aihr_practice_scenario、aihr_practice_rubric、aihr_practice_rubric_dimension。 - 写入 12 条生活顾问场景 seed。
- reset 后确认场景表和 rubric 表有数据。
Task 2: 场景读取替换 seed
Files
- Modify:
backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/domain/AihrPracticeDto.java - Modify:
backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrPracticeSeedService.java - Modify:
backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrPracticeController.java
Steps
start优先按scenarioId读数据库场景。- 数据库无场景时回退现有 seed。
turn/finish保持当前契约不破坏前端。
Task 3: 训练前卡和求助
Files
- Modify:
frontend/src/api/aihr/practice.ts - Modify:
frontend/src/views/train/practice.vue - Modify:
mobile/src/App.vue - Reuse:
POST /api/knowledge/search
Steps
- 开始训练前展示场景预习卡。
- 训练中加“求助”入口,用场景 category/SOP 引用查知识库。
- 求助失败显示明确错误,不兜假答案。
Task 4: 动态情绪和红线纠偏
Files
- Modify:
backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrPracticeLlmService.java - Modify:
backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/domain/AihrPracticeDto.java - Modify:
frontend/src/views/train/practice.vue - Modify:
mobile/src/App.vue
Steps
- LLM turn 输出增加
emotion/trust/redFlag/coachHint。 - 前端展示情绪条和红线纠偏。
- 解析失败时回退现有 coachHint,不阻断训练。
Task 5: 回放与逐句标注
Files
- Modify:
backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSpeechService.java - Modify:
backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrPracticeSeedService.java - Modify:
backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrMobileController.java - Modify:
mobile/src/App.vue
Steps
- 对练音频写
sys_oss/MinIO 并关联 session。 - 主管复盘详情显示音频回放。
- finish 后生成逐句标注,刷新不重复生成。
Task 6: 画像与主管派发
Files
- Modify:
backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrMobileSeedService.java - Modify:
backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/domain/vo/AihrMobileDto.java - Modify:
backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrMobileController.java - Modify:
mobile/src/App.vue
Steps
- 画像补训练时长、贡献度、测评分、AI 等级。
- 主管端补预警列表。
- 主管可派发专项训练,员工端今日安排可见。
11. 二期完成定义
二期完成不是“所有缺口清零”,而是满足以下条件:
- 生活顾问岗位训练从 seed 演示变成数据库驱动。
- 员工能完成“预习 → 语音/文本训练 → 求助 → 评分 → 复盘”的闭环。
- 主管能完成“看风险 → 听回放 → 看标注 → 派专项”的闭环。
- 画像能支撑“下一步练什么”的规则分发。
- 试点所需的合规、成本、人工校准底线已经留好。