123 lines
6.7 KiB
Markdown
123 lines
6.7 KiB
Markdown
# 物业AI人力资源系统 MVP 本地启动
|
||
|
||
## 当前仓库
|
||
|
||
- 后端:`backend`,来自 `dromara/RuoYi-Vue-Plus` 的 `5.X` 分支
|
||
- 管理端前端:`frontend`,来自 `CrazyLionCat/plus-ui` 的 `5.X` 分支
|
||
- 移动端前端:`mobile`,独立 Vue/Vite 工程
|
||
|
||
## 本地端口
|
||
|
||
- 管理端前端:`http://127.0.0.1:5173/`
|
||
- 移动端前端:`http://127.0.0.1:5174/h5/user`
|
||
- 后端:`http://127.0.0.1:8080/`
|
||
- MySQL:`127.0.0.1:13306`,数据库 `ry-vue`,账号 `root/root`
|
||
- Redis:`127.0.0.1:16379`,密码 `ruoyi123`
|
||
- MinIO API:`http://127.0.0.1:9000`,Console:`http://127.0.0.1:9001`,账号 `ruoyi / ruoyi123`,默认 bucket `ruoyi`
|
||
- Qdrant REST:`http://127.0.0.1:6333`,默认 collection `aihr_knowledge`
|
||
- 服务端资料导入根目录:`./.data/import`
|
||
|
||
Qdrant 默认本地无需配置;远端或自定义 collection 可用 `AIHR_QDRANT_URL`、`AIHR_QDRANT_COLLECTION`、`AIHR_QDRANT_API_KEY` 覆盖。服务端资料导入根目录可用 `AIHR_IMPORT_ROOT` 或 `-Daihr.import.root` 覆盖。移动端手机号登录的短信模板 ID、阿里云 AccessKey、Secret 和短信签名都通过环境变量注入;本地放根目录 `.env.local`,`scripts/dev-backend.sh` 会自动加载。
|
||
|
||
本地 `.env.local` 示例:
|
||
|
||
```bash
|
||
AIHR_SMS_LOGIN_TEMPLATE_ID=SMS_xxxxxx
|
||
ALIYUN_SMS_ACCESS_KEY_ID=xxx
|
||
ALIYUN_SMS_ACCESS_KEY_SECRET=xxx
|
||
ALIYUN_SMS_SIGN_NAME=物业AI助手
|
||
```
|
||
|
||
`application-dev.yml` 只保留占位和默认值,不提交真实短信密钥。
|
||
|
||
## 启动步骤
|
||
|
||
在项目根目录执行:
|
||
|
||
```bash
|
||
./scripts/dev.sh
|
||
```
|
||
|
||
首次启动或需要重建本地 `ry-vue` MVP 数据库时执行:
|
||
|
||
```bash
|
||
./scripts/dev.sh --reset
|
||
```
|
||
|
||
`--reset` 会删除并重建本地 MVP 数据库,只用于本地开发环境。
|
||
|
||
## 默认登录
|
||
|
||
- 租户:`000000`
|
||
- 管理员:`admin / admin123`
|
||
- 测试账号:`test / 666666`、`test1 / 666666`
|
||
|
||
## 品牌资源
|
||
|
||
- 页面标题:`物业AI人力资源系统`
|
||
- 侧栏 Logo:`frontend/src/assets/logo/logo.png`
|
||
|
||
## 已验证的基础链路
|
||
|
||
- MySQL、Redis 与 MinIO 容器健康检查通过
|
||
- Qdrant 容器随本地开发编排启动,供 SOP 知识库向量召回使用
|
||
- `ry_vue_5.X.sql`、`ry_job.sql`、`ry_workflow.sql` 已导入
|
||
- `aihr_knowledge_mysql8.sql`、`aihr_model_mysql8.sql` 已导入;本地库含住宅 SOP seed 片段与模型配置表
|
||
- `aihr_practice_mysql8.sql` 已导入;移动端员工训练记录落 `aihr_practice_session`,用于训练历史、主管待复盘列表和能力画像聚合
|
||
- SOP 知识库支持 `.txt/.md/.markdown/.pdf/.doc/.docx/.xls/.xlsx/.ppt/.pptx` 上传到 MinIO 后解析入库,接口为 `POST /api/knowledge/doc/upload`,单文件上限 100MB
|
||
- 服务端目录导入接口为 `POST /api/knowledge/doc/import-local-task`,只读取导入根目录下的相对目录,后台逐文件复用同一上传解析链路;`POST /api/knowledge/doc/import-local` 保留为同步调试接口。
|
||
- 启用 `aihr_model_config.category='vector'` 的模型配置后,上传会同步写入片段 embedding,并尽力 upsert 到 Qdrant;模型配置页可查看 Qdrant 维度、点数和片段向量数,并在维度不一致时重建索引;未配置或 Qdrant 不可用时只走 MySQL Fulltext/seed fallback,不影响检索。
|
||
- 后端 `ruoyi-admin` 已完成 Maven 打包并启动在 `8080`
|
||
- 前端依赖已安装,Vite 已启动在 `5173`
|
||
- 移动端依赖已安装,Vite 已启动在 `5174`
|
||
- 移动端手机号登录页已接 `/resource/sms/code` 与 `/auth/mobile/sms-login`;未配置真实 `ALIYUN_SMS_ACCESS_KEY_ID`、`ALIYUN_SMS_ACCESS_KEY_SECRET`、`ALIYUN_SMS_SIGN_NAME`、`AIHR_SMS_LOGIN_TEMPLATE_ID` 时不会发送阿里云短信;手机号不存在时会自动注册为 `app_user`
|
||
- 移动端员工端“开始训练”已复用 `/api/train/practice/start`、`/turn`、`/finish`;移动端请求需带登录返回的 `Authorization` 与 `clientid`;完成后主管端完训人数、“待复盘对练”计数、复盘列表、复盘详情、员工训练历史和能力画像会变化
|
||
- `/dev-api/auth/tenant/list` 与 `/dev-api/auth/code` 已通过前端代理返回 `200`
|
||
- `000000 / admin / admin123` 已通过真实加密登录接口返回 `access_token`
|
||
|
||
Qdrant 单独检查:
|
||
|
||
```bash
|
||
curl -fsS http://127.0.0.1:6333/
|
||
```
|
||
|
||
登录后可检查向量索引状态:
|
||
|
||
```bash
|
||
TOKEN=<登录后 access_token>
|
||
curl -fsS http://127.0.0.1:8080/api/knowledge/doc/vector-index-status -H "Authorization: Bearer $TOKEN"
|
||
```
|
||
|
||
## MVP 页面验证
|
||
|
||
登录后侧栏应只展示以下入口:
|
||
|
||
- 首页:`/index`
|
||
- AI面试:`/recruit/interview`
|
||
- 三角色对练:`/train/practice`
|
||
- 案例沉淀:`/knowledge/cases`
|
||
- SOP知识库:`/knowledge/sop`
|
||
- 资料处理:`/knowledge/processing`
|
||
- 系统设置-模型配置:`/system/model`
|
||
|
||
若依默认菜单如“系统管理 / 租户管理 / 系统监控 / 系统工具 / 测试菜单”在当前 MVP 阶段应保持隐藏。
|
||
|
||
## MVP 演示流验证
|
||
|
||
当前已跑通管理端五个本地演示流和移动端员工训练闭环:
|
||
|
||
- AI面试:进入 `/recruit/interview`,点击“生成题目” → “填满 seed 回答” → “完成评分”,应看到“已完成闭环”“建议复试”和新增面试记录。
|
||
- 三角色对练:进入 `/train/practice`,点击“开始对练” → 两次“填入 seed 回复 / 继续一轮” → “结束并评分”,应看到“已完成闭环”“导师改写”和新增对练记录。
|
||
- 案例沉淀:进入 `/knowledge/cases`,点击“选择样例录音” → “AI 整理” → “送审” → “入库”,应看到“已完成闭环”和新增 `seed入库` 记录。
|
||
- SOP知识库:进入 `/knowledge/sop`,可上传 txt/md/PDF/Word/Excel/PPT 文档入库;点击“检索” → “生成训练题”,应看到“已完成闭环”、命中数据库 SOP 原文片段和训练题;数据库不可用时页面回退 seed。
|
||
- 资料处理:进入 `/knowledge/processing`,应看到资料总量、解析任务表、处理链路、规则与风险;可用少量文件验证“批量导入/选择目录/服务端导入”。服务端导入读取 `./.data/import` 下的相对目录,启动后台任务并在页面显示进度;当前重试粒度是同目录重新导入,不是单失败文件重试。
|
||
- 移动端员工训练:进入 `http://127.0.0.1:5174/h5/user`,手机号登录 → “开始训练” → 两次“填入建议回复 / 提交本轮”,应看到评分、导师改写、训练历史和能力画像;切到主管端后完训人数与“待复盘对练”计数增加,并展示待复盘列表;点进单条可看评分、话术、导师改写,并可标记已复盘。
|
||
|
||
演示前可先跑最小预检:
|
||
|
||
```bash
|
||
./scripts/demo-check.sh
|
||
```
|
||
|
||
完整演示脚本与录屏兜底见 [DEMO_ACCEPTANCE.md](DEMO_ACCEPTANCE.md)。
|