基于大模型的智能简历分析Web应用,采用前后端分离架构,提供简历上传、AI分析和结果展示功能。
- 简历上传: 支持PDF、DOCX、TXT格式的简历文件上传
- AI分析: 基于大模型的智能简历分析,包括:
- 总体评分(0-100分)
- 优势点分析
- 待改进点识别
- 改进建议提供
- 工作经验分析
- 技能分析
- 教育背景分析
- 用户管理: 用户注册、登录、个人信息管理
- 结果展示: 直观的分析结果展示和详细报告
- 响应式设计: 支持桌面端和移动端访问
- 框架: FastAPI
- 语言: Python 3.11+
- 数据库: PostgreSQL / SQLite
- 认证: JWT
- 文件处理: PyPDF2, python-docx
- AI集成: OpenAI API
- 框架: Vue 3
- 构建工具: Vite
- UI库: Element Plus
- 状态管理: Pinia
- 路由: Vue Router
- HTTP客户端: Axios
- 容器化: Docker & Docker Compose
- Web服务器: Nginx
- 数据库: PostgreSQL
- 缓存: Redis
krinol/
├── backend/ # 后端服务
│ ├── app/
│ │ ├── models/ # 数据模型
│ │ ├── routes/ # API路由
│ │ ├── services/ # 业务逻辑
│ │ ├── utils/ # 工具函数
│ │ └── config/ # 配置文件
│ ├── main.py # 应用入口
│ └── requirements.txt # Python依赖
├── frontend/ # 前端应用
│ ├── src/
│ │ ├── components/ # 组件
│ │ ├── views/ # 页面
│ │ ├── stores/ # 状态管理
│ │ ├── router/ # 路由配置
│ │ └── utils/ # 工具函数
│ ├── public/ # 静态资源
│ └── package.json # 前端依赖
├── build/ # 构建文件目录
│ ├── backend/ # 后端构建文件
│ │ ├── Dockerfile # 后端Dockerfile
│ │ └── .dockerignore # 后端忽略文件
│ ├── frontend/ # 前端构建文件
│ │ ├── Dockerfile # 前端Dockerfile
│ │ └── .dockerignore # 前端忽略文件
│ ├── build.sh # 构建脚本
│ └── README.md # 构建说明
├── deploy/ # 部署文件目录
│ ├── docker-compose.yaml # 默认Docker Compose配置
│ ├── docker-compose.dev.yaml # 开发环境配置
│ ├── docker-compose.prod.yaml # 生产环境配置
│ ├── env.example # 环境变量示例
│ ├── deploy.sh # 部署脚本
│ └── README.md # 部署说明
├── Makefile # 自动化脚本
└── README.md # 项目文档
- Python 3.11+
- Node.js 18+
- Docker & Docker Compose (可选)
-
克隆项目
git clone <repository-url> cd krinol
-
安装依赖
make install
-
配置环境变量
# 复制环境变量模板 cp backend/env.example backend/.env # 编辑配置文件 vim backend/.env
-
启动开发服务
make dev
-
访问应用
- 前端: http://localhost:3000
- 后端API: http://localhost:8000
- API文档: http://localhost:8000/docs
-
使用Makefile
# 构建并启动容器 make docker-up # 停止容器 make docker-down # 构建镜像 make docker-build
-
使用部署脚本
# 进入部署目录 cd deploy # 配置环境变量 cp env.example .env # 编辑 .env 文件 # 部署服务 ./deploy.sh start # 查看日志 ./deploy.sh logs
-
访问应用
- 前端: http://localhost:3000
- 后端API: http://localhost:8000
- API文档: http://localhost:8000/docs
-
启动所有服务
make docker-up
-
访问应用
- 前端: http://localhost:3000
- 后端API: http://localhost:8000
在 backend/.env 文件中配置以下参数:
# 应用配置
APP_NAME=简历分析系统
DEBUG=true
# 数据库配置
DATABASE_URL=sqlite:///./resume_analysis.db
# JWT配置
SECRET_KEY=your-secret-key-change-in-production
# OpenAI配置
OPENAI_API_KEY=your-openai-api-key-here
OPENAI_MODEL=gpt-3.5-turbo
# 文件上传配置
UPLOAD_DIR=uploads
MAX_FILE_SIZE=10485760前端配置在 frontend/vite.config.js 中,主要配置API代理:
server: {
proxy: {
'/api': {
target: 'http://localhost:8000',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, '')
}
}
}POST /auth/register- 用户注册POST /auth/login- 用户登录GET /auth/me- 获取当前用户信息POST /auth/logout- 用户登出
POST /resumes/upload- 上传简历GET /resumes/- 获取简历列表GET /resumes/{resume_id}- 获取简历详情DELETE /resumes/{resume_id}- 删除简历
POST /analysis/analyze- 开始分析GET /analysis/{analysis_id}- 获取分析结果GET /analysis/- 获取分析列表
详细的API文档可以在运行后端服务后访问 http://localhost:8000/docs 查看。
# 运行所有测试
make test
# 只运行后端测试
cd backend && python -m pytest tests/ -v
# 只运行前端测试
cd frontend && npm run test# 格式化代码
make format
# 代码检查
make lint-
配置生产环境变量
# 设置生产环境配置 export NODE_ENV=production export DEBUG=false export SECRET_KEY=your-production-secret-key export OPENAI_API_KEY=your-openai-api-key
-
构建和启动
# 构建前端 make build # 启动Docker服务 make docker-up
| 变量名 | 说明 | 默认值 |
|---|---|---|
OPENAI_API_KEY |
OpenAI API密钥 | 必填 |
SECRET_KEY |
JWT密钥 | 必填 |
DATABASE_URL |
数据库连接URL | sqlite:///./resume_analysis.db |
DEBUG |
调试模式 | false |
UPLOAD_DIR |
文件上传目录 | uploads |
MAX_FILE_SIZE |
最大文件大小 | 10485760 |
- Fork 项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
如果您遇到任何问题或有任何建议,请:
- 查看 Issues 页面
- 创建新的 Issue
- 联系开发团队
- 初始版本发布
- 实现基本的简历上传和分析功能
- 支持PDF、DOCX、TXT格式
- 集成OpenAI API进行智能分析
- 提供完整的用户管理功能
- 响应式前端界面
注意: 请确保在生产环境中使用强密码和安全的API密钥,并定期更新依赖包以保持安全性。