面试 AI 辅导工具 — 基于 LLM 的 Web 面试练习、简历点评、投递记录管理平台。
- 面试模拟:从题库无放回抽取题目,逐题作答后由 LLM 流式评分并生成综合报告,支持导出 Markdown
- 简历管理:上传 PDF 简历,LLM 流式进行六维度诊断分析并提取技能清单,支持报告下载
- 岗位匹配:输入 JD,LLM 流式分析简历与岗位的匹配度、等级及针对性建议
- 场景出题:基于简历技能通过 RAG 检索题库,LLM 生成真实业务场景面试题
- 题目导入:支持 JSON/CSV/TXT 批量导入面试题,自动去重并重建向量索引
- 投递记录:管理求职投递进度,支持增删改查、状态筛选和统计概览
确保已安装 Python 3.10+:
python --version
# Python 3.10.x 或更高版本如果未安装,前往 python.org 下载安装,安装时勾选 Add Python to PATH。
确保已安装 Node.js 18+:
node --version
# v18.x.x 或更高版本如果未安装,前往 nodejs.org 下载 LTS 版本。
需要准备以下 API Key:
| 服务 | 用途 | 获取地址 |
|---|---|---|
| DeepSeek | LLM 调用(面试评分、简历诊断等) | platform.deepseek.com |
| 阿里云百炼 | 向量模型(题库语义检索) | dashscope.console.aliyun.com |
# 1. 安装依赖
pip install -r requirements.txt
# 2. 配置环境变量
cp .env.example .env
# 编辑 .env,填入你的 API Key(见下方配置说明)
# 3. 启动后端服务
python main.py
# 访问 http://localhost:8000/docs 查看 API 文档# 新开一个终端
cd frontend
# 1. 安装依赖
npm install
# 2. 启动开发服务器
npm run dev浏览器打开 http://localhost:5173 即可使用。
如果不使用 Web 界面,也可以通过命令行交互:
python main.py --cli.env 文件需要以下变量:
# LLM(DeepSeek)
OPENAI_API_KEY=sk-xxx
OPENAI_BASE_URL=https://api.deepseek.com
OPENAI_MODEL=deepseek-v4-flash
# 向量模型(阿里云百炼)
EMBEDDING_MODEL=text-embedding-v4
EMBEDDING_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
EMBEDDING_API_KEY=sk-xxx- 启动前后端后,打开 http://localhost:5173
- 在首页创建用户(输入用户名),然后设为当前用户
- 所有功能需要先选择/创建用户
- 进入简历管理页面,点击上传 PDF 简历
- 上传后点击「简历诊断」,LLM 会流式输出六维度分析报告
- 诊断完成后自动提取技能清单,可用于场景出题
- 切换到「岗位匹配分析」标签,粘贴 JD 文本,点击分析
- 两份报告均支持一键下载为 Markdown 文件
- 进入面试练习页面,选择题目数量和难度
- 点击「开始面试」,逐题作答
- 每道题提交后 LLM 流式给出评分和反馈
- 全部完成后生成综合报告,支持导出为 Markdown
- 进入题库管理页面查看现有题目
- 支持通过上传 JSON/CSV/TXT 文件批量导入新题
- 导入时自动去重,并重建向量索引
- 进入投递记录页面管理求职进度
- 支持新增、编辑、删除记录,按状态筛选
- 顶部展示各状态的统计概览
- 支持从 JSON 文件批量导入
Interview-ai-coach/
├── main.py # 入口(--cli 走 CLI,默认启动 Web)
├── src/ # 业务逻辑层
│ ├── core/ # LLM 工厂、提示词、对话历史
│ ├── interview/ # 面试引擎(抽题、评分、报告)
│ ├── resume/ # PDF 解析、简历诊断、JD 匹配
│ ├── rag/ # ChromaDB 向量检索
│ ├── delivery/ # 投递记录 CRUD
│ ├── io/ # 题目导入导出
│ └── user/ # 用户管理、数据持久化
├── api/ # FastAPI 路由层
├── frontend/ # Vue 3 前端
│ └── src/
│ ├── views/ # 页面(首页/简历/面试/题库/投递)
│ ├── router/ # 路由配置
│ ├── stores/ # Pinia 状态管理
│ └── api/ # 请求封装
├── data/ # 数据文件
│ ├── questions.json # 题库
│ └── users/ # 用户数据(简历、面试记录、投递记录)
├── chroma_db/ # 向量索引持久化
└── tests/ # 测试脚本
| 组件 | 技术 |
|---|---|
| LLM | DeepSeek(OpenAI 兼容接口) |
| 向量模型 | 阿里云百炼 text-embedding-v4 |
| 向量库 | ChromaDB |
| PDF 解析 | pdfplumber |
| 后端 | FastAPI + uvicorn |
| 前端 | Vue 3 + Vite + Element Plus |
| 数据存储 | JSON 文件 |
启动后端后访问 http://localhost:8000/docs 查看 Swagger 交互式文档。