开源免费AI面试助手interview-assistant

0 阅读11分钟

前言

写这篇文章的初衷

求职面试往往充满压力——面对突如其来的技术题或行为题,即使准备充分的候选人也可能因紧张而发挥失常。同时,AI 的能力正在快速进化:候选人会用 AI 练题、整理项目与模拟问答,企业也开始默认"AI 辅助工作"会成为日常能力。传统只看记忆与套路回答的面试方式,正在被更强调真实表达、临场拆解、追问深挖与协作能力的新型面试替代。

在这样的大背景下,一个能在高压对话中帮你快速组织思路、稳定输出的实时辅助系统,正在成为刚需。

市面上主流工具比如面试侠按时长收费,一小时几十元,长期使用成本很高;并且所有音频、对话数据都会上传第三方云端,对于重视代码、面试隐私的开发从业者来说存在数据泄露风险。

翻GitHub开源项目后找到了 interview-assistant,完整本地部署试用了一下,整体功能完善、支持本地离线语音识别,音频全程保存在本机不上传外网,完美解决收费、隐私两大痛点。

网上目前只有项目官方简易README,缺少适配Mac M系列芯片的完整落地教程,部署过程中我踩了不少坑:Electron Node版本冲突、BlackHole虚拟音频配置、本地Qwen3-ASR对接配置、接口调用报错等问题。 因此整理这份完整踩坑+部署教程分享给大家,如果本文对你有帮助,欢迎前往项目GitHub仓库给作者点一个Star支持开源开发者! 仓库地址:github.com/powAu3/inte… 最新稳定版下载:github.com/powAu3/inte…

同类开源项目推荐interview-assistant 外,GitHub 上还有另外两个开源面试助手项目,感兴趣的朋友可以按需尝试:

  • interview-copilot:Electron 桌面应用,双声道实时转录(Deepgram)+ LLM 答题(DeepSeek/Gemini/OpenAI/Ollama),支持简历/职位描述作为上下文,适合面试练习与模拟场景。
  • OpenInterview:Go 后端 + 浏览器前端架构,支持腾讯云 ASR 或本地 Sherpa-onnx 语音识别,内置 RAG 知识库检索,适合偏好轻量部署的用户。

为什么强烈推荐这款开源面试助手

  1. 零成本开源,使用成本低 软件本身完全免费、无付费功能、无额度限制。相比面试侠等按时长/月度订阅收费的商用工具(几十元到上百元一个月),你只需为实际使用的模型 API 按量付费——面试 API 总成本往往不到商用工具的零头。
  2. 本地优先,隐私可控 支持对接 Whisper、Qwen3-ASR GGUF 等本地语音识别模型,音频全程本机处理、不上传第三方服务器;支持截图审题、识图模型分析,上传的简历和知识库笔记存储在本地 SQLite 数据库。公网模型场景下隐私性取决于服务商,可根据需求自行选择。
  3. 投屏隐身,桌面端完整体验 Electron 桌面模式提供共享隐身、Boss Key、系统托盘、轻量悬浮问答框,腾讯会议/飞书共享屏幕时不会被他人看到软件窗口——这是本工具区别于网页面试助手的核心优势。浏览器网络模式则是不需要投屏隐身时的轻量备选。
  4. 围绕面试全场景设计 不是"问答玩具",而是围绕真实面试现场的节奏:系统音频/麦克风实时转写、自动识别问题、多模型并行生成回答;卡壳时可截图审题、引用本地笔记;模拟练习支持 AI 面试官出题+逐题评价+练习报告,搭配 Edge-TTS 语音播报还原真实问答节奏;附赠能力分析、求职看板等复盘提升工具。

产品介绍

主界面速览

在这里插入图片描述

功能总览

模块能做什么
实时辅助ASR 转写 → 问题识别 → 多模型回答 → 截图审题 / 知识库引用
知识库上传 .md / .txt / .log / .docx / .pdf,支持检索测试和回答引用
模拟练习AI 面试官出题、逐题评价、练习报告
能力分析知识点标签、历史问答记录、薄弱点趋势
简历优化上传简历,对照 JD 给出优化建议和改写方向
求职看板表格 / Kanban、状态标签、拖拽排序、Offer 对比
设置中心模型管理、STT 引擎、主题、偏好、快捷键、截图区域等配置

