2026-01-08 19:27:49 +08:00
|
|
|
|
# AI帮你面试
|
2026-01-07 15:16:50 +08:00
|
|
|
|
|
2026-01-08 19:27:49 +08:00
|
|
|
|
## 一句话描述
|
|
|
|
|
|
AI帮你面试是为求职者(应届毕业生、转行人员、在职提升者)设计的智能面试辅助工具,提供24/7可访问的模拟面试环境和AI专业反馈。
|
2026-01-07 15:07:55 +08:00
|
|
|
|
|
2026-01-08 19:27:49 +08:00
|
|
|
|
## 核心功能
|
2026-01-07 15:07:55 +08:00
|
|
|
|
|
2026-01-08 19:27:49 +08:00
|
|
|
|
### 1. 模拟面试流程
|
|
|
|
|
|
提供结构化的面试步骤(自我介绍、技术评估、项目经验分享、问题解答),让用户体验完整的面试过程。
|
2026-01-07 15:07:55 +08:00
|
|
|
|
|
2026-01-08 19:27:49 +08:00
|
|
|
|
### 2. AI回答分析
|
|
|
|
|
|
用户提交面试回答后,系统通过AI技术分析内容的完整性、相关性和深度,提供专业评分。
|
2026-01-07 15:07:55 +08:00
|
|
|
|
|
2026-01-08 19:27:49 +08:00
|
|
|
|
### 3. 个性化反馈建议
|
|
|
|
|
|
根据AI分析结果,给出针对性的改进建议,帮助用户提升面试表现。
|
2026-01-07 15:07:55 +08:00
|
|
|
|
|
2026-01-08 19:27:49 +08:00
|
|
|
|
## 交互流程
|
2026-01-07 15:07:55 +08:00
|
|
|
|
|
2026-01-08 19:27:49 +08:00
|
|
|
|
1. **用户打开应用** → 进入首页,看到应用名称"AI帮你面试"和"开始面试"按钮
|
|
|
|
|
|
2. **点击"开始面试"** → 进入面试流程页面,显示四个面试环节列表
|
|
|
|
|
|
3. **选择面试环节** → 看到问题描述和答题区域
|
|
|
|
|
|
4. **提交回答** → 系统进行AI分析,显示分析结果和评分
|
|
|
|
|
|
5. **查看反馈** → 了解改进方向,可选择进入下一个面试环节
|
2026-01-07 15:07:55 +08:00
|
|
|
|
|
|
|
|
|
|
## 快速开始
|
|
|
|
|
|
|
|
|
|
|
|
### 安装依赖
|
|
|
|
|
|
|
2026-01-08 19:27:49 +08:00
|
|
|
|
本项目使用`uv`进行依赖管理,确保已安装uv:
|
|
|
|
|
|
|
2026-01-07 15:07:55 +08:00
|
|
|
|
```bash
|
2026-01-08 19:27:49 +08:00
|
|
|
|
# 安装uv(如果尚未安装)
|
|
|
|
|
|
pip install uv
|
|
|
|
|
|
|
|
|
|
|
|
# 安装项目依赖
|
|
|
|
|
|
uv sync
|
2026-01-07 15:07:55 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 配置环境变量
|
|
|
|
|
|
|
2026-01-08 19:27:49 +08:00
|
|
|
|
修改`.env`文件配置API密钥:
|
2026-01-07 15:07:55 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-01-08 19:27:49 +08:00
|
|
|
|
# .env文件内容
|
|
|
|
|
|
AI_API_KEY=your_api_key_here
|
|
|
|
|
|
FLASK_DEBUG=True
|
2026-01-07 15:07:55 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 启动应用
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-01-08 19:27:49 +08:00
|
|
|
|
uv run python app.py
|
2026-01-07 15:07:55 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
应用将在 http://127.0.0.1:5000 启动。
|
|
|
|
|
|
|
2026-01-08 19:27:49 +08:00
|
|
|
|
## 技术栈
|
|
|
|
|
|
|
|
|
|
|
|
- **后端框架**: Flask 2.3+
|
|
|
|
|
|
- **前端技术**: HTML, CSS, JavaScript
|
|
|
|
|
|
- **依赖管理**: uv
|
|
|
|
|
|
- **环境配置**: python-dotenv
|
|
|
|
|
|
|
|
|
|
|
|
## 项目结构
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
AI帮你面试/
|
|
|
|
|
|
├── app.py # 主应用程序
|
|
|
|
|
|
├── .env # 环境配置文件
|
|
|
|
|
|
├── pyproject.toml # uv项目配置
|
|
|
|
|
|
├── requirements.txt # 依赖列表(兼容pip)
|
|
|
|
|
|
├── templates/ # HTML模板
|
|
|
|
|
|
│ ├── index.html # 首页
|
|
|
|
|
|
│ └── interview.html # 面试页面
|
|
|
|
|
|
└── static/ # 静态资源
|
|
|
|
|
|
├── styles.css # 样式文件
|
|
|
|
|
|
└── script.js # JavaScript文件
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-01-07 15:07:55 +08:00
|
|
|
|
## API接口
|
|
|
|
|
|
|
|
|
|
|
|
### POST /analyze_answer
|
|
|
|
|
|
分析面试回答内容
|
|
|
|
|
|
|
|
|
|
|
|
**请求头**:
|
2026-01-08 19:27:49 +08:00
|
|
|
|
- X-API-Key: 你的API密钥
|
|
|
|
|
|
|
2026-01-07 15:07:55 +08:00
|
|
|
|
**请求体**:
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"answer": "您的回答内容",
|
|
|
|
|
|
"question_id": 1
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### GET /get_results
|
|
|
|
|
|
获取面试结果
|
|
|
|
|
|
|
|
|
|
|
|
**请求头**:
|
2026-01-08 19:27:49 +08:00
|
|
|
|
- X-API-Key: 你的API密钥
|
2026-01-07 15:07:55 +08:00
|
|
|
|
|
|
|
|
|
|
## 开发说明
|
|
|
|
|
|
|
2026-01-08 19:27:49 +08:00
|
|
|
|
- 开发环境下已配置`FLASK_DEBUG=True`开启调试模式
|
|
|
|
|
|
- 生产环境建议使用专业的WSGI服务器(如Gunicorn)
|
|
|
|
|
|
- API密钥验证已集成,确保在生产环境中妥善保管密钥
|
2026-01-07 15:16:50 +08:00
|
|
|
|
|
2026-01-08 19:27:49 +08:00
|
|
|
|
## 团队成员
|
2026-01-07 15:16:50 +08:00
|
|
|
|
|
2026-01-08 19:27:49 +08:00
|
|
|
|
| 姓名 | 学号 | 主要贡献 |
|
|
|
|
|
|
|--------|------------|-------------------------|
|
|
|
|
|
|
| 蔡朗 | 2411020227 | 核心逻辑开发、Prompt编写 |
|
|
|
|
|
|
| 陆刘青 | 2411020110 | 前端界面设计、PPT制作 |
|
|
|
|
|
|
| 刘俊伯 | 2411020102 | 文档撰写、测试与Bug修复 |
|
2026-01-07 15:16:50 +08:00
|
|
|
|
|
2026-01-08 19:27:49 +08:00
|
|
|
|
## 许可证
|
2026-01-07 15:16:50 +08:00
|
|
|
|
|
2026-01-08 19:40:14 +08:00
|
|
|
|
MIT License
|
|
|
|
|
|
|
|
|
|
|
|
## 项目反思
|
|
|
|
|
|
|
|
|
|
|
|
### 选题思考:直击面试痛点的实用工具
|
|
|
|
|
|
选择开发“AI帮你面试”系统,源于对当前求职市场痛点的深刻观察。在竞争激烈的就业环境中,求职者尤其是应届毕业生、转行人员,普遍面临“面试练习机会少、反馈不及时、技巧提升慢”的困境。传统的模拟面试要么依赖朋友家人(缺乏专业性),要么付费请专业面试官(成本高昂),无法满足高频次、低成本的练习需求。
|
|
|
|
|
|
|
|
|
|
|
|
这个项目的核心价值在于:为用户提供24/7可访问的模拟面试环境,并通过AI实时分析回答内容,给出针对性的反馈和评分。它解决了三类用户的痛苦:
|
|
|
|
|
|
|
|
|
|
|
|
- **应届毕业生**:缺乏面试经验,需要反复练习和专业指导,却因“无经验”陷入“没面试→没经验→没面试”的循环;
|
|
|
|
|
|
- **转行求职者**:需要快速适应新领域的面试逻辑,弥补行业经验的不足,却难以找到跨领域的面试辅导资源;
|
|
|
|
|
|
- **在职提升者**:希望通过模拟面试优化表达逻辑,冲击更高职位,却受制于时间和成本无法频繁参加专业辅导。
|
|
|
|
|
|
|
|
|
|
|
|
从技术角度看,这也是将AI技术落地到实用场景的一次尝试——让AI不再是“实验室里的概念”,而是真正服务于用户的具体需求。
|
|
|
|
|
|
|
|
|
|
|
|
### AI协作体验:从惊喜到困惑的真实历程
|
|
|
|
|
|
第一次用AI写代码的感觉可以用“惊艳”来形容。当我输入“请用Flask框架搭建一个AI面试系统的基础架构,包含API密钥验证和分析接口”时,AI在几秒内就生成了完整的项目结构:app.py的基础代码、RESTful API路由设计、X-API-Key请求头验证逻辑甚至连依赖文件requirements.txt都一并生成。这极大地减少了搭建基础框架的机械劳动,让我能更快聚焦于核心功能(如面试分析算法)的实现。
|
|
|
|
|
|
|
|
|
|
|
|
让我直呼“牛逼”的Prompt是:“请为面试分析接口设计详细的请求参数answer文本、question_id、响应格式包含得分、优点、改进建议,并加入输入验证和错误处理机制”。这个Prompt的精妙之处在于“指令明确、边界清晰”——它不仅定义了功能,还规定了数据结构和异常处理的要求。AI生成的代码不仅包含了完整的JSON Schema验证,确保answer不为空、question_id为整数,还考虑了各种异常情况,如参数缺失返回400、API密钥无效返回401,甚至添加了详细的注释。这部分代码几乎无需修改即可直接使用,大大提升了开发效率。
|
|
|
|
|
|
|
|
|
|
|
|
但也有让我“想砸键盘”的时刻。比如当我输入“优化面试分析的算法逻辑,提升反馈准确性”这样模糊的指令时,AI生成的代码要么过于简单,只是基于关键词匹配的初级评分,要么引入了复杂却不实用的模型,如需要大量训练数据的BERT微调方案,完全偏离了项目“轻量级、易部署”的定位。还有一次,我让AI“修复API密钥验证的bug”,但由于没有提供具体的错误场景(实际是请求头中密钥的大小写问题),AI生成的修复方案反而将原本的请求头验证改成了URL参数验证,导致安全风险。这些经历让我意识到,与AI协作的核心是“清晰的指令设计”——越具体、越结构化的Prompt,越能得到符合预期的结果。
|
|
|
|
|
|
|
|
|
|
|
|
### 自我反思:AI时代程序员的核心竞争力
|
|
|
|
|
|
通过这个项目,我深刻思考了一个问题:在AI能快速生成代码的时代,程序员的核心竞争力到底是什么?
|
|
|
|
|
|
|
|
|
|
|
|
我认为,AI可以辅助甚至替代“写代码”这一技术性工作,但以下核心能力是AI无法替代的:
|
|
|
|
|
|
|
|
|
|
|
|
1. **问题分析与需求转化能力**
|
|
|
|
|
|
AI无法像人类一样深入理解用户的真实痛点。在项目中,我需要将“求职者需要面试反馈”这一模糊需求,转化为具体的功能点(如模拟面试流程、AI分析接口、结果评分),并定义清晰的技术实现路径(如使用Flask框架、RESTful API设计)。这种“从模糊到清晰”的转化,是AI难以完成的。
|
|
|
|
|
|
|
|
|
|
|
|
2. **系统架构设计能力**
|
|
|
|
|
|
AI可以生成局部代码,但无法站在全局角度设计系统。例如,我需要思考:如何设计API的层级结构以确保可扩展性?如何处理前后端的数据交互以提升用户体验?如何平衡系统性能与开发成本?这些架构层面的决策,需要对技术选型、业务场景的深刻理解,是AI无法独立完成的。
|
|
|
|
|
|
|
|
|
|
|
|
3. **调试与优化能力**
|
|
|
|
|
|
当系统出现bug时,AI可能无法准确诊断问题的根源。在项目开发中,我遇到了“API密钥验证失败但日志无错误信息”的问题,通过逐步排查(检查请求头格式、密钥加密方式、中间件执行顺序),最终定位到是“请求头中密钥值包含空格”的边缘情况。这种“抽丝剥茧”的调试能力,需要对系统的深入理解和丰富的经验。
|
|
|
|
|
|
|
|
|
|
|
|
4. **用户体验设计能力**
|
|
|
|
|
|
技术最终要服务于用户,AI无法像人类一样站在用户的角度思考。例如,在设计面试界面时,我考虑了用户的紧张情绪,优化了交互流程(减少操作步骤、添加进度提示),提升了使用体验。这种“以用户为中心”的设计思维,是AI缺乏的。
|
|
|
|
|
|
|
|
|
|
|
|
### 结语
|
|
|
|
|
|
“AI帮你面试”项目不仅是一次技术实践,更是一次对AI时代编程工作的深度审视。它让我明白:技术的发展不是取代人类,而是让人类能更好地发挥创造力和解决复杂问题的能力。未来我将继续探索AI与编程的结合方式,在提升技术能力的同时,更注重培养不可替代的核心竞争力——毕竟,在AI时代,“会用工具”只是基础,“会解决问题”才是核心。
|