项目源码|AI 模拟面试系统|Spring Boot 3 + Vue 3 · 数字人面试官 + 网页笔试 · 无 Key 也能跑

项目源码|AI 模拟面试系统|Spring Boot 3 + Vue 3 · 数字人面试官 + 网页笔试 · 无 Key 也能跑-远影归灯
Light-Interview 源码包
此内容为付费资源,请付费后查看
80积分
付费资源

准备校招或实习面试时,最难的往往不是刷题,而是对着镜头把经历讲清楚。Light-Interview 是一套本机可跑的 AI 模拟面试系统:填岗位和职位描述(JD),系统出题,数字人面试官提问,你在浏览器里逐题录像回答,结束后给出转写和多维度评分,低分题还能进错题本重练。另有网页笔试和简历库,本篇没有把这两项做到可交付的实测。

本篇在本机用源码跑通,全程没有大模型 Key,走官方提供的演示模式。结论先说:注册登录、训练总览、配置练习、数字人提问并录制一题、查看带分数的报告、打开错题本,这些都实测过。 没有 Key 时,出题会退回内置题库,转写和评分是本地占位,数字人语音会变成字幕。真实出题、转写、配音需要阿里百炼 Key,而且不支持本地 Ollama。下面照实写。下载区是源码包和中文部署说明,积分 80。

4 步上手

  1. 准备环境并改配置:安装 JDK 21、Maven、Node.js、Docker 和 ffmpeg。复制 .env.example 为 .env,把 AUTH_TOKEN_SECRET 换成一段足够长的随机值。演示模式再加三行:Ali_API_KEY=local-placeholder、PRACTICE_ASR_PROVIDER=stub、PRACTICE_EVALUATION_PROVIDER=stub。
  2. 只起基础设施:在仓库根目录执行 docker compose up -d postgres redis s3mock。默认端口只绑 127.0.0.1。等到 Postgres 和 Redis 显示 healthy。
  3. 启动后端:mvn -B package -DskipTests,再 java -jar consumer/target/consumer-0.0.1-SNAPSHOT.jar。启动时 Flyway(数据库迁移工具)会自动建表。访问 http://127.0.0.1:8088/actuator/health,看到 {"status":"UP"} 即可。
  4. 启动前端:npm --prefix web ci,再 npm --prefix web run dev。打开 http://127.0.0.1:5173,自己注册一个账号,从训练总览进入练习。

它是什么

  • 模拟面试:按你填的岗位、公司和 JD 组织题目。有 Key 时由模型出题;没有 Key 时用内置题库,练习照样能开始。
  • 数字人面试官:用预先准备的形象来提问。有配音时按音量驱动嘴型;没有配音时页面会提示「语音暂不可用,请阅读下方问题」,题干仍在。
  • 逐题录像与报告:每题独立录制、保存。结束后后台做转写(把回答写成文字)和多维评分,报告里能回放、看建议和证据片段。
  • 错题本:最好一次仍低于 75 分的题会进来,可以重练。
  • 网页笔试(Monaco 编辑器 + Docker 判题沙箱)和简历库(按 JD 优化并导出 Word/PDF)在产品里有入口,支持但本篇未实测判题与导出。

技术栈:Java 21、Spring Boot 3.4、Spring AI Alibaba、Vue 3.5、Vite 6、Element Plus、Pinia、PostgreSQL 16(带 pgvector)、Redis 7、Flyway、Docker。本篇用的是「只起数据库等基础设施、本机跑前后端」这种方式;一条命令把前后端也打进容器的方式,本篇未实测。

本机实跑

1. 登录页

登录页

看这里:左侧是产品说明,右侧可以登录或切换到「注册」。本机自己注册了一个账号,截图是还没填写时的登录页。不要在公共设备上保存登录状态。

2. 训练总览

训练总览与今日计划

看这里:这是跑完一场练习之后的首页。右上「今天练什么」是默认的通用训练项;中间能看到已完成 1 次练习、录了 4 秒。下方「训练档案」里出现了最近得分和五个评分维度。还没添加求职目标时,左侧会提示你去补岗位和面试日期。

3. 配置练习

练习配置页

看这里:我填了目标岗位「Java 后端工程师」、公司「示例科技」,以及一段简短的 JD。面试方式选「逐题练习」(每题录完可回看重录),类型选「技术能力」,风格选「专业平和」,难度「标准」,问题数量 3 道。面试官追问关掉了,避免演示模式下去等一次必然失败的模型请求。点「继续检测设备」。

