# AI面试模拟系统
**Repository Path**: xinghai-git/ai-interview
## Basic Information
- **Project Name**: AI面试模拟系统
- **Description**: AI面试模拟系统,主要是简单模拟面试,AI负责模拟面试官,用户是面试者。
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 1
- **Created**: 2025-12-22
- **Last Updated**: 2026-01-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# AI 面试模拟系统




**基于 AI 技术的智能面试模拟平台,助您提前准备,自信应对真实面试**
[功能特性](#功能特性) • [快速开始](#快速开始) • [技术架构](#技术架构) • [使用指南](#使用指南)
## 📖 项目简介
AI 面试模拟系统是一个基于人工智能技术的全栈 Web 应用,旨在为求职者提供真实的面试模拟体验。系统集成了先进的 AI 语言模型,能够根据不同的职位类型和技术领域,生成个性化的面试问题,并提供专业的反馈和建议。
### 🎯 核心价值
- **真实模拟**:基于实际面试场景的问题库和评估标准
- **即时反馈**:AI 实时分析回答,提供专业评价和改进建议
- **个性化定制**:支持不同技术领域、职位类型和经验级别的面试
- **历史追踪**:完整的面试记录,方便用户查看进步轨迹
## ✨ 功能特性
### 🤖 AI 智能面试
- **多轮对话**:支持连续多轮的问答交互,模拟真实面试流程
- **智能提问**:AI 根据用户回答动态调整问题难度和方向
- **实时评估**:从技术深度、表达清晰、逻辑思维等多维度评价回答质量
- **专业反馈**:提供具体的改进建议和知识补充
### 👤 用户系统
- **安全认证**:用户注册、登录,密码加密存储
- **个人中心**:管理个人信息和偏好设置
- **面试历史**:查看所有面试记录,支持按时间、类型筛选
### 🎨 用户体验
- **响应式设计**:完美适配桌面端和移动端
- **实时交互**:消息自动滚动,快捷问题建议
- **流畅动画**:优雅的过渡效果和加载动画
- **直观界面**:简洁现代的 UI 设计,操作简单易用
## 🚀 快速开始
### 环境要求
- **Node.js**: ^20.19.0 || >=22.12.0
- **Python**: >=3.10
- **包管理器**:
- 前端: `bun` (必须使用,不支持 npm/yarn/pnpm)
- 后端: `uv` (必须使用,不支持 pip)
### 安装依赖
```bash
# 安装 bun (如果没有)
npm install -g bun
# 安装 uv (如果没有)
pip install uv -i https://repo.huaweicloud.com/repository/pypi/simple/
```
### 克隆项目
```bash
git clone
cd ai-interview
```
### 后端配置
1. 进入后端目录:
```bash
cd backend
```
2. 安装依赖:
```bash
uv sync
```
3. 配置环境变量(创建 `.env` 文件):
```env
# AI 模型配置(二选一)
AI_MODEL=deepseek # 或 kimi
# DeepSeek 配置
AI_deepseek_api_key=your_deepseek_api_key
deepseek_url=https://api.deepseek.com/v1
deepseek_model_chat=deepseek-chat
# Kimi 配置
AI_kimi_api_key=your_kimi_api_key
kimi_url=https://api.moonshot.cn/v1
kimi_model_turbo=moonshot-v1-8k
```
4. 启动后端服务:
```bash
uv run fastapi dev main.py
```
### 前端配置
1. 进入前端目录:
```bash
cd frontend
```
2. 安装依赖:
```bash
bun install
```
3. 启动前端服务:
```bash
bun run dev
```
### 访问应用
- **前端应用**: http://localhost:3000
- **后端 API**: http://localhost:8000
- **API 文档**: http://localhost:8000/docs
## 🏗️ 技术架构
### 前端架构
- **框架**: Vue 3 + TypeScript
- **构建工具**: Vite
- **状态管理**: Pinia
- **路由**: Vue Router
- **样式框架**: UnoCSS (原子化 CSS)
- **HTTP 客户端**: Axios
- **代理配置**: Vite 反向代理
### 后端架构
- **框架**: FastAPI + Python 3.10+
- **ORM**: SQLModel
- **数据库**: SQLite
- **认证**: JWT Token (简化版)
- **AI 集成**: OpenAI 兼容接口 (支持 DeepSeek/Kimi)
- **CORS**: 跨域资源共享配置
### 数据库设计
- **用户表 (User)**: 用户信息、认证数据
- **面试记录表 (InterviewRecord)**: 面试会话数据,采用并行数组存储多轮对话
- **索引优化**: 在 user_id 和 created_at 字段建立索引,提升查询性能
## 📁 项目结构
```
ai-interview/
├── frontend/ # 前端项目
│ ├── src/
│ │ ├── views/ # 页面组件
│ │ │ ├── HomeView.vue # 首页
│ │ │ ├── Interview.vue # AI面试对话页面
│ │ │ ├── History.vue # 历史记录页面
│ │ │ └── User/ # 用户相关页面
│ │ ├── components/ # 可复用组件
│ │ │ └── layout/
│ │ │ └── AppHeader.vue # 顶部导航栏
│ │ ├── stores/ # Pinia状态管理
│ │ │ ├── user.ts # 用户状态
│ │ │ ├── interview.ts # 面试状态
│ │ │ ├── admin.ts # 管理员状态
│ │ │ └── counter.ts # 计数器示例
│ │ ├── API/ # API接口函数
│ │ │ ├── interview.ts # 面试相关API
│ │ │ └── user.ts # 用户相关API
│ │ ├── App.vue # 根组件
│ │ └── main.ts # 应用入口
│ ├── vite.config.ts # Vite配置
│ ├── uno.config.ts # UnoCSS配置
│ └── package.json # 前端依赖
│
├── backend/ # 后端项目
│ ├── API/ # API路由
│ │ ├── User.py # 用户相关接口
│ │ └── AI.py # AI面试接口
│ ├── CURD/ # 数据库操作
│ │ ├── User/UserCRUD.py # 用户CRUD操作
│ │ └── Interview/InterviewCRUD.py # 面试记录CRUD操作
│ ├── model/ # 数据模型
│ │ ├── User.py # 用户模型
│ │ └── AIChat.py # AI聊天记录模型
│ ├── AI/ # AI服务
│ │ ├── AIChat.py # AI聊天客户端
│ │ └── prompt.py # AI提示词模板
│ ├── db.py # 数据库连接配置
│ ├── main.py # FastAPI应用入口
│ ├── pyproject.toml # 后端依赖配置
│ └── app.sqlite3 # SQLite数据库文件
│
├── 报告.md # 详细项目报告
├── 网站优化技术.md # 性能优化文档
└── CLAUDE.md # 项目开发指南
```
## 🎮 使用指南
### 开始面试
1. **选择面试类型**:
- 技术面试:前端开发、后端开发、全栈开发等
- 产品面试:产品经理、产品运营等
- 设计面试:UI/UX 设计师等
2. **选择技术领域**:
- 前端开发、后端开发、移动开发、数据分析等
3. **开始对话**:
- AI 会根据您的选择生成第一个问题
- 您可以输入回答或使用快捷问题建议
- AI 会实时评估您的回答并提供反馈
### 查看历史记录
- 在历史记录页面查看所有面试会话
- 显示面试时间、类型、轮次数和评分
- 支持查看详情、继续面试或删除记录
### 个性化设置
- 在个人中心管理用户信息
- 修改头像、昵称等个人信息
- 查看面试统计数据和进步趋势
## 🔧 开发指南
### 可用脚本
#### 前端 (frontend/)
```bash
# 安装依赖
bun install
# 开发服务器 (热重载)
bun run dev
# 生产构建
bun run build
# 类型检查
bun run type-check
# 预览构建结果
bun run preview
```
#### 后端 (backend/)
```bash
# 安装依赖
uv sync
# 开发服务器 (热重载)
uv run fastapi dev main.py
# 生产环境运行
uv run fastapi run main.py
# 数据库初始化 (如果需要)
uv run python -c "from db import init_db; init_db()"
```
### 配置说明
- **前端代理**: Vite 配置将 `/api` 请求代理到后端 `http://localhost:8000`
- **CORS 配置**: 后端允许来自 `localhost:3000` 的跨域请求
- **数据库**: SQLite 自动创建,无需额外配置
### API 接口
主要 API 端点:
- `POST /user/register` - 用户注册
- `POST /user/login` - 用户登录
- `GET /user/profile/{user_id}` - 获取用户信息
- `POST /interview/start` - 开始面试
- `POST /interview/submit-answer` - 提交回答
- `GET /interview/history` - 获取面试历史
- `DELETE /interview/record/{record_id}` - 删除面试记录
完整 API 文档: http://localhost:8000/docs
## 🎨 界面预览
### 首页

### AI面试对话页面

### 历史记录页面

## 📊 性能指标
| 指标 | 优化前 | 优化后 | 提升 |
|------|--------|--------|------|
| 首屏加载时间 | ~2.5s | ~0.8s | 68% ↑ |
| 数据库查询 | ~500ms | ~50ms | 90% ↑ |
| 初始包大小 | ~450KB | ~280KB | 38% ↓ |
## 🤝 贡献指南
欢迎贡献代码、报告 Bug 或提出功能建议!
1. Fork 本项目
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开启 Pull Request
## 📄 许可证
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情
## 🙏 致谢
- [Vue.js](https://vuejs.org/) - 渐进式 JavaScript 框架
- [FastAPI](https://fastapi.tiangolo.com/) - 现代、快速的 Web 框架
- [DeepSeek](https://www.deepseek.com/) - AI 模型服务
- [UnoCSS](https://unocss.dev/) - 原子化 CSS 引擎
---
**⭐ 如果这个项目对您有帮助,请给我们一个 Star!**
Made with ❤️ by AI Interview Team