# zhipin-cloud-server **Repository Path**: nomenofear/zhipin-cloud-server ## Basic Information - **Project Name**: zhipin-cloud-server - **Description**: 后端微服务代码仓库 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2026-10-10 - **Last Updated**: 2026-10-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智聘云图 (Zhipin-Cloud) - AI 智能招聘平台 > 基于 Spring Cloud Alibaba 微服务架构的企业级 AI 招聘平台,深度融合 AI 技术实现从**JD生成**到**AI面试**的全链路智能化。 ## 一、项目简介 **智聘云图** 是一个基于 Spring Cloud Alibaba 微服务架构体系的【企业级】AI 招聘 SaaS 平台,覆盖招聘端、应聘端、后台管理端三大终端,将 AI 技术与招聘核心业务深度结合。 **技术栈:Java + Python + LangChain + LangGraph + ES + Spring Cloud Alibaba** ### 核心特性 - 🏗️ **18 个独立微服务**:独立部署,边界清晰 - 🤖 **AI 深度融合**:8 个 AI Agent,覆盖 JD生成、简历解析、人岗匹配、实时面试等核心环节 - 📱 **三端完整**:招聘端、应聘端、管理端全业务覆盖 - 🔒 **生产级安全**:JWT 双 Token、短信验证码、实名认证、企业认证 - 🎯 **智能匹配引擎**:AI 候选人-职位匹配评分,多维度画像分析 - 💬 **AI 实时面试**:LangGraph 驱动的流式面试引擎,SSE 实时交互 --- ## 二、AI 技术亮点 ### 2.1 技术架构 **整体技术路线:** `Java(业务系统)→ Python(AI 服务)` `Python` · `LangChain` · `LangGraph` · `FastAPI` · `Kafka` · `Redis` ### 2.2 AI Agent 列表 | Agent ID | 名称 | 类型 | 说明 | |:---:|------|------|------| | 1001 | **JobDescriptionAgent** | LangChain Agent | 自然语言 → 结构化职位描述字段映射 + 润色优化 | | 1002 | **PositionProfileAgent** | LangChain Agent | 根据 JD 自动生成职位画像(必备项/加分项/减分项) | | 1003 | **ResumeParserAgent** | LangChain Agent | 简历文件/文本 → 结构化 ResumeDTO | | 1004 | **CandidateMatchAgent** | LangChain Agent | 画像 × 简历 → 0-100 分 + 多维匹配结论 | | 1005 | **InterviewEngineAgent** | LangGraph + SSE | 实时 AI 面试引擎(出题→评分→追问→下一题) | | 1006 | **InterviewReportAgent** | LangChain Agent | 面试记录 → 评分报告(雷达图/维度分/综合评价) | | 1007 | **IntentRecognitionAgent** | LangGraph | 职位文本 NER 提取(15+字段)→ 5分类节点并行 → ES+Redis | | 1008 | **JobCategorizationAgent** | LangChain Agent | 职位名称/描述 → 三级分类映射 | --- ## 三、系统架构 ### 3.1 微服务架构图 ``` ┌─────────────────────────────────────────────────────────────────┐ │ 客户端 (招聘端Web · 应聘端App/Web · 管理端Web) │ └──────────────────────────────┬──────────────────────────────────┘ │ ┌──────────────────────────────▼──────────────────────────────────┐ │ Spring Cloud Gateway (:8600) │ │ 统一认证鉴权 · JWT 角色过滤 · 路由转发 · CORS │ └──┬──────────┬──────────┬──────────┬──────────┬──────────────────┘ │ │ │ │ │ ┌──▼──────┐ ┌▼────────┐ ┌▼────────┐ ┌▼────────┐ │Web- │ │Web- │ │Web- │ │ AI 路由 │ │Recruiter│ │Applicant│ │Admin │ │ :8699 │ │(:8611) │ │(:8612) │ │(:8613) │ │ │ └──┬──────┘ └──┬──────┘ └──┬──────┘ └────┬─────┘ │ │ │ │ └───────────┴───────────┘ │ │ │ ┌──────────────▼──────────────────────────▼───────────────────────┐ │ 业务服务层 (10个 Java 微服务) │ │ auth(:8601) · base(:8602) · user(:8603) · company(:8604) │ │ job(:8605) · resume(:8606) · candidate(:8607) │ │ interview(:8608) · search(:8609) · admin(:8610) │ └──────┬─────────────────────────────────────┬────────────────────┘ │ Feign / RabbitMQ / Kafka │ ┌──────▼──────────┐ ┌─────────────────────▼────────────────────┐ │ MySQL 8.0 │ │ zhipin-cloud-agent-server (Python) │ │ Redis 7.x │ │ FastAPI + LangChain + LangGraph │ │ Elasticsearch │ │ 端口 :8699 │ │ RabbitMQ+Kafka│ └──────────────────────────────────────────┘ │ Nacos 2.x │ └─────────────────┘ ``` ### 3.2 服务清单 | 服务名称 | 模块 | 端口 | 数据存储 | 说明 | |---------|------|:---:|:------:|------| | **网关** | zhipin-cloud-gateway | 8600 | - | Spring Cloud Gateway,统一入口 | | **认证服务** | zhipin-cloud-ms-auth-service | 8601 | MySQL | 手机号+验证码登录注册、双Token签发 | | **基础服务** | zhipin-cloud-ms-base-service | 8602 | MySQL | 字典数据、文件上传(OSS)、站内信、行政区划 | | **用户服务** | zhipin-cloud-ms-user-service | 8603 | MySQL | 个人资料管理、实名认证(第三方人脸识别) | | **企业服务** | zhipin-cloud-ms-company-service | 8604 | MySQL | 企业入驻、认证(邮箱/纸执照)、企业主页(写) | | **职位服务** | zhipin-cloud-ms-job-service | 8605 | MySQL | 职位CRUD、状态机、刷新排名、画像管理(写) | | **简历服务** | zhipin-cloud-ms-resume-service | 8606 | MySQL | 简历CRUD(教育/工作/项目/技能)、AI解析 | | **候选人服务** | zhipin-cloud-ms-candidate-service | 8607 | MySQL | 5阶段管道、AI匹配分、操作时间线 | | **面试服务** | zhipin-cloud-ms-interview-service | 8608 | MySQL | 面试配置、邀约管理、日历看板、Offer | | **搜索服务** | zhipin-cloud-ms-search-service | 8609 | ES+Redis | 企业+职位统一搜索、自动补全、意图查询(读) | | **管理端服务** | zhipin-cloud-ms-admin-service | 8610 | MySQL | 企业入驻审核、职位审核、系统配置 | | **招聘端BFF** | zhipin-cloud-ms-web-recruiter | 8611 | - | 招聘端接口聚合 | | **应聘端BFF** | zhipin-cloud-ms-web-applicant | 8612 | - | 应聘端接口聚合 | | **管理端BFF** | zhipin-cloud-ms-web-admin | 8613 | - | 管理端接口聚合 | ### 3.3 基础模块 | 模块 | 说明 | |------|------| | zhipin-cloud-common | 通用工具:BaseEntity · R · PageResponse · BizException · GlobalExceptionHandler · UserThreadLocal · Feign拦截器 · MyBatis-Plus/ Knife4j 配置 | | zhipin-cloud-ms-domain | 领域模型:DTO · VO · 枚举(CandidateStageEnum / PositionStatusEnum / InterviewStatusEnum 等) | | zhipin-cloud-ms-api | Feign 接口声明:10 个业务域 FeignClient 接口 | | zhipin-cloud-mq | 消息队列封装:RabbitMQ 发送 + Kafka 发送 + 失败消息重试 | --- ## 四、技术栈全景 | 分类 | 技术组件 | |------|----------| | **AI 技术** | Python · LangChain · LangGraph · FastAPI · Agent | | **微服务框架** | Spring Boot 2.7.x · Spring Cloud 2021.0.x · Spring Cloud Alibaba 2021.0.4.x · Nacos | | **API 网关** | Spring Cloud Gateway (WebFlux) | | **数据库** | MySQL 8.0 | | **搜索引擎** | Elasticsearch 7.x | | **缓存** | Redis 7.x | | **消息队列** | RabbitMQ(业务事件)· Kafka(数据管道) | | **分布式** | Seata 1.7.x(分布式事务)· Redisson 3.27.x(分布式锁) | | **定时任务** | XXL-Job 2.4.x | | **对象存储** | Alibaba Cloud OSS | | **工具库** | MyBatis-Plus 3.5.x · Knife4j 3.x · Hutool 5.8.x · Lombok 1.18.x · JJWT 0.11.x | --- ## 五、工程实践亮点 ### 5.1 CQRS 读写分离 - **写服务**(Company/Job):MySQL 主库写入 → Kafka 异步同步 ES - **读服务**(Search):ES 直接读取,永不回源 MySQL ### 5.2 双 MQ 架构 - **RabbitMQ**:低延迟业务事件(通知、状态同步、面试状态变更) - **Kafka**:高吞吐数据管道(职位索引、企业索引) ### 5.3 BFF 聚合层 - 3 个 Web 模块各自聚合下游服务,DTO/VO 分离 - 前端变更不影响业务服务内部模型 ### 5.4 核心业务流程 1. **职位发布 → 搜索**:MySQL → Kafka → Agent(NER+分类) → ES + Redis → 搜索可见 2. **投递 → AI匹配**:MySQL → Kafka → CandidateMatchAgent → 写入匹配结果 → 招聘端可见 3. **AI 面试**:SSE 流式交互 → LangGraph 节点流水线 → 报告生成 4. **企业入驻**:提交 → 管理员审核 → 通过 → Kafka → ES索引 → 可搜索 --- ## 六、快速开始 ### 6.1 环境要求 - JDK 17 - Maven 3.6+ - MySQL 8.0 - Redis 7.x - Elasticsearch 7.x - RabbitMQ 3.x - Kafka 3.x - Nacos 2.x ### 6.2 构建项目 ```bash # 克隆项目 git clone https://gitee.com/zhipin-cloud/zhipin-cloud-server.git cd zhipin-cloud-server # 构建所有模块 mvn clean install -DskipTests # 编译单个模块 mvn clean compile -pl zhipin-cloud-common ``` ### 6.3 配置说明 项目使用 Nacos 作为配置中心: | 配置项 | 说明 | |--------|------| | Nacos 地址 | `192.168.150.101:8848` | | 命名空间 | `ecae68ba-7b43-4473-a980-4ddeb6157bdc` | | 共享配置组 | `SHARED_GROUP` | 共享配置文件: - `shared-spring-mysql.yml` - MySQL 配置 - `shared-spring-mybatis-plus.yml` - MyBatis-Plus 配置 - `shared-spring-redis.yml` - Redis 配置 - `shared-spring-rabbitmq.yml` - RabbitMQ 配置 - `shared-spring-es.yml` - Elasticsearch 配置 ### 6.4 启动顺序 1. 启动基础设施(Nacos、MySQL、Redis、Elasticsearch、RabbitMQ、Kafka) 2. 启动网关:`zhipin-cloud-gateway` (8600) 3. 启动基础服务:`zhipin-cloud-ms-base-service` (8602) 4. 启动认证服务:`zhipin-cloud-ms-auth-service` (8601) 5. 启动其他业务服务(按需) 6. 启动 BFF 模块(按需) --- ## 七、项目结构 ``` zhipin-cloud-server/ ├── pom.xml # 根聚合 POM ├── zhipin-cloud-common/ # 通用模块 (Library) ├── zhipin-cloud-ms-domain/ # 领域模型 (Library) ├── zhipin-cloud-ms-api/ # Feign 接口 (Library) ├── zhipin-cloud-mq/ # 消息队列模块 (Library) ├── zhipin-cloud-gateway/ # API 网关 (:8600) ├── zhipin-cloud-ms-auth-service/ # 认证服务 (:8601) ├── zhipin-cloud-ms-base-service/ # 基础服务 (:8602) ├── zhipin-cloud-ms-user-service/ # 用户服务 (:8603) ├── zhipin-cloud-ms-company-service/ # 企业服务 - 写 (:8604) ├── zhipin-cloud-ms-job-service/ # 职位服务 - 写 (:8605) ├── zhipin-cloud-ms-resume-service/ # 简历服务 (:8606) ├── zhipin-cloud-ms-candidate-service/ # 候选人服务 (:8607) ├── zhipin-cloud-ms-interview-service/ # 面试服务 (:8608) ├── zhipin-cloud-ms-search-service/ # 搜索服务 - 读 (:8609) ├── zhipin-cloud-ms-admin-service/ # 管理端服务 (:8610) ├── zhipin-cloud-ms-web-recruiter/ # 招聘端 BFF (:8611) ├── zhipin-cloud-ms-web-applicant/ # 应聘端 BFF (:8612) └── zhipin-cloud-ms-web-admin/ # 管理端 BFF (:8613) ``` --- ## 八、AI 服务集成 ### 8.1 架构关系 ``` Java 微服务 ──Feign/REST──▶ zhipin-cloud-agent-server (Python, :8699) │ │ │ Kafka(职位发布/投递) ├── Agent 1001: 职位描述生成 └─────────────────────────────▶├── Agent 1002: 职位画像生成 ├── Agent 1003: 简历解析 ├── Agent 1004: 人岗匹配评分 ├── Agent 1005: AI 实时面试(SSE) ├── Agent 1006: 面试报告生成 ├── Agent 1007: 意图识别(NER+分类) └── Agent 1008: 职位分类映射 ``` ### 8.2 通信方式 - **实时 AI**(生成JD/面试/简历解析):HTTP REST 直接调用 - **离线 AI**(匹配评分/意图识别):Kafka 异步消费 → 结果写入 MySQL/ES/Redis --- ## 九、API 规范 ### 9.1 统一响应格式 ```json // 成功 { "code": 0, "message": "success", "data": {...} } // 分页 { "code": 0, "data": { "list": [...], "total": 100, "pageNum": 1, "pageSize": 10 } } // 错误 { "code": 2001, "message": "验证码已过期", "data": null } ``` ### 9.2 错误码分段 | 范围 | 模块 | |:---:|------| | 0 | 成功 | | 1000-1999 | 通用错误 | | 2000-2999 | 用户/认证 | | 3000-3999 | 职位/简历 | | 4000-4999 | AI/LLM | | 5000-5999 | 面试/Offer | | 6000-6999 | 企业/审核 | | 7000-7999 | 管理端 | --- ## 十、文档索引 | 文档 | 说明 | |------|------| | [前后端接口规范](https://gitee.com/zhipin-cloud/docs/blob/master/前后端接口规范.md) | API 设计规范 | | [微服务架构设计](https://gitee.com/zhipin-cloud/docs/blob/master/微服务架构设计.md) | 完整架构设计方案 | | [PRD - 招聘端](https://gitee.com/zhipin-cloud/docs/tree/master/prd/招聘端) | 招聘端产品需求文档 | --- ## 十一、注意事项 - 使用 **Lombok**,需要 IDE 安装 Lombok 插件 - 根 pom 为聚合工程,不打包 jar - `zhipin-cloud-common`、`zhipin-cloud-ms-domain`、`zhipin-cloud-ms-api`、`zhipin-cloud-mq` 为纯依赖库模块,不含 `@SpringBootApplication` - Gateway 使用 WebFlux,不含 Spring MVC / MyBatis 依赖 - search-service 使用 ES + Redis,不含 MySQL / MyBatis 依赖 - BFF 模块不含数据库操作 - 使用 `@NoAuthorization` 注解可跳过接口鉴权 - 全局异常由 `GlobalExceptionHandler` 统一处理 - API 文档使用 Knife4j (3.0.3) - 服务注册与配置中心使用 Nacos - 用户上下文通过 Gateway Header 注入 + Feign 拦截器透传 --- ## 十二、Docker 部署 ### 12.1 前提条件 - 宿主机已安装 JDK 17 + Maven 3.6+ + Docker - 已创建 Docker 网络: ```bash docker network create zhipin-net ``` ### 12.2 构建流程 ```bash # 1. 宿主机打包(-am 自动编译依赖模块) mvn package -pl <模块名> -am -DskipTests # 2. 删除旧镜像和容器 docker rm -f <镜像名> 2>/dev/null; docker rmi <镜像名>:latest 2>/dev/null # 3. 构建 Docker 镜像 docker build --build-arg MODULE=<模块名> -t <镜像名>:latest . # 4. 运行容器 docker run -d \ --name <镜像名> \ -p <宿主机端口>:8080 \ -e SPRING_PROFILES_ACTIVE=test \ -e JAVA_OPTS="-Xms256m -Xmx512m" \ -v /data/logs/<日志目录>:/data/logs/<日志目录> \ --network zhipin-net \ --restart unless-stopped \ <镜像名>:latest ``` ### 12.3 服务端口速查 | 服务 | 模块名 | 端口 | |------|--------|:---:| | gateway | `zhipin-cloud-gateway` | 8600 | | auth-service | `zhipin-cloud-ms-auth-service` | 8601 | | base-service | `zhipin-cloud-ms-base-service` | 8602 | | user-service | `zhipin-cloud-ms-user-service` | 8603 | | company-service | `zhipin-cloud-ms-company-service` | 8604 | | job-service | `zhipin-cloud-ms-job-service` | 8605 | | resume-service | `zhipin-cloud-ms-resume-service` | 8606 | | candidate-service | `zhipin-cloud-ms-candidate-service` | 8607 | | interview-service | `zhipin-cloud-ms-interview-service` | 8608 | | search-service | `zhipin-cloud-ms-search-service` | 8609 | | admin-service | `zhipin-cloud-ms-admin-service` | 8610 | | web-recruiter | `zhipin-cloud-ms-web-recruiter` | 8611 | | web-applicant | `zhipin-cloud-ms-web-applicant` | 8612 | | web-admin | `zhipin-cloud-ms-web-admin` | 8613 | | web-common | `zhipin-cloud-ms-web-common` | 8614 | ### 12.4 示例:部署 user-service ```bash # 打包 mvn package -pl zhipin-cloud-ms-user-service -am -DskipTests # 删除旧镜像和容器 docker rm -f zhipin-cloud-ms-user-service 2>/dev/null; docker rmi zhipin-cloud-ms-user-service:latest 2>/dev/null # 构建镜像 docker build --build-arg MODULE=zhipin-cloud-ms-user-service -t zhipin-cloud-ms-user-service:latest . # 运行 docker run -d \ --name zhipin-cloud-ms-user-service \ -p 8603:8080 \ -e SPRING_PROFILES_ACTIVE=test \ -e JAVA_OPTS="-Xms256m -Xmx512m" \ -v /data/logs/zhipin-cloud-ms-user:/data/logs/zhipin-cloud-ms-user \ --network zhipin-net \ --restart unless-stopped \ zhipin-cloud-ms-user-service:latest # 查看日志 docker logs -f zhipin-cloud-ms-user-service ``` ### 12.5 常用运维命令 | 操作 | 命令 | |------|------| | 查看所有服务 | `docker ps --filter "network=zhipin-net"` | | 查看日志 | `docker logs -f <容器名>` | | 停止服务 | `docker stop <容器名>` | | 删除容器 | `docker rm -f <容器名>` | | 重启服务 | `docker restart <容器名>` | | 进入容器 | `docker exec -it <容器名> sh` | | 重建并运行 | 打包 → `docker rm -f` + `docker rmi` → 构建 → `docker run` | ### 12.6 启动顺序 1. `zhipin-cloud-gateway` (8600) 2. `zhipin-cloud-ms-base-service` (8602) 3. `zhipin-cloud-ms-auth-service` (8601) 4. 其他业务服务(按需) 5. BFF 模块(按需) 注意:Gateway 启动后等待约 30s 路由表刷新完成。 ### 12.7 Dockerfile 说明 - 基础镜像:`registry.cn-hangzhou.aliyuncs.com/itheima/eclipse-temurin:17-jre-alpine`(JRE 17,非 JDK) - 采用宿主机 `mvn package` 打包,镜像仅复制 JAR 运行 - 通过 `ARG MODULE` 实现一个 Dockerfile 构建所有服务 - 通过 `SERVER_PORT` 环境变量覆盖运行端口 - 非 root 用户运行 --- ## 十三、许可证 本项目仅供学习与研究使用。 --- **智聘云图** - AI 让招聘更智能 🤖💼