面试主流程

  1. 选择系统音频或麦克风,点击开始
  2. 左侧实时转写持续落字,系统自动识别"值得回答"的问题
  3. 右侧答案区按当前模型配置流式生成正式回答
  4. 需要审图时,可粘贴截图,把题目、代码片段或页面内容交给模型分析
  5. 开启知识库后,答案上方会显示引用角标,关联你的本地笔记或资料
  6. 空间紧张时,可用 ⌘⇧J / Ctrl+Shift+J 折叠左侧实时转录面板,让回答区铺满
  7. 桌面模式下还可配合共享隐身、Boss Key 和悬浮提示窗一起使用

技术栈

技术
前端React 18 · TypeScript · Vite · Zustand · Tailwind CSS
后端Python 3.10+ · FastAPI · Uvicorn · WebSocket
语音识别faster-whisper · 豆包 (Volcengine) · 通用 ASR (OpenAI-compatible)
LLMOpenAI 兼容接口 · 多模型并行 · Think 推理 · 识图
存储SQLite · 本地简历历史 · 知识库索引
桌面Electron

开源协议

本项目采用 CC BY-NC 4.0 协议,仅供非商业使用。

一、环境前置依赖安装(Mac)

1. 基础环境

  • Python 3.10及以上版本
  • Node.js 18+(Electron桌面模式需要)
  • FFmpeg(音频解码必备)
  • BlackHole 2ch 虚拟音频设备(捕获会议系统音频)

BlackHole安装

brew install blackhole-2ch

安装完成后需要重启Mac,确保驱动正常加载。

二、下载项目源码

两种方式任选其一

方式1:Git克隆

git clone https://github.com/powAu3/interview-assistant.git
cd interview-assistant

方式2:直接下载最新发行版压缩包

wget https://github.com/powAu3/interview-assistant/archive/refs/tags/v1.3.0.tar.gz
tar -zxvf v1.3.0.tar.gz
cd interview-assistant-1.3.0

三、安装依赖与配置模型

1. 安装后端Python依赖

pip install -r backend/requirements.txt

2. 构建前端

cd frontend
npm install
npm run build
cd ..

首次启动时如果前端尚未构建,start.py 会自动安装并构建前端,因此本机仍需要 Node.js。

3. 配置模型

cp backend/config.example.json backend/config.json

编辑 backend.config.json,填入你要使用的模型 API Key / Base URL / 模型名。如果要启用识图、知识库、豆包语音识别,也在这里一并配置。

也可以通过桌面端右上角「设置」可视化配置语音模型、语言模型等,无需手动编辑 JSON,界面更直观。

参考文档:

四、两种启动模式详解

模式1:浏览器网络模式

无需安装Electron桌面程序,仅通过浏览器访问服务,规避所有Node版本、npm下载报错:

python3 start.py --mode network

启动完成后终端会打印访问地址,浏览器打开 http://localhost:18080 即可使用完整功能。

模式2:Electron桌面窗口模式(完整功能,投屏隐身)

桌面模式内置全局快捷键、系统托盘、屏幕共享隐身功能:

  1. 项目要求 Node.js 18+;
  2. 使用国内镜像安装依赖:
cd desktop
ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ npm install --registry=https://registry.npmmirror.com
cd ..

如果 Electron 下载卡住或失败,可删除 desktop/package-lock.json 后重新执行上述命令,强制从镜像重新解析依赖。

  1. 启动桌面端
python3 start.py

后台运行建议:面试时建议让服务在后台运行,避免终端窗口占据屏幕或被误关。可用 nohup 后台启动:

nohup python3 start.py > /dev/null 2>&1 &

停止时用 pkill -f "start.py" 即可。

手机端协作:桌面端启动后,点击右上角「设置」可看到局域网访问二维码,手机扫码即可在手机浏览器中访问同一服务(手机和电脑需在同一 WiFi 下,音频仍由电脑端采集)。应用场景举例:当 ASR 识别面试官问题不准确时,可让旁边协助的人通过手机帮你手动输入问题,电脑端实时生成回答。

五、BlackHole音频MIDI配置