没有 Key 时,出题接口会返回 503,页面自动改用内置题库,练习仍能创建。本场三道题分别是项目设计、问题排查和技术原理。

4. 数字人提问并录制

数字人面试官提问与录制状态

看这里:先到设备检测页开启摄像头和麦克风。这台机器没有真实摄像头,浏览器用了假设备,所以预览是绿色测试画面。进入面试后,数字人在上方,题干在中间。配音接口同样不可用,状态写成「语音暂不可用,请阅读下方问题」。点「开始回答」后出现「录制中」和计时,本张截于 00:03。录完一题即可点「结束练习」去看报告,不必把 3 道题都答完。

5. 逐题报告

练习报告:评分维度与转写

看这里:分析完成后综合 75.0 分。右侧能看到五个维度:内容相关性 78、回答完整度 72、专业程度 75、STAR 结构(Situation / Task / Action / Result,用情景、任务、行动、结果把经历讲完整)70、回答逻辑 76。转写明确写着「本地模拟转写」,改进建议也标明是「本地模拟评分」。绿色画面是假设备录下来的视频,不是真实摄像头。第 2、第 3 题没答,显示「未作答」。

演示模式的评分是固定占位,不能当成对表达水平的判断。换上百炼 Key 后,这里才会变成针对本题的真实建议。

6. 错题本

错题本

看这里:错题本页可以打开,规则写在副标题里——只收最好一次也没到 75 分的题。演示模式的占位分正好是 75,等于及格线,所以这场没有题目进来。页面提示「错题本是空的」。功能入口实测可用,低分收录在本篇的演示分数下没有触发。

7. 简历库与笔试入口

简历库

看这里:侧栏「我的简历」能进入简历库,可以添加简历,再按目标岗位做 AI 优化并导出。本篇只打开了这个空页面,支持但本篇未实测上传、优化和导出。

笔试练习配置

看这里:笔试页可以配置岗位、题型(上机编程、数据库题、选择题等)和语言。右上角清楚写着「代码沙箱未启用(只能出题不能运行)」。默认 CODE_RUNNER_ENABLED=false。网页 IDE 和 Docker 判题在产品里有,支持但本篇未实测。如果自己打开开关,只在本机临时使用,不要暴露到公网。

8. 本机进程

基础设施容器与健康检查

看这里:Postgres、Redis、S3 模拟服务都绑在 127.0.0.1,前两个 healthy。后端 8088 的健康检查返回 UP,前端 5173 返回 200。JDK 是 21。

实测踩坑

  1. JDK 必须是 21:用 17 或 25 可能直接编不过。先确认 java -version。
  2. 没有 Key 也能跑完整练习,但能力是降级的:出题 503 后回退内置题库;配音 503 后改看字幕;转写和评分是 stub(本地占位实现),分数固定约 75 分。不要把它写成「已经接好了本地大模型」。它不支持 Ollama。
  3. 占位分不会进错题本:及格线是 75,规则是「低于 75」才收录。想看错题进本,需要真实评分或一场低于 75 的结果。
  4. 失败的模型请求也可能扣额度:演示模式顶部额度从 120 掉到了 116。出题和配音虽然失败了,仍可能计入每日限额。本地只想看界面时,可以把 QUOTA_MODEL_ENABLED 设为 false。
  5. 录像权限:非 localhost 访问时,浏览器通常要 HTTPS 才给摄像头和麦克风。没有摄像头时,可用 Chrome 的假设备参数先把流程走通,预览会是绿色测试画面。
  6. 判题沙箱默认关闭:打开后会在本机 Docker 里跑用户代码。只在自己的电脑上开,测完改回 false,不要把端口映射到公网。
  7. 端口只绑本机:compose 默认 BIND_HOST=127.0.0.1。需要局域网访问时再改,同时要处理 HTTPS 和权限问题。

安全提醒

  • 源码包里已去掉 external/static/images/ 下的名人照片,避免肖像权问题。数字人帧图因界面需要而保留,不要拿去当封面或宣传图。
  • 包内没有 .env,只有 .env.example。不要把百炼 Key 写进要分享的压缩包。
  • 前后端都建议只监听本机。开启代码沙箱属于高风险操作,仅限自己的测试机。

下载说明

积分下载源码包 interview-src.zip:含 Light-Interview 源码、完整 Apache-2.0 LICENSE,以及中文 DEPLOY.txt。为控制体积并避开风险,删除了 Git 历史、依赖目录、构建产物、演示视频、测试证据,以及上面提到的名人照片。界面运行需要的数字人帧图仍在。

本项目基于 Apache-2.0 开源,源码包保留原协议与署名。

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容