Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎓 实习面试辅助系统

基于 LangGraph 的多智能体实习面试准备系统,帮助学生准备实习面试。

✨ 功能特性

核心功能

  • 📄 简历解析 - 智能解析简历内容
  • 🔍 岗位搜索 - 搜索相关实习岗位
  • 📊 差距分析 - 分析与目标岗位的差距
  • 📚 学习计划 - 生成个性化学习路径
  • 简历优化 - 提供简历优化建议

高级功能

  • 🔐 用户认证 - JWT 安全认证系统
  • 🛡️ API 限流 - 防止 API 滥用
  • 💾 数据加密 - 敏感数据加密存储
  • 🗄️ 数据库支持 - PostgreSQL + Redis
  • 🐳 Docker 部署 - 一键容器化部署
  • 🚀 CI/CD 流程 - 自动化测试和部署
  • 📊 系统监控 - 实时监控系统状态
  • 🧪 完整测试 - 单元测试 + 集成测试
  • 🌍 国际化 - 支持中英文切换
  • 异步任务 - Celery + Redis 后台任务处理
  • 🔌 WebSocket - 实时推送分析进度和通知
  • 📧 邮件服务 - 欢迎邮件、分析完成通知、密码重置
  • 👥 管理员后台 - 用户管理、系统统计
  • 📝 简历历史 - 简历版本管理
  • 📅 学习任务 - 学习任务管理系统

🏗️ 技术栈

后端

  • 框架: Flask 3.0
  • AI: LangChain + DeepSeek API
  • 数据库: PostgreSQL 16
  • 缓存: Redis 7
  • 队列: Celery 5.3+
  • 实时通信: Flask-SocketIO
  • 邮件: Flask-Mail (SMTP)
  • 认证: JWT + bcrypt
  • 加密: PyCryptodome (AES)
  • 监控: psutil

前端

  • 框架: React
  • 样式: CSS3 (CSS Variables)
  • 主题: 深色/浅色模式
  • 响应式: 移动端适配

DevOps

  • 容器化: Docker + Docker Compose
  • 反向代理: Nginx
  • CI/CD: GitHub Actions
  • Web服务器: Gunicorn

项目结构

  • backend/ — Flask 后端代码、数据库模型和 API 实现
  • frontend/ — React 前端页面入口和样式
  • nginx/ — Nginx 反向代理配置
  • data/ — 本地数据库与上传文件存储
  • logs/ — 日志文件输出目录

安装

环境要求

  • Python 3.12+
  • Node.js 18+ (可选)
  • Docker & Docker Compose
  • PostgreSQL 16 (或使用 Docker)
  • Redis 7 (或使用 Docker)

本地开发

# 克隆项目
git clone <repository-url>
cd interview-agent

# 创建虚拟环境
python -m venv venv

# 激活虚拟环境
# Windows:
venv\Scripts\activate
# Linux/macOS:
source venv/bin/activate

# 升级 pip 并安装依赖
python -m pip install --upgrade pip
python -m pip install -r requirements.txt

# 配置环境变量
cp .env.example .env
# 编辑 .env 填入配置

# 本地开发如果没有 PostgreSQL,可选择 SQLite:
# DATABASE_URL=sqlite:///./data/interview_agent.db
# 并保持 FLASK_ENV=development, DEBUG=True

# 初始化数据库
cd backend
python -c "from database import init_db; init_db()"

# 运行开发服务器
python server_working.py

# 前端说明
前端现在已改为 React 架构,入口在 `frontend/index.html`。无需构建工具即可通过后端服务器直接访问应用。

Docker 部署

# 复制示例环境配置
cp .env.example .env
# 编辑 .env 填入配置

# 构建并启动
docker-compose up -d

# 查看日志
docker-compose logs -f

⚙️ 配置

环境变量

# Flask配置
FLASK_ENV=development
SECRET_KEY=your-secret-key

# 数据库
# 本地开发可直接使用 SQLite:
DATABASE_URL=sqlite:///./data/interview_agent.db
# 或在 Docker/生产中使用 PostgreSQL:
# DATABASE_URL=postgresql://user:pass@localhost:5432/interview_agent

# Redis
REDIS_URL=redis://localhost:6379/0

# LLM
DEEPSEEK_API_KEY=your-api-key
MODEL_PROVIDER=deepseek

🧪 测试

# 运行所有测试
pytest

# 运行测试并生成覆盖率报告
pytest --cov=. --cov-report=html

# 运行特定测试文件
pytest tests/test_auth.py -v

# 代码质量检查
flake8 .
black --check .
mypy .

🐳 开发

Docker 命令

# 构建镜像
docker build -t interview-agent .

# 运行容器
docker run -p 5000:5000 interview-agent

# 使用 Docker Compose
docker-compose up -d
docker-compose logs -f
docker-compose down

# 进入容器
docker-compose exec web bash

Nginx 配置

生产环境使用 Nginx 作为反向代理,配置见 nginx/nginx.conf

📊 监控

系统提供以下监控端点:

  • /health - 健康检查
  • /api/metrics - 系统指标(需认证)

监控内容:

  • CPU 使用率
  • 内存使用情况
  • 磁盘空间
  • 应用进程状态

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages