SpringAI+RAG向量库+知识图谱+多模型路由+Docker打造SmartHR智能招聘助手

Smart-HR 智能招聘与面试助手

项目适合人群

  • Spring AI 的基本使用
  • Milvus 向量知识库的集成实践
  • Neo4j 作为知识图谱的建模与查询
  • 适配器模式实现多模型切换(OpenAI/百炼/等)
  • Docker Compose 一键启动前后端与依赖

项目源代码地址

Github地址
建议直接打开源代码 对照学习每一个部分

https://github.com/LQF-dev/smart-hr

1. 项目简介 🚀

  • 面向 HR 与面试官的智能招聘助手,覆盖简历解析、岗位匹配、面试题生成与模型切换。
  • 引入 Neo4j 知识图谱(预置约 200 个技能节点及依赖关系)作为 HR 匹配的图谱评判依据;
  • 引入 Milvus 向量数据库 作为 RAG 知识库,分为"企业特定金融知识"与"通用知识"两部分,支撑面试官题库生成与语义检索。
  • 采用 模型适配器模式,可插拔接入多种大模型(当前支持阿里云百炼、OpenAI);新增模型只需实现 Adapter 并注册到 ModelRouter。
  • 后端基于 Spring Boot + Spring AI,整合 Milvus/Neo4j/PostgreSQL;前端基于 React + Ant Design。

2. 技术栈与架构 🧰

  • 前端:React 18、TypeScript、Vite、Ant Design、Zustand。
  • 后端:Spring Boot 3、Spring Security + JWT、Spring AI。
  • 数据与存储:PostgreSQL、Neo4j、Milvus。
  • 运维:Docker / Docker Compose。

3. 系统架构图 🧭

HR 流程:简历/岗位 → Neo4j 知识图谱 → 混合打分(图谱评分 + LLM 评估)
后端服务·Spring Boot + Spring AI
前端·HR 页面
API 网关/路由
简历解析
匹配/图谱
岗位
Neo4j\n技能图谱
混合打分\n图谱覆盖率/深度/前置完整度 + LLM 评估
模型路由器
阿里云百炼
OpenAI
PostgreSQL\n业务数据

面试官流程:岗位/技能 → RAG(Milvus 题库/技能向量)→ LLM
后端服务·Spring Boot + Spring AI
前端·面试官页面
API 网关/路由
面试题生成
岗位
Milvus\nRAG:题库/技能向量检索
模型路由器
阿里云百炼
OpenAI
PostgreSQL\n业务数据

HR 通过 Neo4j 图谱进行技能匹配后送入 LLM;面试官流程以 Milvus RAG 检索题库/技能语义,再送入 LLM。

4. 功能特性 🎯

HR 🤝

  • 岗位管理:岗位创建/编辑/删除,岗位列表。
  • 简历处理:上传简历、技能提取、查看简历详情。
  • 匹配分析:岗位 ⇄ 简历互相匹配,支持混合打分报告,匹配历史/详情查看。
  • 记录管理:匹配结果列表、历史查询。

面试官 🎤

  • 题目生成:按岗位或技能生成面试题,可选难度与题量。
  • 记录管理:生成历史查看、记录删除。


通用 🧩

  • 认证:登录/注册(JWT),当前用户信息。
  • 模型:AI 模型列表与切换(阿里云百炼 / OpenAI,适配器模式)。
  • API:Swagger UI。

5. 目录结构

  • back/:Spring Boot 后端。
  • front/:React 前端。
  • docker/:基础设施与一键部署的 Compose 文件、初始化脚本。

6. 环境准备

  • JDK 21、Maven 3.8+。
  • Node.js 18+(含 npm)。
  • Docker Desktop(含 Docker Compose)。

7. 快速开始 ⚡

详细步骤请参见 Github 代码仓库下的 DEV_GUIDE.md。 这里仅仅列出基本使用

  1. 启动基础设施(本地开发)
bash 复制代码
cd docker
docker-compose -f docker-compose.dev.yml up -d
  1. 初始化 Neo4j 知识图谱
  • 浏览器执行 docker/neo4j/init.cypherdocker/neo4j/init-skills-extended.cypher,或使用 cypher-shell(详见 DEV_GUIDE)。
  1. 配置大模型 API Key(至少需阿里云百炼,OpenAI 可选)
bash 复制代码
export DASHSCOPE_API_KEY=你的阿里云百炼API_KEY
export OPENAI_API_KEY=你的OpenAI_API_KEY   # 可选
  1. 启动后端(本地开发)
bash 复制代码
cd back
./mvnw spring-boot:run
  1. 启动前端(本地开发)
bash 复制代码
cd front
npm install
npm run dev
  1. 全栈 Docker 一键启动(可选)
bash 复制代码
cd docker
export DASHSCOPE_API_KEY=你的阿里云百炼API_KEY
export OPENAI_API_KEY=你的OpenAI_API_KEY   # 可选
docker-compose up -d
  • Swagger API 文档:http://localhost:8080/swagger-ui.html
  • 默认端口:后端 8080,前端 5173(开发)/ 3000(容器),Postgres 15432(dev)/5432(prod compose),Neo4j 7474/7687,Milvus 19530/9091。

(更多启动、调试与排障说明,请查看 DEV_GUIDE.md

8. 开发指南:扩展新的大模型 🛠️

  1. 引入 SDK 依赖:在 back/pom.xml 添加对应模型的官方 SDK 或 HTTP 客户端依赖,并配置密钥环境变量。
  2. 实现适配器:参考 AliyunAdapter,实现 AIModelAdapter 接口,封装 chat / embedding 调用和模型 ID。
  3. 注册模型:在模型注册/路由处(如 ModelRegistryModelRouter)将新 Adapter 注册并开放配置。
  4. 配置密钥:在 application.yml 或环境变量中新增该模型的 API Key/Endpoint。
  5. 前端暴露:如需在前端选择模型,补充模型枚举/下拉项即可,无需改后端协议。
相关推荐
AC赳赳老秦2 小时前
代码生成超越 GPT-4:DeepSeek-V4 编程任务实战与 2026 开发者效率提升指南
数据库·数据仓库·人工智能·科技·rabbitmq·memcache·deepseek
液态不合群2 小时前
推荐算法中的位置消偏,如何解决?
人工智能·机器学习·推荐算法
饭饭大王6662 小时前
当 AI 系统开始“自省”——在 `ops-transformer` 中嵌入元认知能力
人工智能·深度学习·transformer
ujainu2 小时前
CANN仓库中的AIGC可移植性工程:昇腾AI软件栈如何实现“一次开发,多端部署”的跨生态兼容
人工智能·aigc
初恋叫萱萱2 小时前
CANN 生态实战指南:从零构建一个高性能边缘 AI 应用的完整流程
人工智能
Lethehong2 小时前
CANN ops-nn仓库深度解读:AIGC时代的神经网络算子优化实践
人工智能·神经网络·aigc
开开心心就好2 小时前
AI人声伴奏分离工具,离线提取伴奏K歌用
java·linux·开发语言·网络·人工智能·电脑·blender
TechWJ2 小时前
CANN ops-nn神经网络算子库技术剖析:NPU加速的基石
人工智能·深度学习·神经网络·cann·ops-nn
凌杰2 小时前
AI 学习笔记:LLM 的部署与测试
人工智能
心易行者2 小时前
在 Claude 4.6 发布的当下,一个不懂编程的人聊聊 Claude Code:当 AI 终于学会自己动手干活
人工智能