Add Project_Design.md and update README.md
This commit is contained in:
parent
c7d8314d8b
commit
9e4d6bd740
28
Project_Design.md
Normal file
28
Project_Design.md
Normal 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
141
README.md
@ -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时代,“会用工具”只是基础,“会解决问题”才是核心。
|
|
||||||
Loading…
Reference in New Issue
Block a user