团队项目第一次作业

团队作业博客

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Class78-Grade2024-CS/
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Class78-Grade2024-CS/homework/16767
这个作业的目标 顺应智能体技术浪潮,以真实需求为出发点,自主选题并开发一个将大模型智能体深度嵌入的软件系统(形式不限),完成从需求调研、团队协作、系统设计、编码实现到上线运行的完整软件工程流程。我们希望通过这次作业,学会把"AI 能力"真正转化为"产品价值"——不是套壳聊天,而是让智能体成为系统里不可替代的一环。
学号 3124004489(张吉安)、3124004468(侯剑锋)

团队展示

团队名称:面面俱到队

团队成员

学号 姓名 性格 擅长技术 兴趣爱好 软工角色
3124004489 张吉安 沉稳专注,遇 bug 不慌,习惯先复现再动手 Python 后端、FastAPI、数据库、Agent 设计与部署 足球 后端开发 / Agent 设计 / 部署上线
3124004468 侯剑锋 细致耐心,重视用户体验,文档控 前端 HTML/CSS/JS、界面交互、测试与文档 篮球 前端开发 / 需求调研 / 测试文档

github地址

2553a/ai-mock-interviewer


一、选题:AI 模拟面试官——"面试一百次,只为真正那一次"

1.1 为什么做这个?

秋招、实习季,几乎每位应届生都会面对同一个困境:面试机会太贵,练手机会太少。

  • 第一次面试往往就投了最想去的公司,紧张、卡壳、被追问打崩;
  • 回答完没人反馈,不知道自己差在哪;
  • 网上题库是"背模板",背完照样被面试官三连追问戳穿。

我们对 3 位刚结束秋招面试的同学做了深度访谈。回收的反馈痛点高度一致:绝大多数同学面试前从未做过完整模拟练习,第一次面试往往直接投给最想去的公司;答完题没人反馈,不知道差在哪。大家缺的是一个"提问严格、追问犀利、还能给出针对性反馈"的陪练。

于是我们决定:把真实面试官"搬"进浏览器。

1.2 我们的产品

面面俱到 · AI 模拟面试官:求职者上传简历和目标岗位 JD,AI 面试官进行多轮真实感面试(默认 5 轮),面试结束后立即生成可视化评分报告。

1.3 杀手级功能

  1. 简历 × JD 定制出题——不是随机题库。AI 面试官会盯住你简历上自己写的数字追问:"你说索引优化把查询从 800ms 降到 50ms,具体怎么定位的问题?"(实测效果见第五节)
  2. 多轮追问状态机——回答含糊、背模板时,面试官会礼貌但坚决地深挖,还原真实面试压力感;
  3. 四维评分报告 + 雷达图——技术深度 / 表达逻辑 / 项目真实度 / 岗位匹配度四个维度打分,逐题点评 + 3 条可操作改进建议;
  4. (规划中)语音面试 + 实体面试亭——预留语音交互接口,未来结合 ESP32 等开源硬件打造沉浸式"面试亭",训练临场抗压能力。

1.4 愿景

我们希望"面面俱到"成为每一位大学生求职路上的标准装备:让每个人在真正走进面试间之前,都能先被一位严格、专业、不知疲倦的 AI 面试官"面试一百次"。当失败变得廉价,成功就会更有把握——我们希望用它把面试焦虑,变成看得见、练得到的成长曲线。


二、系统设计与技术方案

2.1 架构

[Web 前端:原生 HTML/CSS/JS,免构建]        ← 极简对话 UI + 纯 SVG 雷达图
        │ HTTP/JSON
[后端:Python FastAPI + SQLAlchemy + SQLite] ← 面试状态机 / 会话管理 / 报告聚合
        │ OpenAI 兼容接口
[智能体层:两个 Agent 协作]
  ├─ 面试官 Agent:多轮追问,盯简历细节
  └─ 评分官 Agent:结构化 JSON 评估报告

2.2 智能体平台选型

智能体层通过 OpenAI 兼容接口接入,换平台只需改 3 行环境变量。实测对比:

平台/模型 价格 实测表现
智谱 GLM-4.5-Flash 免费 出题精准、限流可接受,最终选用
智谱 GLM-4.7-Flash 免费 高峰期 429 限流严重
DeepSeek 极低 备选质量升级方案

2.3 项目规划(迭代)

  • 迭代 1(当前):文字面试全流程——传简历 → 5 轮问答 → 评分报告 ✅ 已完成并上线
  • 迭代 2:语音面试、历史面试记录对比、岗位题库增强
  • 迭代 3(展望):ESP32 实体"面试亭"硬件联动

注意:验收范围以需求文档承诺的迭代 1 为准,不画大饼。


三、开发实录:两个真实的"坑"(debug 日志摘录)

