智能求职推荐系统
智能求职推荐系统
基于知识图谱和大语言模型的智能求职推荐系统,为求职者提供个性化岗位推荐和AI驱动的匹配分析。
🚀 系统特性
- 智能推荐: 基于知识图谱的多维度职位匹配
- AI分析: 集成DeepSeek大模型提供深度分析和建议
- 可视化展示: 使用ECharts展示推荐结果和知识图谱关系
- 现代化架构: 前后端分离,微服务设计
- 双数据库: MySQL关系数据库 + Neo4j图数据库
🏗️ 系统架构
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Vue.js 前端 │────│ Spring Boot后端 │────│ MySQL数据库 │
│ (Element Plus) │ │ (REST API) │ │ (用户数据) │
└─────────────────┘ └─────────────────┘ └─────────────────┘││
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Python推荐服务 │ │ Neo4j图数据库 │ │ DeepSeek API │
│ (推荐算法) │ │ (知识图谱) │ │ (AI分析) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
📋 功能模块
1. 求职者管理
- ✅ 个人简历录入和管理
- ✅ 技能、经验、偏好设置
- ✅ 期望薪资和工作地点配置
2. 企业岗位管理
- ✅ 岗位信息发布和编辑
- ✅ AI自动岗位分类
- ✅ 岗位数据同步到知识图谱
3. 智能推荐引擎
- ✅ 基于知识图谱的语义推荐
- ✅ 多因子匹配算法(技能、地点、行业、薪资)
- ✅ 推荐解释和理由生成
4. AI深度分析
- ✅ DeepSeek大模型集成
- ✅ 个性化匹配分析报告
- ✅ 职业发展建议生成
5. 可视化展示
- ✅ 推荐结果可视化界面
- ✅ 知识图谱关系展示
- ✅ 交互式图表和动画效果
🛠️ 技术栈
前端
- 框架: Vue 3 + Composition API
- UI库: Element Plus
- 图表: ECharts + Vue-ECharts
- 路由: Vue Router 4
- HTTP: Axios
后端
- 框架: Spring Boot 2.7
- 数据库: Spring Data JPA + Spring Data Neo4j
- API: RESTful Web Services
- 依赖注入: Spring Framework
数据存储
- 关系数据库: MySQL 8.0
- 图数据库: Neo4j (可选)
- 数据持久化: JPA + Cypher查询
AI服务
- 大语言模型: DeepSeek API
- 推荐算法: 自定义Python服务
- 数据分析: Pandas + NumPy
🚀 快速开始
环境要求
- Java 11+
- Node.js 16+
- Python 3.8+
- MySQL 8.0+
- Neo4j 4.4+ (可选)
安装步骤
-
克隆项目
git clone <repository-url> cd job-recommendation-system
-
配置数据库
# 启动MySQL sudo systemctl start mysql# 创建数据库 mysql -u root -p -e "CREATE DATABASE job_recommendation"# 启动Neo4j (可选) neo4j start
-
配置DeepSeek API
# 编辑后端配置文件 vim backend/src/main/resources/application.yml # 更新API密钥: sk-your-deepseek-api-key
-
一键启动系统
./start-system.sh
-
访问系统
- 前端界面: http://localhost:8081
- 后端API: http://localhost:8080
- Python服务: http://localhost:5000
手动启动
如果需要手动启动各个服务:
# 1. 启动Python推荐服务
cd python-service
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python app.py &# 2. 启动Spring Boot后端
cd backend
mvn spring-boot:run &# 3. 启动Vue.js前端
cd frontend
npm install
npm run serve &
📊 系统监控
检查系统状态
./check-system.sh
查看实时日志
# 查看所有服务日志
tail -f logs/*.log# 查看特定服务日志
tail -f logs/backend.log
tail -f logs/frontend.log
tail -f logs/python-service.log
停止系统
./stop-system.sh
🎯 使用演示
1. 创建求职者档案
- 访问 http://localhost:8081
- 点击"员工简历录入"
- 填写个人信息、技能、期望等
- 点击"保存简历"
2. 发布岗位信息
- 点击"企业岗位发布"
- 输入职位详细信息
- 系统自动进行AI分类
- 数据同步到知识图谱
3. 获取智能推荐
- 在简历页面点击"获取推荐"
- 查看个性化推荐列表
- 展开详细匹配分析
- 查看AI生成的深度分析
4. 浏览知识图谱
- 在推荐页面点击"显示知识图谱"
- 交互式浏览实体关系
- 理解推荐逻辑和关联性
🔧 配置说明
后端配置 (backend/src/main/resources/application.yml
)
spring:datasource:url: jdbc:mysql://localhost:3306/job_recommendationusername: rootpassword: rootneo4j:uri: bolt://localhost:7687authentication:username: neo4jpassword: passwordpython-service:url: http://localhost:5000
前端配置 (frontend/src/config
)
- API基础URL配置
- 路由和组件配置
- Element Plus主题配置
DeepSeek API配置
在 DeepSeekService.java
中更新您的API密钥:
private final String API_KEY = "sk-your-deepseek-api-key";
🧪 测试数据
系统启动时会自动加载示例数据:
- 职位数据: 8个不同行业和技能要求的职位
- 求职者数据: 3个不同背景的求职者档案
- 技能标签: Java、Python、前端开发等技术栈
📈 扩展开发
添加新的推荐算法
- 在
RecommendationService
中实现新算法 - 在
python-service
中添加算法API - 更新前端展示逻辑
集成其他大模型
- 创建新的AI服务类
- 实现统一的AI接口
- 在配置中切换模型提供商
增加新的可视化
- 在前端添加新的ECharts图表
- 创建对应的数据处理API
- 更新用户界面布局
🐛 常见问题
Q: 系统启动失败怎么办?
A:
- 检查端口占用:
netstat -tulpn | grep :8080
- 查看错误日志:
tail -f logs/backend.log
- 确认数据库连接正常
- 重新启动:
./stop-system.sh && ./start-system.sh
Q: DeepSeek API调用失败?
A:
- 检查API密钥是否正确
- 确认网络连接正常
- 查看API调用日志
- 系统会自动降级到基础推荐
Q: Neo4j连接失败?
A:
- Neo4j是可选组件,不影响核心功能
- 检查Neo4j服务状态:
neo4j status
- 确认配置文件中的连接参数
- 系统会自动回退到MySQL存储
Q: 前端页面无法加载?
A:
- 检查Node.js版本:
node --version
- 重新安装依赖:
cd frontend && npm install
- 检查前端服务日志
- 确认后端API服务正常