Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Interview Copilot

面试 AI 辅导工具 — 基于 LLM 的 Web 面试练习、简历点评、投递记录管理平台。

功能

  • 面试模拟:从题库无放回抽取题目,逐题作答后由 LLM 流式评分并生成综合报告,支持导出 Markdown
  • 简历管理:上传 PDF 简历,LLM 流式进行六维度诊断分析并提取技能清单,支持报告下载
  • 岗位匹配:输入 JD,LLM 流式分析简历与岗位的匹配度、等级及针对性建议
  • 场景出题:基于简历技能通过 RAG 检索题库,LLM 生成真实业务场景面试题
  • 题目导入:支持 JSON/CSV/TXT 批量导入面试题,自动去重并重建向量索引
  • 投递记录:管理求职投递进度,支持增删改查、状态筛选和统计概览

环境准备

1. Python(后端)

确保已安装 Python 3.10+

python --version
# Python 3.10.x 或更高版本

如果未安装,前往 python.org 下载安装,安装时勾选 Add Python to PATH

2. Node.js(前端)

确保已安装 Node.js 18+

node --version
# v18.x.x 或更高版本

如果未安装,前往 nodejs.org 下载 LTS 版本。

3. API Key

需要准备以下 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 即可使用。

CLI 模式

如果不使用 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

使用指南

首次使用

  1. 启动前后端后,打开 http://localhost:5173
  2. 首页创建用户(输入用户名),然后设为当前用户
  3. 所有功能需要先选择/创建用户

简历管理

  1. 进入简历管理页面,点击上传 PDF 简历
  2. 上传后点击「简历诊断」,LLM 会流式输出六维度分析报告
  3. 诊断完成后自动提取技能清单,可用于场景出题
  4. 切换到「岗位匹配分析」标签,粘贴 JD 文本,点击分析
  5. 两份报告均支持一键下载为 Markdown 文件

面试练习

  1. 进入面试练习页面,选择题目数量和难度
  2. 点击「开始面试」,逐题作答
  3. 每道题提交后 LLM 流式给出评分和反馈
  4. 全部完成后生成综合报告,支持导出为 Markdown

题库管理

  1. 进入题库管理页面查看现有题目
  2. 支持通过上传 JSON/CSV/TXT 文件批量导入新题
  3. 导入时自动去重,并重建向量索引

投递记录

  1. 进入投递记录页面管理求职进度
  2. 支持新增、编辑、删除记录,按状态筛选
  3. 顶部展示各状态的统计概览
  4. 支持从 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 文件

API 文档

启动后端后访问 http://localhost:8000/docs 查看 Swagger 交互式文档。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages