docs: sync phase 2 planning references

This commit is contained in:
2026-07-07 00:41:18 +08:00
parent 956cc0f908
commit b2b31f292b
14 changed files with 243 additions and 13 deletions
@@ -0,0 +1,452 @@
# AI 人力资源系统 · 一期 MVP 版作战清单
> 版本:v1.10 | 日期:2026-07-04
> 用途:一份纸面作战图,支撑「2026-07-05 周日出可跑 MVP 演示、2026-07-06 周一给大老板演示」,同时说清「做了什么、没做什么、为什么」。
> 收敛来源:原《物业管家与生活顾问 AI 陪练系统建设方案》+ 一期实施方案(含 ch.14/15 选型评估)+ 2026-07-01 需求讨论纪要 + 数据资源模型主题域草案。
> v1.1 变更:D1–D8 决策已定(见第 8 节),相关章节同步锁定;D9(验收标准)待定。
> v1.2 变更:新增第 9 节「周末施工排期(2026-07-03 周五 / 2026-07-04 周六 / 2026-07-05 周日 · 2 人时间盒)」。
> v1.3 变更:D9 已定,新增第 10 节「一期最小可验收承诺」。至此 D1–D9 全部闭环。
> v1.4 变更:因 MVP 进度提前,新增 D10「资料中台提前加码」和第 11 节;MinIO、OSS-first 文档上传、Excel/PPT 解析进入当前施工线,图片智能分析列入下一阶段。
> v1.5 变更:新增 D11「向量库与语义检索路线」和第 12 节;一期选 Qdrant,保留 MySQL Fulltext,制度/SOP 回答采用混合召回 + 重排序 + 引用约束。
> v1.6 变更:Qdrant 本地编排和后端最小闭环已落地;上传后尽力 upsert 向量,检索时与 MySQL Fulltext 做 RRF 融合。
> v1.7 变更:资料处理服务端目录导入已从同步导入升级为后台任务,页面可轮询进度和按同目录重试。
> v1.8 变更:补齐 D12「用户端最小闭环」和第 5.1 节;MVP 必须能从候选人/员工视角发起至少 1 条路径,用户端拆为独立 `mobile/` Web/H5 工程,但不做原生 APP。
> v1.9 变更:候选人端面试练习已复用 AI 面试 API;补充资料已从本地选择升级为 OSS + `aihr_candidate_material` 入库,默认状态为 `待审核`。
> v1.10 变更:候选资料 HR 审核流已接入管理端 AI 面试页;支持按状态查看并标记 `已通过`/`已驳回`,候选人端刷新可见新状态。
---
## 0. 一页速览(TL;DR)
- **系统定位**:面向物业一线的「**选 · 用 · 育 · 留**」全生命周期 **AI 人力资源系统**(HR 老大提出、给大老板汇报)。原「AI 陪练」只是其中「育/用」一个模块。
- **死线**:2026-07-05 周日出可演示 MVP,2026-07-06 周一演示。团队约 2 人,时间极紧。
- **六条核心决议**:
1. **基座 = 若依(RuoYi)**,非 aifei / PandaWiki / JeecgBoot / Yuxi;集中式前后端分离,非微服务。
2. **数据模型 = 复用 Silverston《数据模型资源手册》卷1 HR 主干**(Party-Role 分离 + Product 目录承载 SOP 分层)。
3. **组织/人员/登录复用外部系统**,本系统只做「消费 + 扩展」,不当主数据源头。
4. **资料中台提前加码**:已知业务资料约 3GB,包含 PPT/图片/Excel/Word/PDF;一期不再只演示 seed SOP,要先把 MinIO + 文档入库 + 解析状态打底。
5. **语义检索路线 = MySQL Fulltext + Qdrant + rerank**:MySQL/MinIO 仍是事实源,Qdrant 只做向量索引;制度/SOP 必须混合召回、重排序、带引用回答。
6. **用户端必须显式进入 MVP**:管理端负责配置/审核/看结果;用户端负责候选人作答、员工对练、SOP 问答、案例上传。MVP 用独立 `mobile/` Web/H5 轻入口,不做原生 APP。
- **头号风险**:从单纯「范围失控」升级为**用户端缺口、资料规模、解析质量、异步任务稳定性、语义检索准确率和引用一致性**。MVP 仍守住第 5 节切割线,资料中台按第 11/12 节分片推进。
---
## 1. 定位与范围决议
**定位**:物业行业「选用育留」全生命周期 AI 人力资源系统。
| 生命周期段 | 覆盖能力 | 一期状态 |
|---|---|---|
| **选**(招聘) | AI 面试出题、候选人现场作答、AI 打分、面试记录 | 一期新增(原方案没有) |
| **用**(配置上岗) | 岗位 SOP 匹配、岗前/入职培训、上岗资格 | 一期 |
| **育**(训练) | 三角色对练、每日一练、专项训练营、错题本、师徒、案例学习 | 一期核心(原陪练主体) |
| **留**(保留发展) | 能力雷达图、认证等级、晋升/绩效关联、荣誉激励 | 一期建规则,挂钩推迟 |
| **案例沉淀**(贯穿) | 语音上传 → AI 整理 → 筛选 → AI 对话视频 | 一期(视频用样片) |
**明确移出一期范围(已定)**:
- 内容营销中心(原第七章):属营销/获客,与 HR 无关 → ✅ **一期砍除**(D5)。
- 独立语音 APP(豆包式):愿景,非交付物 → ✅ **MVP 用 Web**,APP 进二期(D6)。
- 双图谱知识图谱(Neo4j):冷启动成本高 → ✅ **一期先 RAG**,图谱降级二期(D4)。
---
## 2. 技术选型决议
**基座:若依(RuoYi)** — 前后端分离(Vue + Java / Spring Boot 4)、内置 RBAC + RAG 知识库 + 后台、社区成熟、无许可证风险、可与采购系统用户体系对齐。
**为什么不是其它候选(一句话留档)**:
| 候选 | 结论 | 一句话理由 |
|---|---|---|
| **aifei** | ✗ 不采用 | AI Coding 框架,只优化「怎么写代码」,不提供任何现成模块;84 star、文档不全、企业实现走 VIP 付费(与枪毙 PandaWiki 同款风险);违背刚敲定的若依决策与采购系统复用约束。 |
| PandaWiki | ✗ | 半开源、后续强制收费风险。 |
| JeecgBoot | ✗ | 代码生成集成度过高、二次修改难。 |
| Yuxi(玉溪) | 参考 | 仅二期借鉴其 Agent 能力,不做基座。 |
**架构**:集中式部署 + 前后端分离(非微服务)。理由:2 人小团队、无高并发、微服务开发协作成本高。
**必须自建(无任何框架可复用)**:三角色状态机(AI 客户/教练/考官)、评分引擎(情感+语义+SOP 关键点+Rubric)、方言 ASR 接入。这是一期真正的工程瓶颈。
**aifei 的可取之处(留作方法论,非选型)**:它的「数据模型越干净 → AI 生成越稳」这一洞察,反向强化了本项目「先把数据模型做扎实」的优先级。
---
## 3. 数据模型方向(选用育留 HR 主干)
**原则**:不发明表结构,抬 Silverston 通用企业模型的 HR 主干;通用主干优先,行业扩展后挂;主数据/事务/计量/治理分层建模。
**四段 × 核心实体(来自手册卷1 HR 章 + 通用主干)**:
| 段 | 核心实体(Silverston) | 落地对象 |
|---|---|---|
| 选 | `JOB APPLICATION`、`POSITION` | 招聘需求、职位、候选人、面试记录、offer |
| 用 | `POSITION`、`EMPLOYMENT`、`PRODUCT CATEGORY` | 岗位-SOP 映射、上岗资格 |
| 育 | `WORK EFFORT`、`ACTIVITY` | 训练/考核任务、对练记录、错题、学习路径 |
| 留 | `SKILL`、`QUALIFICATION` | 能力评估、认证等级、晋升规则 |
| 贯穿 | `PARTY` / `PARTY ROLE` | 主体与角色(见第 4 节同步边界) |
**两条关键建模决定**:
- **Party-Role 分离**:一个人在全生命周期里依次/同时是候选人→新员工→学员→师父→考官,用 Party + Role,不为每种身份建表。
- **SOP 用 Product-Category 层级 + Applicability 承载**:大类/中类/小类/行业 × 住宅/公建/景区。MVP 只填住宅类,其余预留结构。
- **关系库 vs 向量库切分**:元数据/权限/版本/正文片段事实源落 MySQL,原始文件落 MinIO,Qdrant 只存向量索引与最小 payload;MySQL Fulltext 保留做精确关键词召回。
---
## 4. 主数据同步边界(外部同步 vs 本地自有)
**「复用采购系统用户体系」= 三件独立的事,别混为一谈**:
| 事项 | 含义 | MVP 处置 |
|---|---|---|
| ① 认证 / SSO | 用户怎么登录本系统 | ✅ 已定(D2):**本地账号**登录;SSO 留二期对接项 |
| ② 权限映射 | 外部岗位/组织 → 本地角色 | 本地建映射表 |
| ③ 主数据同步 | 组织架构 + 人员基础信息 | 导静态快照兜底 |
**同步边界表(只读消费 vs 本地自有)**:
| 实体 | 归属 | 读写 |
|---|---|---|
| PARTY / PERSON / ORGANIZATION / 组织树 | 外部同步 | 只读 |
| POSITION / EMPLOYMENT / 任职 | 外部同步 | 只读 |
| PARTY ROLE(学员/师父/教练/考官/审核员/管理员) | 本地自有 | 读写 |
| 权限映射(外部岗位/组织 → 本地角色) | 本地自有 | 读写 |
| SKILL / QUALIFICATION(能力/认证) | 本地自有 | 读写 |
| JOB APPLICATION / 候选人 | 本地自有 | 读写 |
| WORK EFFORT(训练/考核/案例记录) | 本地自有 | 读写 |
**三条硬约束**:
- 本地只存外部 `party_id`,**绝不复制姓名/部门**;所有业务表只引用 ID。
- **候选人是例外**:未入职者不在外部系统,先本地建 Party,入职后与同步员工 Party 挂钩。
- 调岗/离职用 `FROM DATE / THRU DATE` 有效期承接,不物理删除,保历史可追溯。
---
## 5. MVP 三分切割线(核心作战图)⭐
> 规则:**2026-07-05 MVP 演示只做「英雄路径 + 壳」,其余明确归入一期或推迟。任何超出「2026-07-05 MVP 演示」列的东西,在冲刺期即刻砍掉。**
### 🔴 2026-07-05 MVP 演示必做(阻塞项)
| # | 事项 | 交付标准 |
|---|---|---|
| 1 | 核心陪练英雄路径 | 砍出 1–2 条**端到端跑通**(建议:语音面试→AI出题→答→打分;案例语音上传→AI整理成稿) |
| 2 | 住宅类内容冷启动 | 至少 1 份真实 SOP + 若干样例案例 + 1 套评分 Rubric(2026-07-03 基础日确认谁给料) |
| 3 | 组织/人员快照 | 导入静态快照或 mock 同步适配层(不依赖实时 API) |
| 4 | 案例→视频 | 用 1 段预渲染样片演示流程,不真跑视频生成 |
| 5 | 登录 | 本地账号可登入,SSO 标为「对接项」 |
| 6 | 大模型接入 | 公有云 API 先行(合规问题入闸门) |
| 7 | 方言语音 | 选 1 家 ASR/TTS 厂商,跑通 1 条语音路径 |
| 8 | 演示脚本 | 一页故事线:点开顺序 + 每屏一句价值(服务于 HR 老大邀功叙事) |
| 9 | 前端壳 | 全功能点可点开(AI 出图 + 若依脚手架批量生成),英雄路径精做 |
| 10 | 用户端轻入口 | 独立 `mobile/` Web/H5 工程提供候选人/员工/主管入口;演示时至少从用户端完成 1 条路径,管理端只负责配置和看结果 |
### 5.1 用户端最小切割线(新增 D12)
> 结论:没有用户端,MVP 会变成 HR 后台管理系统,无法证明一线员工/候选人真的能用。用户端要补,并拆成独立 `mobile/` Web/H5 工程,但不新建原生 APP。
| 端/角色 | 2026-07-05 MVP 演示必做 | 一期内补 | 明确推迟 |
|---|---|---|---|
| 管理端(HR/管理员/教练) | 配置内容、查看记录、查看评分/处理状态 | Rubric 配置、任务分派、审核流 | 多组织复杂工作流 |
| 候选人端 | 打开面试入口 → 听/看题 → 作答 → 提交 → 生成面试记录 | 面试邀请、历史记录、人工复核状态 | 外部招聘系统深度集成 |
| 员工/学员端 | 打开今日任务 → 三角色对练 / SOP 问答 / 案例上传 至少跑通 1 条 | 学习路径、错题本、能力雷达、认证进度 | 原生 APP、企微/钉钉深度集成、消息推送 |
**实现边界**:
- 用户端使用独立 `mobile/` Vue/Vite Web/H5 工程,与管理端 `frontend/` 分离;MVP 不做原生 APP。
- MVP 用户端走手机号短信登录;新手机号验证码通过后自动注册为 `app_user`。演示脚本必须从「用户端发起 → 管理端看结果」走一遍。
- 当前员工端已用“投诉接待三角色对练”跑通移动端训练闭环:两轮提交后自动评分,记录落 `aihr_practice_session`,并同步更新主管端完训人数、待复盘列表、复盘详情、标记已复盘状态和员工能力画像。
- 当前候选人端已用“开始面试/面试练习”复用 AI 面试 API;“补充资料”已接认证上传接口,文件写 `sys_oss`/MinIO,关系写 `aihr_candidate_material`,HR 可在管理端 `/recruit/interview` 审核为 `待审核`/`已通过`/`已驳回`,候选人端刷新可见状态。
- 用户端只做「能完成任务」,不做复杂个人中心、社交、积分商城。
### 🟡 一期内做(MVP 演示后)
数据地基:补全 HR 主干实体(#10)、关系/向量切分(#11)、招聘域(#12)、SOP 多层分类(#13)、Rubric 可配置(#14)、版本管理(#15)、ID 规约(#16)、数据范围字段(#17)、训练事务+学习路径(#18)。
能力与运营:LLM/ASR/视频运营成本测算(#23)、内容贡献激励+署名(#25)、Agent 落点标注(#33)、认证/晋升/绩效规则引擎(#34)。
### ⚪ 明确推迟(现在不做)
内容营销中心、原生 APP、知识图谱、实时同步、企业微信/钉钉深度集成、脱敏审计、AI 分数挂钩绩效/晋升 —— 均见第 7 节闸门或第 8 节决策。
---
## 6. 集成依赖兜底表(6 个,各指定负责人)
| # | 外部依赖 | 风险 | 兜底方案 | 负责人 |
|---|---|---|---|---|
| 1 | 组织/人员数据同步(采购系统) | 接口疑似与待批预算系统绑定,未就绪 | 静态快照 | ___ |
| 2 | 登录 SSO / 身份认证(采购系统) | 同上 | 本地账号 | ___ |
| 3 | 权限映射(外部→本地角色) | 依赖①的数据结构 | 本地先建规则 | ___ |
| 4 | 方言 ASR / TTS(第三方) | 厂商/延迟/川粤支持/计费未确认 | 选 1 家跑 1 条路径 | ___ |
| 5 | 大模型 API | 选型 + 业主 PII 出境合规 | 公有云 API 先行 | ___ |
| 6 | 数字人 / 视频生成 | 慢、贵 | 预渲染样片 | ___ |
---
## 7. 生产前闸门清单(现在不做,立字据,上线前必过)
| # | 闸门项 | 说明 |
|---|---|---|
| G1 | AI 打分定位 | 明确「辅助参考、人可否决」,不由 AI 直接决定绩效/晋升 |
| G2 | AI 招聘合规 | 候选人算法筛选保留人工复核,防算法歧视/法律风险 |
| G3 | 数据合规 | 业主 PII + 员工数据 脱敏 + 审计 + 数据权限(DR-10 承接) |
| G4 | 员工接受度 | 试点期配激励 + 沟通,化解「被 AI 监考」抵触 |
| G5 | 情绪树洞隐私 | 兑现「不留痕、不进训练集」,明确隐私边界 |
| G6 | 运营成本红线 | LLM/ASR/视频 月度调用成本设预算上限与降级策略 |
---
## 8. 决策项(D1–D12 已定)
| # | 决策项 | 决策结果 | 状态 |
|---|---|---|---|
| D1 | 系统/数据归属 | **归属项目**(以项目为 owner 与数据范围主体) | ✅ 已定 |
| D2 | 登录方式 | **本地账号**(SSO 留二期) | ✅ 已定 |
| D3 | 大模型选型 | **公有大模型 API**(出境合规入闸门 G3/G6) | ✅ 已定 |
| D4 | 知识图谱一期是否上 | **一期先 RAG**,图谱降二期 | ✅ 已定 |
| D5 | 内容营销中心去留 | **一期砍除** | ✅ 已定 |
| D6 | 原生 APP | **用独立 mobile/ Web/H5**,原生 APP 进二期 | ✅ 已定 |
| D7 | 老文档 vs 新 HR 框架口径 | **综合统一成新的一版**(见下方跟进项 F1) | ✅ 已定 |
| D8 | 企微/钉钉/工单集成深度 | **只列接口、不实现** | ✅ 已定 |
| D9 | 一期验收标准 / 量化承诺 | **最小可验收承诺已定**(见第 10 节;C3 一致率 70%、试点 1–2 项目) | ✅ 已定 |
| D10 | 资料中台是否提前建设 | **提前建设 MinIO + OSS-first 文档入库**;PDF/Word/Excel/PPT 先抽文本,图片智能分析进下一阶段 | ✅ 已定 |
| D11 | 向量数据库与语义检索路线 | **一期选 Qdrant**;MySQL Fulltext 保留,制度/SOP 采用关键词 + 向量混合召回、rerank、引用约束;Milvus/Weaviate/pgvector 暂缓 | ✅ 已定 |
| D12 | 用户端是否进入一期 | **必须进入**;MVP 用独立 `mobile/` Web/H5 轻入口,候选人/员工至少能发起 1 条英雄路径;原生 APP 和企微/钉钉深度集成推迟 | ✅ 已定 |
**由决策派生的跟进项**:
- **F1(源自 D7)**:综合原《建设方案》+ 一期实施方案 + 本清单,产出**统一新版对外方案**(口径:选用育留 AI 人力资源系统)。
- **F2(源自 D1)**:「归属项目」意味着数据权限以**项目为范围主体**——第 4 节同步边界、第二层 #17 数据范围字段,均按「项目级行权限」落地。
- **F3(源自 D3)**:公有大模型已定 → 业主 PII 出境是硬约束,闸门 **G3/G6** 升为一期必须评估项,不能纯推迟。
- **F4(源自 D12)**:演示脚本必须区分「用户端完成任务」和「管理端查看/审核」,否则系统价值会被误解成后台台账。
---
## 9. 周末施工排期(2026-07-03 / 2026-07-04 / 2026-07-05 · 2 人时间盒)
> 把第 5 节 🔴 2026-07-05 MVP 演示 10 项拆成两人施工单。**铁律:2026-07-05 不加新功能,只联调 + 精修 + 彩排。**
**分工**:
- **A = 技术**(若依骨架 / 后端 / 大模型 & 语音集成 / 评分逻辑)
- **B = 业务+前端**(SOP 内容 / Rubric / 案例样片 / UI 出图审校 / 快照造数 / 演示脚本)
### 2026-07-03 周五 · 基础日(把地基和素材备齐)
| 负责人 | 任务 | 对应项 |
|---|---|---|
| A | 若依骨架跑起来 + 本地账号登录 | #9骨架 #5 |
| A | 公有大模型 API 接通(一个能调通的对话接口) | #6 |
| A | 方言 ASR/TTS 选 1 家、接通、能出字 | #7 |
| B | 住宅类 SOP + 样例案例 + 评分 Rubric **定稿** | #2 |
| B | 组织/人员静态快照造数(或 mock 适配层) | #3 |
| B | 列全功能点清单 + 汇总 UI 出图需求;补齐候选人/员工用户端入口口径 | #9 #10准备 |
| **2026-07-03 收工验收** | 能登录 · 能调通大模型 · ASR 能出字 · 内容素材齐 · 功能点清单和用户端入口定稿 | |
### 2026-07-04 周六 · 主攻日(英雄路径 + 壳)
| 负责人 | 任务 | 对应项 |
|---|---|---|
| A | 英雄路径①后端:语音面试→AI 出题→答→打分(评分接 Rubric) | #1 |
| A | 英雄路径②后端:案例语音上传→转写→AI 整理成稿 | #1 |
| B | AI 出图 → 管理端 + 用户端前端壳批量搭(全功能点可点开) | #9 #10 |
| B | 案例→视频 样片预渲染 1 段 | #4 |
| B | 演示脚本初稿(点开顺序 + 每屏一句价值) | #8 |
| **2026-07-04 收工验收** | 2 条英雄路径后端可跑通(接口级) · 管理端/用户端壳全部可点开 · 样片就绪 · 脚本初稿 | |
### 2026-07-05 周日 · 联调彩排日(不加新功能)
| 负责人 | 任务 | 对应项 |
|---|---|---|
| A+B | 英雄路径前后端联调 + 精修 | #1 #9 |
| A+B | 用户端发起 → 管理端看结果 联调 | #10 |
| A+B | 兜底预案:每条英雄路径录一段屏,防现场翻车 | 全 |
| B | 演示脚本定稿 + 彩排 2 遍 + 卡点预案 | #8 |
| **2026-07-05 收工验收** | 端到端走一遍无致命卡点 · 有录屏兜底 · 彩排通过 | |
### 关键路径与止损
- **关键路径**:内容(#2)→ 英雄路径(#1)→ 联调。**内容不齐,一切空转**——B 在 2026-07-03 必须锁死 #2。
- **外部依赖兜底(呼应第 6 节)**:ASR / 大模型 / 视频 任一没接通,**立即切兜底**(mock / 录屏 / 样片),绝不卡主线。
- **如果落后**:保 **1 条**英雄路径 + 壳 + 脚本,**砍掉第 2 条**英雄路径。宁可少演一条、也要演通一条。
---
## 10. 一期最小可验收承诺(D9)
> 原则:验收只写**可判定**的东西——「是/否」或「可测量」。原方案的大 ROI 数字归入**愿景层,不作验收依据**。
### L0 · MVP 演示验收(2026-07-06 周一 · 过大老板)—— 全部「是/否」
| # | 验收项 | 通过标准 |
|---|---|---|
| L0-1 | 功能完整性 | 全部规划功能点在 Web 端**可点开、有界面**(壳可接受) |
| L0-2 | 英雄路径 | **至少 1 条**端到端真跑通(语音面试→AI 出题→作答→AI 出分+建议) |
| L0-3 | 知识库 | 住宅类 SOP 可检索,AI 问答能**引用 SOP 内容** |
| L0-4 | 案例流程 | 案例语音上传→AI 转写整理 可演示(视频用样片顶) |
| L0-5 | 演示鲁棒性 | 脚本走完**无致命卡点**,每条路径**有录屏兜底** |
| L0-6 | 用户端闭环 | 候选人/员工 Web 入口可打开,至少 1 条路径从用户端发起并在管理端看到结果/状态 |
### L1 · 一期验收(阶段交付 · 项目可收尾)
**A. 功能闭环(是/否)**
| # | 验收项 | 通过标准 |
|---|---|---|
| A0 用户端 | 候选人/员工/学员可登录或通过演示入口完成任务、训练、SOP 问答/案例提交;管理端可查看结果 |
| A1 选 | AI 面试出题 + 作答 + AI 打分,形成面试记录,闭环可用 |
| A2 用 | 住宅类岗位-SOP 匹配 + 岗前/入职培训任务 可分派、可完成 |
| A3 育 | 三角色对练**至少 1 类场景**(投诉或催费)端到端;每日一练可推送可评分 |
| A4 留 | 能力雷达图基于训练数据生成;认证等级规则可配置 |
| A5 案例 | 语音上传→AI 整理→筛选 流程跑通(视频可半自动/样片) |
**B. 数据与内容(是/否 + 量)**
| # | 验收项 | 标准 |
|---|---|---|
| B1 | 住宅类 SOP 入库、可检索、可引用 | ≥ 5 个核心流程(投诉/催费/报修/交付/巡检) |
| B2 | 案例库(脱敏) | ≥ 20 条 |
| B3 | 评分 Rubric 可配置(维度/权重/指标后台可改) | 是 |
| B4 | 组织/人员导入 + **项目级数据范围**权限生效 | 是 |
**C. 技术与质量(可测量)**
| # | 验收项 | 标准 |
|---|---|---|
| C1 | 集中式前后端分离部署,单项目试点稳定运行 | 是 |
| C2 | 语音对练单轮响应(ASR+LLM+评分) | ≤ 5 秒 |
| C3 | AI 打分与人工打分**分档一致率** | **≥ 70%** |
| C4 | RAG 对住宅类 SOP 问题**可用回答率**(人工评审) | ≥ 80% |
| — | 明确**不承诺**:高并发、多项目类型 | — |
**D. 试点效果(pilot 级过程指标,非业务 ROI)**
| # | 验收项 | 标准 |
|---|---|---|
| D1 | 试点范围 | **1–2 个住宅项目**,≥ 20 名员工 |
| D2 | 人均完成对练/考核 | ≥ 10 次 |
| D3 | 完训率 | ≥ 80% |
| D4 | 试点满意度 | ≥ 4 / 5 |
### 明确不纳入一期验收(移交二期 / 生产闸门)
- **合规上线**(脱敏/审计/业主 PII 出境评估)= 生产前闸门 **G3/G6**
- **AI 分数挂钩绩效/晋升/招聘决策** = 推迟(**G1/G2**),一期只做「辅助参考」
- 知识图谱、原生 APP、内容营销中心、多项目类型(公建/景区)、企微/钉钉深度集成、实时同步
### 愿景层(方向性目标,**不作为一期验收依据**)
> 培训周期↓、成本↓、投诉处理时效↑、增值转化↑、关键岗位流失↓ —— 均为方向性愿景,需更长周期与真实业务数据验证,一期不承诺、不验收。
---
## 11. 提前加码:资料中台施工线(v1.5)
> 背景:MVP 进度快于原计划,且已知业务资料约 3GB,包含 PPT、图片、Excel、Word、PDF。知识库不再只服务 SOP seed,而是要成为后续 RAG、文档解析、案例沉淀和 Chat 的公共入口。
### 11.1 当前立刻做(L0+)
| # | 事项 | 交付标准 |
|---|---|---|
| M1 | MinIO 本地对象存储 | `./scripts/dev.sh` 和 `--reset` 自动启动 MinIO,默认 bucket `ruoyi` 可用 |
| M2 | OSS-first 文档上传 | 知识库上传先落 `sys_oss`,再绑定 `aihr_knowledge_attach.oss_id`,同名文档替换旧片段 |
| M3 | 文档解析扩展 | 在现有 Tika 解析基础上支持 txt/md/PDF/Word/Excel/PPT 文本抽取 |
| M4 | MVP 页面反馈 | 上传后在 SOP 知识库展示 OSS ID、片段数、状态,可立即检索命中 |
### 11.2 下一阶段(P1)
| # | 事项 | 处理 |
|---|---|---|
| M5 | 解析任务状态页 | 已接 `/knowledge/processing` 和 `GET /api/knowledge/processing/overview`;展示等待解析/解析中/已完成/失败、片段数、向量化状态、处理链路和事件列表 |
| M6 | 3GB 资料批量导入 | 页面已支持多文件/浏览器目录选择批量导入 MVP 样例文件;已接 `POST /api/knowledge/doc/import-local-task` 从服务端导入根目录启动后台任务,并用 `GET /api/knowledge/doc/import-tasks` 轮询进度;运行中任务可取消;当前重试粒度是同目录重跑,单失败文件重试/暂停仍待做 |
| M7 | 图片智能分析 | 图片先落 OSS,再用视觉模型/OCR 生成结构化描述入库;不伪装成普通文本解析 |
| M8 | Qdrant 向量召回 | 已接 `qdrant` 本地服务;以 `aihr_knowledge_fragment` 为事实源 upsert 向量,与 MySQL Fulltext 双路召回后做 RRF 融合 |
| M9 | 制度/SOP 精确回答 | 检索必须带租户/项目/分类/版本/生效日期过滤,回答必须引用片段;低置信不编造 |
### 11.3 明确不做
- 不整包迁移 `ruoyi-chat`;只迁 `ruoyi-aihr` 当前需要的 loader、任务和检索能力。
- 不把 3GB 资料通过浏览器单次上传解决;浏览器上传只服务 MVP 和少量验证文件。
- 不把图片智能分析做成假 OCR;没有视觉模型/OCR 结果就先标为待处理。
---
## 12. 向量库与语义检索路线(v1.5)
> 结论:一期选 Qdrant。它只做向量索引,不替代 MySQL/MinIO;准确回答靠混合检索、重排序和引用约束,不是靠单一向量相似度。
### 12.1 选型结论
| 候选 | 结论 | 用法 |
|---|---|---|
| Qdrant | ✅ 一期采用 | 本地 Docker + dense vector + payload filter;后续可扩 sparse/hybrid |
| Milvus | 暂缓 | 大规模、高并发、集群化后再评估;当前运维成本偏重 |
| Weaviate | 暂缓 | 功能完整但平台边界更重;当前不需要整套知识库平台 |
| pgvector | 暂缓 | 本项目主库是 MySQL,不为向量单独引入 PostgreSQL |
### 12.2 存储边界
| 层 | 存什么 | 不存什么 |
|---|---|---|
| MySQL | 知识库、附件、片段、权限、分类、版本、生效日期、解析状态 | 大文件二进制 |
| MinIO | PDF/Word/Excel/PPT/图片/音频等原始文件 | 业务权限判断 |
| Qdrant | 向量、`fragmentId`、最小过滤 payload | 全文正文、权限主数据 |
**Qdrant payload 最小字段**:`tenantId`、`projectId`、`knowledgeId`、`docId`、`fragmentId`、`category`、`docType`、`version`、`effectiveDate`、`sourcePage/sourceSlide/sourceSheet`、`chunkHash`。
### 12.3 检索与回答流程
```mermaid
flowchart LR
Q["用户问题"] --> S["意图与范围识别"]
S --> K["MySQL Fulltext TopK"]
S --> V["Qdrant Vector TopK"]
K --> F["RRF 融合"]
V --> F
F --> R["rerank 重排序"]
R --> A["带引用回答"]
R --> L["低置信拒答/提示补资料"]
```
**制度/SOP 问答硬规则**:
- 先过滤租户、项目、知识库分类、版本、生效日期,再召回。
- 关键词召回用于条款编号、岗位名、制度名、流程节点等精确命中;向量召回用于同义表达和场景化问题。
- 输出必须带来源引用,至少包含文档名 + 页码/幻灯片/Sheet/片段编号。
- 召回片段冲突时,优先新版本和生效日期更近的制度;仍冲突则提示人工确认。
- 低置信或无来源时不编造答案,返回“未找到可引用依据”。
### 12.4 切片规则
| 资料类型 | 切片原则 | 重点元数据 |
|---|---|---|
| 制度/规章 | 按章/条/款/项切,保留编号和上下级标题 | 制度名、版本、生效日期、条款号 |
| SOP | 按步骤、责任人、时限、输入输出切 | 岗位、项目类型、流程节点 |
| Excel | 按 Sheet + 表格区域 + 行摘要切 | Sheet、表头、行号、业务字段 |
| PPT | 按页切,标题 + 正文 + 备注合并 | 页码、标题、备注 |
| Word/PDF | 优先按标题层级切,否则按段落窗口切 | 页码、标题路径 |
| 图片 | 先 OCR/视觉描述,再按图片说明切 | 图片来源、OCR 置信度、视觉模型版本 |
| 案例/对练 | 按场景、轮次、评分点切 | 场景、角色、评分维度 |
### 12.5 一期验收口径
| 项 | 标准 |
|---|---|
| 入库 | PDF/Word/Excel/PPT 可入 MinIO,解析后生成片段 |
| 检索 | MySQL Fulltext + Qdrant 双路召回可跑通 |
| 回答 | SOP/制度类回答必须展示引用来源 |
| 准确率 | 住宅类 SOP 问答人工评审可用率 ≥ 80%(承接第 10 节 C4) |
| 可追溯 | 每个答案能追到 `fragmentId` 和原始附件 |
---
## 附录 A:35 条完整查漏登记(可追溯)
**第一层(MVP 演示阻塞)**:1 陪练英雄路径 · 2 内容冷启动 · 3 组织API未就绪 · 4 案例视频过重 · 5 登录/认证未定 · 6 大模型+出境合规 · 7 方言厂商未定 · 8 演示脚本 · 9 UI壳工作量 · 35 用户端入口缺口
**第二层(数据模型地基)**:10 HR主干抽全 · 11 关系/向量切分 · 12 招聘域空白 · 13 SOP多层分类 · 14 Rubric数据结构 · 15 版本管理 · 16 ID/主键策略 · 17 数据权限字段 · 18 训练事务+学习路径 · 19 知识图谱去留
**第三层(生产前闸门+组织风险)**:20 AI分挂钩绩效 · 21 AI招聘合规 · 22 业主/员工数据合规 · 23 运营成本模型 · 24 员工接受度/变革管理 · 25 内容贡献激励+署名 · 26 情绪树洞隐私 · 27 系统/数据归属
**第四层(范围边界+交付一致性)**:28 营销中心去留 · 29 独立APP · 30 老文档一致性债务 · 31 企微/钉钉/工单集成清单 · 32 一期验收标准 · 33 玉溪Agent落点 · 34 认证/晋升/绩效规则引擎
---
## 附录 B:一句话结论
> 现在真正的头号风险不是选型(若依已够),也不是要不要 aifei(不用),而是「用户端缺口」「MVP 范围」和「3GB 业务资料接入」三条线互相拖累。守住第 5 节的三分切割线,按第 5.1 节让用户端只做轻入口,同时按第 11 节把 MinIO、文档解析和批量导入拆开推进,按第 12 节把 Qdrant 作为向量索引而非事实源,才能既演得通、又不把资料中台做成临时脚本。