这是一个基于 Spring AI 的简历面试训练后端项目。用户上传 Markdown 格式简历后,系统会围绕项目经历、技术栈、个人职责和简历表达生成面试追问报告,帮助候选人提前准备“面试官会怎么深挖我”的问题。
项目不是普通的简历解析器,而是面向求职场景的 AI 后端应用:它关注追问、回答思路、薄弱点和简历优化建议。
- 上传
.md格式简历。 - 保存简历原文、文件名和内容哈希。
- 基于 Spring AI
ChatClient生成中文 Markdown 追问报告。 - 报告包含整体判断、高频追问、参考答案与可核验来源、项目深挖、简历优化建议和准备优先级。
- 使用 MySQL 持久化简历和分析报告。
- 使用 Redis 缓存相同简历内容的分析结果,减少重复 AI 调用。
- 提供一个中文 HTML 页面,可以上传简历、生成报告、查看历史记录。
- 未配置大模型 API Key 时,会启用本地兜底报告,方便先跑通流程。
- Java 21
- Spring Boot 3.5.x
- Spring AI 1.1.8
- MyBatis-Plus
- MySQL 8
- Redis
- 原生 HTML / CSS / JavaScript
src/main/java/com/daily/resumeinterrogator
├── controller
├── dto
├── entity
├── exception
├── mapper
├── service
└── service/impl
项目使用 MySQL,默认连接:
host: localhost
port: 3306
database: resume_interrogator
username:
password: 如果你的 MySQL 密码不同,修改 src/main/resources/application.yml:
spring:
datasource:
username: ${MYSQL_USERNAME:root}
password: ${MYSQL_PASSWORD:你的密码}启动前执行:
src/main/resources/schema.sql项目默认连接本机 Redis:
host: localhost
port: 6379
database: 0Redis 用途:缓存相同 Markdown 简历的 AI 分析结果。缓存 key 使用简历内容的 SHA-256 指纹,避免重复调用大模型。
如果要调用真实模型,需要配置环境变量:
OPENAI_API_KEY=你的 API Key
OPENAI_MODEL=gpt-4o-mini
如果不配置 OPENAI_API_KEY,配置文件会使用一个本地占位 key。真实调用会失败并进入本地兜底分析逻辑,因此项目仍然能演示完整流程。
- 用 IDEA 打开
2026-07-22文件夹。 - 等 Maven 依赖下载完成。
- 启动 MySQL,执行
schema.sql。 - 启动 Redis。
- 检查
application.yml里的 MySQL 账号密码。 - 运行
ResumeInterrogatorApplication。 - 浏览器打开:
http://localhost:8081
POST /api/resumes/upload
Content-Type: multipart/form-data
file: resume.mdPOST /api/resumes/{id}/interrogateGET /api/resumes/{id}/reportGET /api/resumesGET /api/resumes/reportsGET /api/resumes/dashboard项目保留了 docker-compose.yml,用于启动 MySQL 和 Redis:
docker compose up -d