这两个问题都是联调第一晚真实发生、真实解决的——软件工程没有想象中顺利,但每个坑都值得记录。

坑 1:系统代理劫持 LLM 请求。 本机开着系统代理,FastAPI 服务端调用智谱 API 时全部走了死掉的代理,报 Failed to establish a new connection: [WinError 10061]。修复:OpenAI SDK 客户端显式 trust_env=False 直连。

坑 2:免费模型 429 限流。 高峰期频繁返回 该模型当前访问量过大。修复:客户端实现指数退避重试(3s/6s/12s + 随机抖动),超时时间提到 120s,并把模型从 GLM-4.7-Flash 切换到更稳定的 GLM-4.5-Flash。


四、上线情况

  • 线上地址: https://velvet-charm-retrieved-scoring.trycloudflare.com (Cloudflare 隧道 + Docker 化应用,答辩演示期间保持在线)
  • 部署小插曲(也是真实的工程经历):最初计划部署到 Render,因新账号需绑国际信用卡验证而放弃;转战 Koyeb 后发现其已被 Mistral 收购、控制台停止对新用户开放;最终选择 Cloudflare Tunnel 方案——应用已完成容器化(Dockerfile 已写入仓库),本地运行 + 隧道穿透即可获得公网 HTTPS 地址,零注册、零绑卡、零成本。这一路"平台排雷"的过程让我们对各家 PaaS 平台的现状有了第一手认识。
  • 测试账号:无需注册,打开即用
  • 演示数据:数据库中保留了一场完整面试记录(含评分报告)可供查看

五、实测效果

以下数据来自系统上线前的一次真实端到端测试(简历:普通本科应届生简历;JD:后端开发工程师)

5.1 面试官 Agent 的实际提问(5 轮)

轮次 面试官提问(节选) 追问点
1 为什么选择 FastAPI 而不是其他 Python 框架(比如 Django 或 Flask)? 技术选型理由
2 MySQL 索引优化的具体细节:索引类型、设计结构和验证效果? 回答偏题时再次聚焦追问
3 支付宝沙箱支付接入中的并发处理和数据一致性怎么保证? 简历项目细节深挖
4 如何扩展系统架构以支持 10 万日活、峰值 QPS 1000? 压力场景考察
5 与前端协作遇到接口对接问题时怎么解决? 协作软素质

可以看到,每一个问题都长在简历的细节上——第 2 轮回答跑题聊到 Redis 缓存时,面试官没有被带偏,而是继续追问索引本身。

5.2 评分官 Agent 的报告

总分:65 / 100,四维雷达图:

维度 得分 Agent 评语(原文摘录)
项目真实度 80 项目细节具体,能描述实际遇到的问题和解决方案
岗位匹配度 65 具备基本后端技能,但缺乏大规模系统架构设计经验
表达逻辑 65 表达清晰但回答时常偏离问题核心,缺乏针对性
技术深度 60 掌握基础后端技术,但对复杂系统设计和高并发场景理解有限

逐题点评示例(第 2 轮):"回答偏离问题核心,需要详细说明索引类型选择、联合索引设计"——与雷达图"表达逻辑偏题"的判断互相印证。

3 条改进建议(原文):

  1. 加强系统架构设计知识学习,特别是高并发场景下的扩展策略和性能优化;
  2. 提高面试回答的针对性,确保直接回应问题核心,避免偏离话题;
  3. 深入理解数据库原理和索引优化策略,能够详细解释不同索引类型的适用场景和优化方法。

5.3 答辩现场演示流程

准备页——粘贴简历和 JD,点「开始面试」:

image

  1. 打开线上地址 → 粘贴一份真实简历 + 目标岗位 JD → 开始面试
  2. 现场回答 2~3 轮,展示面试官"盯简历细节 + 跑题拉回"的追问能力(对话页实拍,第 1 问直接落在简历项目上):

image

  1. 完整跑完 5 轮后自动结束 → 生成评分报告与雷达图(报告页实拍,总分 + 四维评分条 + SVG 雷达图 + 逐题点评 + 改进建议一屏呈现):
    image

六、成员贡献与分工比例

成员 贡献 比例
张吉安 队长统筹与项目规划、后端架构与面试状态机、双 Agent(面试官/评分官)Prompt 设计、联调排障、容器化与部署上线、博客与答辩材料 55%
侯剑锋 需求调研与问卷访谈、前端三视图页面(准备/对话/报告)与 SVG 雷达图、交互优化、功能测试、需求分析文档 45%

参考资料

七.需求分析文档

https://docs.qq.com/doc/DY2txZ2ZWUVhSWHRy

posted @ 2026-11-08 18:39  2253  阅读(28)  评论(0)    收藏  举报