软件支持双声道独立采集:面试官音频通过 BlackHole 抓取系统音频,你的声音通过 MacBook 麦克风直接录入。因此只需配置一个「多输出设备」,不需要聚合输入设备:

  1. 聚焦搜索打开「音频MIDI设置」,左下角点击+

  2. 创建多输出设备

    • 勾选:Built-in Output、BlackHole 2ch
    • 主输出设备选择 Built-in Output,BlackHole 开启漂移校正
    • 重命名为「会议录音输出」

    在这里插入图片描述

  3. 系统设置-声音

    • 输出:选择「会议录音输出」
    • 输入:保持 Built-in Microphone(不要改)

    在这里插入图片描述

  4. 打开面试助手,分别选择音频源

    • 会议音频(听面试官):选择 BlackHole 2ch
    • 我的麦克风(记录我的回答):选择 Built-in Microphone

原理:多输出设备把系统音频同时路由到你能听到的扬声器 + BlackHole 虚拟通道,软件从 BlackHole 抓取面试官声音,从麦克风录入你的声音,两路独立互不干扰。

配置完成后重启面试助手,即可解决未检测到系统音频捕获设备报错。

六、(选配)本地 RunXun 语音识别

说明:完成前五个步骤后,面试助手已可正常使用,默认使用 Whisper 作为语音识别引擎。本节为进阶优化步骤——RunXun 内置 Qwen3-ASR 模型,中文识别效果优于 Whisper,尤其在技术术语、中英混合、嘈杂会议场景下表现更好。如果你对 Whisper 的识别效果满意,可以跳过本节。

什么是 RunXun

RunXun 是一款 macOS 平台的语音识别软件,底层搭载 Qwen3-ASR GGUF 模型,0.6B 量化版本仅占用 1GB 左右内存,Mac M3 无压力。相比 Whisper,中文口语、技术面试术语识别错误率更低,支持中英混合对话。

安装与配置

  1. 下载最新版:RUNXUN_0.12.0_universal.dmg
  2. 正常安装并启动,软件会自动加载内置的 Qwen3-ASR 推理服务
  3. 服务正常运行在 127.0.0.1:8765 后,打开面试助手,找到「面试官 ASR 引擎配置」页面,按以下参数填写:
配置项填写内容
Base URLhttp://127.0.0.1:8765/v1
API Keylocal(本地服务无鉴权,任意字符串均可)
Modelqwen3-asr
自定义Header留空,无需配置
  1. 点击「保存并测试」,界面提示成功即可开始使用

Whisper 与 RunXun 对比

Whisper(默认)RunXun(选配)
模型体积0.6B 量化约 1GB 内存
中文口语错误率较高识别精度大幅提升
技术术语容易识别错误适配面试场景
中英混合支持一般支持良好
部署难度开箱即用需额外安装 RunXun

七、总结与使用建议

  1. 基础使用:完成前五个步骤即可使用,默认 Whisper 语音识别;
  2. 需要投屏隐身、全局快捷键:使用 Electron 桌面端(步骤四模式2);
  3. 追求极致中文识别效果:参考步骤六选配 RunXun,中文术语、中英混合场景识别更精准;
  4. 仅临时模拟面试练习:可搭配 Edge-TTS 在线语音播报面试题,无需额外部署 TTS 模型。

💡 诚实提醒:面试助手只是辅助,无法替代硬实力。 本工具的定位是帮助那些本身具备能力、但因紧张或表达不畅而发挥失常的候选人更好地展示自己——它能在你卡壳时提供思路框架,在你遗忘时唤起关键知识点,但无法替你写出你从未掌握的代码、解决你从未理解的问题。 面试表现与实际能力严重不匹配,即使侥幸通过面试,入职后也可能因无法胜任而陷入困境。技术面试的底层逻辑始终是考察真实能力,工具只是锦上添花,不是雪中送炭。请在日常学习中持续积累,让工具成为你真实能力的放大器,而非遮羞布。

开源支持

如果本篇完整部署教程帮你成功搭建本地面试助手,欢迎前往项目GitHub仓库给作者点亮Star,支持开源开发者持续更新迭代! 项目仓库:github.com/powAu3/inte… 最新稳定版v1.3.0下载地址:github.com/powAu3/inte…

⚠️ 免责声明

本项目仅供学习研究使用。请勿将本工具用于学术不端、违规考试或其他不合规场景,使用后果由使用者自行承担。

在真实面试中未经对方知情同意使用实时答题辅助,可能违反对方公司政策、雇佣协议、学术诚信规则或当地法律法规,且通常被视为不诚信行为。如何使用本工具、是否合规,由使用者自行判断并承担责任,作者不为此背书。软件按「现状」提供,不附带任何形式的担保。