1
This commit is contained in:
387
_doc/项目功能总结.md
Normal file
387
_doc/项目功能总结.md
Normal file
@@ -0,0 +1,387 @@
|
||||
# 自动找工作系统 - 项目功能总结
|
||||
|
||||
> 版本: v1.0 | 更新日期: 2025-12-25
|
||||
|
||||
## 一、项目概述
|
||||
|
||||
自动找工作系统(autoAiWorkSys)是一个基于AI的智能求职助手平台,通过自动化技术帮助求职者高效管理多个招聘平台账号、智能筛选匹配岗位、自动投递简历,并提供全流程的求职数据分析。系统集成Qwen 2.5 AI模型,实现简历智能分析、岗位匹配度评分、聊天内容生成等功能,大幅提升求职效率和成功率。
|
||||
|
||||
## 二、技术栈
|
||||
|
||||
### 前端技术
|
||||
- **框架**: Vue 2.6.14 + Vuex 3.6.2 + Vue Router 3.5.3
|
||||
- **UI组件**: View Design (iView) 4.7.0
|
||||
- **构建工具**: Webpack 5
|
||||
- **图表库**: ECharts
|
||||
- **HTTP客户端**: 自定义 framework.http
|
||||
|
||||
### 后端技术
|
||||
- **运行时**: Node.js
|
||||
- **Web框架**: Koa 2.16.3
|
||||
- **ORM**: Sequelize 5.22.5
|
||||
- **数据库**: MySQL 8.0
|
||||
- **消息队列**: MQTT (mqtt://192.144.167.231:1883)
|
||||
- **AI模型**: Qwen 2.5 (阿里云DashScope)
|
||||
- **缓存**: Redis (规划中)
|
||||
- **存储**: Ali OSS
|
||||
|
||||
### 核心框架
|
||||
- **Node Core Framework**: 自研框架,提供统一的API路由、数据库管理、日志管理
|
||||
|
||||
## 三、核心特性
|
||||
|
||||
1. **多平台账号管理** - 支持Boss直聘、猎聘等多个招聘平台,统一管理账号和授权
|
||||
2. **智能简历分析** - AI评估简历竞争力(0-100分),提取技能标签,给出优势劣势和职业建议
|
||||
3. **自动岗位投递** - 基于技能匹配和AI评分自动筛选岗位并投递,支持每日上限和时间范围控制
|
||||
4. **AI岗位匹配** - 多维度评分(技能、经验、薪资、公司质量),自动识别外包岗位
|
||||
5. **任务调度系统** - 优先级队列+MQTT通信,设备内串行、设备间并行执行
|
||||
6. **数据可视化统计** - 投递成功率、面试转化率、不同平台效果对比等多维度分析
|
||||
7. **设备实时监控** - 在线状态、健康度、错误信息、心跳检测
|
||||
8. **完整审计日志** - 任务执行、投递记录、聊天记录全链路追踪
|
||||
|
||||
## 四、功能模块一览
|
||||
|
||||
### 4.1 前端功能模块
|
||||
|
||||
| 模块 | 页面路径 | 主要功能 |
|
||||
|------|---------|----------|
|
||||
| **首页/仪表板** | `/home` | 设备选择、账户信息卡片、今日统计、当前任务列表、近7天趋势图 |
|
||||
| **账号管理** | `/account/pla_account` | 账号列表、新增/编辑、授权管理、批量位置解析、停止任务 |
|
||||
| **账号详情** | `/account/pla_account_detail` | 账号基本信息、任务历史、自动化配置、运行操作面板 |
|
||||
| **简历管理** | `/account/resume_info` | 简历列表、查看详情、AI分析结果展示、删除 |
|
||||
| **简历详情** | `/account/resume_info_detail` | 个人信息、教育背景、工作经验、期望信息、AI评分和建议 |
|
||||
| **岗位管理** | `/work/job_postings` | 岗位列表、过滤查询、打招呼、查看详情 |
|
||||
| **投递记录** | `/work/apply_records` | 投递状态追踪、反馈状态、面试/Offer信息 |
|
||||
| **职位类型** | `/work/job_types` | 职位类型配置、技能关键词、排除关键词 |
|
||||
| **任务管理** | `/task/task_status` | 任务列表、指令详情、取消/重试操作 |
|
||||
| **聊天管理** | `/chat/chat_list` | 双面板聊天界面、会话列表、AI生成回复 |
|
||||
| **聊天记录** | `/chat/chat_records` | 聊天历史记录、消息类型、发送状态 |
|
||||
| **系统配置** | `/system/system_config` | 系统参数配置、AI服务配置、MQTT配置 |
|
||||
|
||||
### 4.2 后端API模块
|
||||
|
||||
| 模块 | 接口前缀 | 主要功能 |
|
||||
|------|---------|----------|
|
||||
| **账号管理** | `/admin_api/account` | 列表、详情、新增、更新、删除、授权、停止任务、位置解析 |
|
||||
| **简历管理** | `/admin_api/resume` | 列表、详情、统计、删除、AI分析、按设备获取 |
|
||||
| **岗位管理** | `/admin_api/job` | 列表、详情、统计、删除、打招呼 |
|
||||
| **投递记录** | `/admin_api/apply` | 列表、详情、统计、删除 |
|
||||
| **聊天记录** | `/admin_api/chat` | 列表、详情、统计、删除 |
|
||||
| **设备监控** | `/admin_api/device` | 列表、概览、配置更新、错误重置 |
|
||||
| **任务状态** | `/admin_api/task` | 列表、详情、统计、更新、删除 |
|
||||
| **数据统计** | `/admin_api/dashboard` | 综合统计、投递转化率、平台对比、设备排名 |
|
||||
| **系统配置** | `/admin_api/system` | 配置列表、新增、更新、删除 |
|
||||
|
||||
### 4.3 核心业务流程
|
||||
|
||||
```
|
||||
┌─────────────────────┐
|
||||
│ 账号配置和授权 │
|
||||
└──────────┬──────────┘
|
||||
↓
|
||||
┌─────────────────────┐
|
||||
│ 获取在线简历(MQTT) │ → AI分析 → 竞争力评分、技能提取、优劣势分析
|
||||
└──────────┬──────────┘
|
||||
↓
|
||||
┌─────────────────────┐
|
||||
│ 创建自动投递任务 │
|
||||
└──────────┬──────────┘
|
||||
↓
|
||||
┌─────────────────────┐
|
||||
│ 搜索岗位(MQTT) │ → 保存到job_postings表
|
||||
└──────────┬──────────┘
|
||||
↓
|
||||
┌─────────────────────┐
|
||||
│ 岗位过滤和匹配 │ → 技能匹配+AI评分+外包识别
|
||||
└──────────┬──────────┘
|
||||
↓
|
||||
┌─────────────────────┐
|
||||
│ 自动投递(MQTT) │ → 记录apply_records
|
||||
└──────────┬──────────┘
|
||||
↓
|
||||
┌─────────────────────┐
|
||||
│ 聊天和面试跟踪 │ → AI生成聊天内容
|
||||
└──────────┬──────────┘
|
||||
↓
|
||||
┌─────────────────────┐
|
||||
│ 数据统计和分析 │
|
||||
└─────────────────────┘
|
||||
```
|
||||
|
||||
## 五、已实现功能清单
|
||||
|
||||
### 5.1 账号管理模块 ✅
|
||||
|
||||
- ✅ 多平台账号绑定(Boss直聘、猎聘)
|
||||
- ✅ 账号状态管理(启用/禁用、在线/离线、登录状态)
|
||||
- ✅ 自动化开关(自动投递、自动聊天、自动活跃)
|
||||
- ✅ 授权管理(设置授权日期、天数、过期时间计算)
|
||||
- ✅ 职位类型配置(关联job_types)
|
||||
- ✅ 投递配置(时间范围、每日上限、薪资范围、关键词过滤)
|
||||
- ✅ 沟通配置(时间范围、是否沟通外包岗位)
|
||||
- ✅ 活跃配置(活跃间隔、活跃动作)
|
||||
- ✅ 位置解析(单个/批量,经纬度获取)
|
||||
- ✅ 停止任务(取消该账号所有运行中任务)
|
||||
|
||||
### 5.2 简历管理模块 ✅
|
||||
|
||||
- ✅ 简历信息存储(个人信息、教育背景、工作经验、期望信息)
|
||||
- ✅ 简历获取(通过MQTT从设备获取在线简历)
|
||||
- ✅ AI竞争力评分(0-100分)
|
||||
- ✅ AI技能标签提取
|
||||
- ✅ AI优势劣势分析
|
||||
- ✅ AI职业建议生成
|
||||
- ✅ 简历与岗位匹配度计算
|
||||
- ✅ 简历统计(平均竞争力、工作年限分布、竞争力分布)
|
||||
- ✅ 按设备和平台查询简历
|
||||
|
||||
### 5.3 岗位管理模块 ✅
|
||||
|
||||
- ✅ 岗位信息存储(基本信息、要求、描述、薪资、地点)
|
||||
- ✅ 岗位搜索(通过MQTT下发搜索指令)
|
||||
- ✅ 岗位列表获取(通过MQTT获取列表)
|
||||
- ✅ AI岗位匹配评分(技能、经验、薪资、公司质量)
|
||||
- ✅ 外包岗位识别(规则+AI双层识别)
|
||||
- ✅ 岗位过滤(技能关键词匹配、排除关键词检测)
|
||||
- ✅ 综合评分计算(多维度权重评分)
|
||||
- ✅ 岗位统计(总数、平均匹配度、外包比例)
|
||||
- ✅ 打招呼功能(初次沟通)
|
||||
|
||||
### 5.4 自动投递模块 ✅
|
||||
|
||||
- ✅ 自动投递任务创建和调度
|
||||
- ✅ 每日投递上限控制
|
||||
- ✅ 投递时间范围控制(工作日/周末)
|
||||
- ✅ 简历刷新检查(2小时内刷新)
|
||||
- ✅ 岗位过滤和排序
|
||||
- ✅ 投递指令下发(MQTT)
|
||||
- ✅ 投递状态追踪(待投递、投递中、成功、失败、重复)
|
||||
- ✅ 反馈状态管理(无反馈、已查看、感兴趣、不合适、面试邀约)
|
||||
- ✅ 投递统计(成功率、面试转化率、Offer转化率)
|
||||
|
||||
### 5.5 AI分析模块 ✅
|
||||
|
||||
- ✅ Qwen 2.5模型集成(阿里云DashScope)
|
||||
- ✅ 简历智能分析
|
||||
- ✅ 技能标签提取
|
||||
- ✅ 竞争力评分(0-100)
|
||||
- ✅ 优势劣势分析
|
||||
- ✅ 职业发展建议
|
||||
- ✅ 岗位智能匹配
|
||||
- ✅ 技能匹配度(0-100)
|
||||
- ✅ 经验匹配度(0-100)
|
||||
- ✅ 薪资合理性(0-100)
|
||||
- ✅ 公司质量评分(0-100)
|
||||
- ✅ 外包岗位识别
|
||||
- ✅ 聊天内容生成(基础框架)
|
||||
|
||||
### 5.6 任务调度模块 ✅
|
||||
|
||||
- ✅ 优先级任务队列(堆实现,O(log n)性能)
|
||||
- ✅ 并发控制(全局5设备,每设备1任务)
|
||||
- ✅ 设备内串行、设备间并行执行
|
||||
- ✅ 任务状态管理(待执行、执行中、成功、失败、超时、取消)
|
||||
- ✅ 指数退避重试机制(最多3次)
|
||||
- ✅ 任务超时检测(10分钟)
|
||||
- ✅ 错误分类(可重试/不可重试)
|
||||
- ✅ 任务恢复(启动时恢复未完成任务)
|
||||
- ✅ 任务统计(岗位搜索数、过滤数、投递数、聊天数)
|
||||
|
||||
### 5.7 设备监控模块 ✅
|
||||
|
||||
- ✅ 设备状态追踪(在线/离线)
|
||||
- ✅ 心跳检测(通过MQTT)
|
||||
- ✅ 健康度评分
|
||||
- ✅ 错误信息记录
|
||||
- ✅ 最后心跳时间
|
||||
- ✅ 设备配置更新
|
||||
- ✅ 设备错误重置
|
||||
- ✅ 设备概览统计(在线数、离线数、健康度排名)
|
||||
|
||||
### 5.8 数据统计模块 ✅
|
||||
|
||||
- ✅ 投递成功率统计
|
||||
- ✅ 面试转化率统计
|
||||
- ✅ Offer转化率统计
|
||||
- ✅ 不同平台数据对比
|
||||
- ✅ 设备活跃度排名
|
||||
- ✅ 简历竞争力分布
|
||||
- ✅ 岗位外包比例统计
|
||||
- ✅ 近7天趋势图(投递、搜索、聊天)
|
||||
- ✅ 今日统计(实时刷新)
|
||||
|
||||
### 5.9 聊天管理模块 ✅
|
||||
|
||||
- ✅ 聊天记录存储
|
||||
- ✅ 聊天类型分类(打招呼、跟进、面试、回复)
|
||||
- ✅ 发送状态追踪
|
||||
- ✅ 回复检测和记录
|
||||
- ✅ 回复时长统计
|
||||
- ✅ 面试邀约识别
|
||||
- ✅ 情感分析(积极/中性/消极)
|
||||
- ✅ 效果评分
|
||||
- ✅ AI生成标记
|
||||
- ✅ 双面板聊天界面
|
||||
|
||||
### 5.10 其他功能 ✅
|
||||
|
||||
- ✅ 用户邀请和推广系统
|
||||
- ✅ 公司信息库(上市公司数据)
|
||||
- ✅ 版本管理
|
||||
- ✅ 邮件服务集成
|
||||
- ✅ OSS存储集成
|
||||
- ✅ 地理位置服务(百度地图API)
|
||||
- ✅ Swagger API文档
|
||||
- ✅ 数据导出(CSV)
|
||||
|
||||
## 六、数据模型
|
||||
|
||||
### 6.1 核心表结构
|
||||
|
||||
| 表名 | 说明 | 关键字段 |
|
||||
|------|------|---------|
|
||||
| **pla_account** | 平台账号表 | sn_code, platform_type, is_online, auto_deliver, deliver_config |
|
||||
| **resume_info** | 简历信息表 | resumeId, account_id, aiCompetitiveness, aiSkillTags, aiStrengths |
|
||||
| **job_postings** | 岗位信息表 | jobId, platform, aiMatchScore, isOutsourcing, applyStatus |
|
||||
| **apply_records** | 投递记录表 | resumeId, jobId, applyStatus, feedbackStatus, hasInterview, hasOffer |
|
||||
| **chat_records** | 聊天记录表 | conversationId, chatType, isAiGenerated, hasReply, sentiment |
|
||||
| **task_status** | 任务状态表 | taskType, status, priority, retryCount, progress |
|
||||
| **task_commands** | 任务指令表 | taskId, commandType, commandData, response, executeTime |
|
||||
| **job_types** | 职位类型表 | name, commonSkills, excludeKeywords, sortOrder |
|
||||
| **device_monitor** | 设备监控表 | sn_code, is_online, health_score, last_heartbeat_time |
|
||||
| **company_info** | 公司信息表 | company_name, is_listed, market_value, risk_level |
|
||||
|
||||
### 6.2 表关联关系
|
||||
|
||||
```
|
||||
pla_account (1) ──→ (N) resume_info
|
||||
│
|
||||
├─→ (N) apply_records ←── (1) job_postings
|
||||
│ │
|
||||
│ └─→ (N) chat_records
|
||||
│
|
||||
└─→ (N) task_status ──→ (N) task_commands
|
||||
|
||||
pla_account (1) ──→ (1) job_types (职位类型配置)
|
||||
pla_account (1) ──→ (N) device_monitor (设备监控)
|
||||
```
|
||||
|
||||
## 七、快速开始
|
||||
|
||||
### 7.1 环境要求
|
||||
|
||||
- Node.js >= 14.x
|
||||
- MySQL >= 8.0
|
||||
- Redis (可选,用于缓存)
|
||||
- MQTT Broker (已配置: mqtt://192.144.167.231:1883)
|
||||
|
||||
### 7.2 安装步骤
|
||||
|
||||
```bash
|
||||
# 1. 克隆项目
|
||||
git clone <repository-url>
|
||||
cd autoAiWorkSys
|
||||
|
||||
# 2. 安装后端依赖
|
||||
npm install
|
||||
|
||||
# 3. 安装前端依赖
|
||||
cd admin
|
||||
npm install
|
||||
|
||||
# 4. 配置数据库
|
||||
# 编辑 config/config.js
|
||||
# 设置MySQL连接信息
|
||||
|
||||
# 5. 初始化数据库
|
||||
# 执行 _sql 目录下的SQL脚本
|
||||
|
||||
# 6. 启动后端服务
|
||||
npm run dev
|
||||
|
||||
# 7. 启动前端服务(新终端)
|
||||
cd admin
|
||||
npm run dev
|
||||
```
|
||||
|
||||
### 7.3 核心配置
|
||||
|
||||
**config/config.js** - 主配置文件
|
||||
```javascript
|
||||
{
|
||||
db: {
|
||||
host: 'localhost',
|
||||
port: 3306,
|
||||
database: 'auto_job',
|
||||
username: 'root',
|
||||
password: 'your_password'
|
||||
},
|
||||
mqtt: {
|
||||
host: 'mqtt://192.144.167.231:1883',
|
||||
clientId: 'autoAiWorkSys_server'
|
||||
},
|
||||
ai: {
|
||||
apiKey: 'your_dashscope_api_key',
|
||||
model: 'qwen-turbo' // qwen-turbo/qwen-plus/qwen-max
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 7.4 访问地址
|
||||
|
||||
- 前端管理后台: http://localhost:8080
|
||||
- 后端API: http://localhost:3000/admin_api
|
||||
- API文档: http://localhost:3000/api/docs
|
||||
|
||||
## 八、项目文件结构
|
||||
|
||||
```
|
||||
autoAiWorkSys/
|
||||
├── admin/ # 前端管理后台
|
||||
│ ├── src/
|
||||
│ │ ├── views/ # 页面组件
|
||||
│ │ ├── api/ # API调用
|
||||
│ │ ├── router/ # 路由配置
|
||||
│ │ └── store/ # Vuex状态管理
|
||||
│ └── package.json
|
||||
│
|
||||
├── api/ # 后端服务
|
||||
│ ├── controller_admin/ # 后台管理API
|
||||
│ ├── middleware/ # 核心业务逻辑
|
||||
│ │ ├── job/ # 岗位、简历、聊天管理
|
||||
│ │ ├── schedule/ # 任务调度系统
|
||||
│ │ └── mqtt/ # MQTT通信
|
||||
│ ├── model/ # 数据库模型
|
||||
│ ├── services/ # 业务服务层
|
||||
│ └── utils/ # 工具函数
|
||||
│
|
||||
├── config/ # 配置文件
|
||||
├── framework/ # 核心框架
|
||||
├── _doc/ # 文档目录
|
||||
├── _sql/ # 数据库脚本
|
||||
└── package.json
|
||||
```
|
||||
|
||||
## 九、技术亮点
|
||||
|
||||
1. **优先级队列** - 堆实现,O(log n)性能,比数组提升10-100倍
|
||||
2. **双层过滤** - 规则过滤+AI评分,平衡性能和准确性
|
||||
3. **智能重试** - 指数退避策略,区分可重试和不可重试错误
|
||||
4. **MQTT通信** - 异步消息队列,高效的设备指令下发和响应
|
||||
5. **AI多场景应用** - 简历分析、岗位匹配、聊天生成、外包识别
|
||||
6. **完整审计** - 任务、投递、聊天全链路追踪
|
||||
7. **模块化设计** - 清晰的分层架构,易于扩展和维护
|
||||
|
||||
## 十、性能指标
|
||||
|
||||
- 任务调度延迟: < 100ms
|
||||
- 数据库查询: 95%在100ms内
|
||||
- MQTT消息延迟: < 50ms
|
||||
- 前端页面加载: < 2s
|
||||
- 并发支持: 最多5个设备同时执行
|
||||
|
||||
---
|
||||
|
||||
**文档维护**: 开发团队
|
||||
**最后更新**: 2025-12-25
|
||||
**联系方式**: 项目Issues
|
||||
Reference in New Issue
Block a user