# 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 Interview](https://img.shields.io/badge/AI-面试系统-blue) ![Vue.js](https://img.shields.io/badge/Vue.js-3.5.25+-green) ![FastAPI](https://img.shields.io/badge/FastAPI-0.122+-red) ![SQLite](https://img.shields.io/badge/SQLite-3.0+-orange) **基于 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 ## 🎨 界面预览 ### 首页 ![首页布局](./images/homepage.png) ### AI面试对话页面 ![AI面试对话](./images/interview_page.png) ### 历史记录页面 ![历史记录](./images/history_page.png) ## 📊 性能指标 | 指标 | 优化前 | 优化后 | 提升 | |------|--------|--------|------| | 首屏加载时间 | ~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