Add Project_Design.md and update README.md

This commit is contained in:
Group12 2026-01-08 19:27:49 +08:00
parent c7d8314d8b
commit 9e4d6bd740
2 changed files with 95 additions and 74 deletions

28
Project_Design.md Normal file
View File

@ -0,0 +1,28 @@
# AI帮你面试 - 项目设计文档
## 一句话描述
我的应用叫"AI帮你面试",它是为需要练习面试技能、获取专业反馈的求职者(尤其是应届毕业生、转行人员和希望提升面试技巧的在职人士)设计的智能面试辅助工具。
## 核心功能 (MVP)
1. **模拟面试流程**:提供结构化的面试步骤(自我介绍、技术评估、项目经验分享、问题解答),让用户体验完整的面试过程。
2. **AI回答分析**用户提交面试回答后系统通过AI技术分析内容的完整性、相关性和深度提供专业评分。
3. **个性化反馈建议**根据AI分析结果给出针对性的改进建议帮助用户提升面试表现。
## 交互流程
1. 用户打开App → 进入首页,看到应用名称"AI帮你面试"和"开始面试"按钮
2. 点击"开始面试" → 进入面试流程页面,显示四个面试环节列表
3. 选择面试环节(如"自我介绍")→ 看到问题描述和答题区域
4. 输入回答并提交 → 系统进行AI分析显示分析结果和评分
5. 查看反馈建议 → 了解改进方向,可选择进入下一个面试环节
## 技术架构
- **前端**HTML、CSS、JavaScript响应式设计适配不同设备
- **后端**Python Flask框架
- **AI分析**集成AI模型进行内容和情感分析当前为模拟实现可扩展为真实AI接口
- **数据存储**:当前使用内存存储,可扩展为数据库
## 用户价值
- 24/7可访问的模拟面试环境
- 低成本获取专业面试反馈
- 结构化的面试练习流程
- 针对性的改进建议,提升面试成功率

141
README.md
View File

@ -1,60 +1,90 @@
姓名 学号 主要贡献 (具体分工)
蔡朗 2411020227 核心逻辑开发、Prompt 编写
陆刘青 2411020110 前端界面设计、PPT 制作
刘俊伯 2411020102 文档撰写、测试与 Bug 修复
# AI帮你面试 # AI帮你面试
一个基于Flask的AI面试辅助系统,可以帮助用户模拟面试流程并提供AI分析反馈。 ## 一句话描述
AI帮你面试是为求职者应届毕业生、转行人员、在职提升者设计的智能面试辅助工具提供24/7可访问的模拟面试环境和AI专业反馈。
## 功能特性 ## 核心功能
- 模拟完整的面试流程 ### 1. 模拟面试流程
- AI回答分析功能 提供结构化的面试步骤(自我介绍、技术评估、项目经验分享、问题解答),让用户体验完整的面试过程。
- 面试结果评分
- RESTful API接口
- API密钥验证机制
## 技术栈 ### 2. AI回答分析
用户提交面试回答后系统通过AI技术分析内容的完整性、相关性和深度提供专业评分。
- **后端框架**: Flask 2.3+ ### 3. 个性化反馈建议
- **前端技术**: HTML, CSS, JavaScript 根据AI分析结果给出针对性的改进建议帮助用户提升面试表现。
- **环境配置**: python-dotenv
## 交互流程
1. **用户打开应用** → 进入首页,看到应用名称"AI帮你面试"和"开始面试"按钮
2. **点击"开始面试"** → 进入面试流程页面,显示四个面试环节列表
3. **选择面试环节** → 看到问题描述和答题区域
4. **提交回答** → 系统进行AI分析显示分析结果和评分
5. **查看反馈** → 了解改进方向,可选择进入下一个面试环节
## 快速开始 ## 快速开始
### 安装依赖 ### 安装依赖
本项目使用`uv`进行依赖管理确保已安装uv
```bash ```bash
pip install -r requirements.txt # 安装uv如果尚未安装
pip install uv
# 安装项目依赖
uv sync
``` ```
### 配置环境变量 ### 配置环境变量
复制并修改环境配置文件 修改`.env`文件配置API密钥
```bash ```bash
# 根据实际情况修改.env文件 # .env文件内容
AI_API_KEY=your_api_key_here
FLASK_DEBUG=True
``` ```
### 启动应用 ### 启动应用
```bash ```bash
python app.py uv run python app.py
``` ```
应用将在 http://127.0.0.1:5000 启动。 应用将在 http://127.0.0.1:5000 启动。
## 技术栈
- **后端框架**: 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文件
```
## API接口 ## API接口
### POST /analyze_answer ### POST /analyze_answer
分析面试回答内容 分析面试回答内容
**请求头**: **请求头**:
- X-API-Key: - X-API-Key: 你的API密钥
**请求体**: **请求体**:
```json ```json
{ {
@ -67,59 +97,22 @@ python app.py
获取面试结果 获取面试结果
**请求头**: **请求头**:
- X-API-Key: - X-API-Key: 你的API密钥
## 项目结构
```
AI帮你面试/
├── app.py # 主应用程序
├── .env # 环境配置文件
├── requirements.txt # 项目依赖
├── templates/ # HTML模板
│ ├── index.html
│ └── interview.html
└── static/ # 静态资源
├── styles.css
└── script.js
```
## 开发说明 ## 开发说明
- 开发环境下使用 `FLASK_DEBUG=True` 开启调试模式 - 开发环境下已配置`FLASK_DEBUG=True`开启调试模式
- 生产环境建议使用专业的WSGI服务器(如Gunicorn) - 生产环境建议使用专业的WSGI服务器如Gunicorn
- 请妥善保管API密钥,避免泄露 - API密钥验证已集成确保在生产环境中妥善保管密钥
## 团队成员
| 姓名 | 学号 | 主要贡献 |
|--------|------------|-------------------------|
| 蔡朗 | 2411020227 | 核心逻辑开发、Prompt编写 |
| 陆刘青 | 2411020110 | 前端界面设计、PPT制作 |
| 刘俊伯 | 2411020102 | 文档撰写、测试与Bug修复 |
## 许可证 ## 许可证
MIT License MIT License
# AI帮你面试:技术实践与AI时代的深度思考
## 选题思考:直击面试痛点的实用工具
选择开发“AI帮你面试”系统,源于对当前求职市场痛点的深刻观察。在竞争激烈的就业环境中,求职者尤其是应届毕业生、转行人员,普遍面临“面试练习机会少、反馈不及时、技巧提升慢”的困境。传统的模拟面试要么依赖朋友家人(缺乏专业性),要么付费请专业面试官(成本高昂),无法满足高频次、低成本的练习需求。
这个项目的核心价值在于:为用户提供24/7可访问的模拟面试环境,并通过AI实时分析回答内容,给出针对性的反馈和评分。它解决了三类用户的痛苦:
1. 应届毕业生 :缺乏面试经验,需要反复练习和专业指导,却因“无经验”陷入“没面试→没经验→没面试”的循环;
2. 转行求职者 :需要快速适应新领域的面试逻辑,弥补行业经验的不足,却难以找到跨领域的面试辅导资源;
3. 在职提升者 :希望通过模拟面试优化表达逻辑,冲击更高职位,却受制于时间和成本无法频繁参加专业辅导。
从技术角度看,这也是将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时代,“会用工具”只是基础,“会解决问题”才是核心。