尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

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

开源免费AI面试助手interview-assistant 本文基于 macOS 实测撰写核心部署步骤在 Windows 上同样适用每个步骤末尾附有对应的 Windows 操作说明Windows 音频采集使用 soundcard 库无需虚拟声卡RunXun 仅支持 macOS。前言写这篇文章的初衷求职面试往往充满压力——面对突如其来的技术题或行为题即使准备充分的候选人也可能因紧张而发挥失常。同时AI 的能力正在快速进化候选人会用 AI 练题、整理项目与模拟问答企业也开始默认AI 辅助工作会成为日常能力。传统只看记忆与套路回答的面试方式正在被更强调真实表达、临场拆解、追问深挖与协作能力的新型面试替代。在这样的大背景下一个能在高压对话中帮你快速组织思路、稳定输出的实时辅助系统正在成为刚需。市面上主流工具比如面试侠按时长收费一小时几十元长期使用成本很高并且所有音频、对话数据都会上传第三方云端对于重视代码、面试隐私的开发从业者来说存在数据泄露风险。翻GitHub开源项目后找到了interview-assistant完整本地部署试用了一下整体功能完善、支持本地离线语音识别音频全程保存在本机不上传外网完美解决收费、隐私两大痛点。网上目前只有项目官方简易README缺少适配Mac M系列芯片的完整落地教程部署过程中我踩了不少坑Electron Node版本冲突、BlackHole虚拟音频配置、本地Qwen3-ASR对接配置、接口调用报错等问题。因此整理这份完整踩坑部署教程分享给大家如果本文对你有帮助欢迎前往项目GitHub仓库给作者点一个Star支持开源开发者仓库地址https://github.com/powAu3/interview-assistant最新稳定版下载https://github.com/powAu3/interview-assistant/archive/refs/tags/v1.3.0.tar.gz同类开源项目推荐除interview-assistant外GitHub 上还有另外两个开源面试助手项目感兴趣的朋友可以按需尝试interview-copilotElectron 桌面应用双声道实时转录Deepgram LLM 答题DeepSeek/Gemini/OpenAI/Ollama支持简历/职位描述作为上下文适合面试练习与模拟场景。OpenInterviewGo 后端 浏览器前端架构支持腾讯云 ASR 或本地 Sherpa-onnx 语音识别内置 RAG 知识库检索适合偏好轻量部署的用户。为什么强烈推荐这款开源面试助手零成本开源使用成本低软件本身完全免费、无付费功能、无额度限制。相比面试侠等按时长/月度订阅收费的商用工具几十元到上百元一个月你只需为实际使用的模型 API 按量付费——面试 API 总成本往往不到商用工具的零头。本地优先隐私可控支持对接 Whisper、Qwen3-ASR GGUF 等本地语音识别模型音频全程本机处理、不上传第三方服务器支持截图审题、识图模型分析上传的简历和知识库笔记存储在本地 SQLite 数据库。公网模型场景下隐私性取决于服务商可根据需求自行选择。投屏隐身桌面端完整体验Electron 桌面模式提供共享隐身、Boss Key、系统托盘、轻量悬浮问答框腾讯会议/飞书共享屏幕时不会被他人看到软件窗口——这是本工具区别于网页面试助手的核心优势。浏览器网络模式则是不需要投屏隐身时的轻量备选。围绕面试全场景设计不是问答玩具而是围绕真实面试现场的节奏系统音频/麦克风实时转写、自动识别问题、多模型并行生成回答卡壳时可截图审题、引用本地笔记模拟练习支持 AI 面试官出题逐题评价练习报告搭配 Edge-TTS 语音播报还原真实问答节奏附赠能力分析、求职看板等复盘提升工具。产品介绍主界面速览功能总览模块能做什么实时辅助ASR 转写 → 问题识别 → 多模型回答 → 截图审题 / 知识库引用知识库上传.md/.txt/.log/.docx/.pdf支持检索测试和回答引用模拟练习AI 面试官出题、逐题评价、练习报告能力分析知识点标签、历史问答记录、薄弱点趋势简历优化上传简历对照 JD 给出优化建议和改写方向求职看板表格 / Kanban、状态标签、拖拽排序、Offer 对比设置中心模型管理、STT 引擎、主题、偏好、快捷键、截图区域等配置面试主流程选择系统音频或麦克风点击开始左侧实时转写持续落字系统自动识别值得回答的问题右侧答案区按当前模型配置流式生成正式回答需要审图时可粘贴截图把题目、代码片段或页面内容交给模型分析开启知识库后答案上方会显示引用角标关联你的本地笔记或资料空间紧张时可用⌘⇧J / CtrlShiftJ折叠左侧实时转录面板让回答区铺满桌面模式下还可配合共享隐身、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后端核心由 Python 开发跨平台运行音频采集等平台相关功能有差异需按对应平台配置开源协议本项目采用 CC BY-NC 4.0 协议仅供非商业使用。〇、安装方式选择安装包 or 源码部署项目原作者只提供了源码包没有发布现成的 Windows / macOS 安装程序。本人基于 v1.3.0 源码分别制作了Windows 安装包exe与macOS 安装包dmgApple Silicon托管在 Gitee Release 供大家直接下载不想折腾环境的朋友建议优先使用安装包。方式 A安装包推荐安装包已内置全部运行环境Python 后端、前端页面、Electron 桌面端、Whisper 语音识别引擎等无需安装 Python / Node.js无需任何构建步骤下载解压后直接安装即可。关于 Whisper 模型安装包只内置了语音识别的运行引擎不包含模型文件。首次使用语音识别时程序会自动从 HuggingFace 下载对应模型国内环境已自动切换到 hf-mirror 镜像请保持网络畅通模型下载慢或失败的处理方法见文末「常见问题」。下载地址Gitee Releasehttps://gitee.com/zhao-pengfei2/interview-assistant/releases/tag/1.3.0⚠️ 请把全部分片文件下载到同一个文件夹内缺一不可下载完成后用命令行合并为一个完整的.dmg方法见下方。Windows下载全部共 4 个文件interview-assistant-win-setup.z01interview-assistant-win-setup.z02interview-assistant-win-setup.z03interview-assistant-win-setup.zip使用 7‑Zip / Bandizip 解压interview-assistant-win-setup.zip得到 exe 安装程序。Windows 自带解压不支持分卷 zip请安装 7‑Zip 或 Bandizip。Mac arm64 (Apple Silicon M系列)下载全部共 3 个分片interview-assistant-1.3.0-arm64.dmgaainterview-assistant-1.3.0-arm64.dmgabinterview-assistant-1.3.0-arm64.dmgac合并方式wget 下载 cat 拼接在下载分片的同一个文件夹内执行wgethttps://gitee.com/zhao-pengfei2/interview-assistant/releases/download/1.3.0/interview-assistant-1.3.0-arm64.dmgaa\https://gitee.com/zhao-pengfei2/interview-assistant/releases/download/1.3.0/interview-assistant-1.3.0-arm64.dmgab\https://gitee.com/zhao-pengfei2/interview-assistant/releases/download/1.3.0/interview-assistant-1.3.0-arm64.dmgaccatinterview-assistant-1.3.0-arm64.dmgaa interview-assistant-1.3.0-arm64.dmgab interview-assistant-1.3.0-arm64.dmgacinterview-assistant-1.3.0-arm64.dmg生成的是完整的.dmg双击即可打开安装不要直接双击.dmgaa等分片文件它们只是切割后的二进制片段无法单独打开。生成的 dmg 为未签名、未公证包Mac 首次打开会被 Gatekeeper 拦截提示「已损坏无法打开」或「无法验证开发者」。提示「已损坏」不是文件损坏而是未签名应用被系统安全策略拦截终端执行清除隔离属性命令后重新打开xattr-cr/Applications/Interview\Assistant.app说明只有付费 Apple Developer 账号签名 公证后才能消除该提示个人分发一般不做。安装包代替了源码部署中的大部分步骤但仍有以下操作需要用户自己完成macOS安装 BlackHole 2ch 虚拟声卡并配置「音频 MIDI 多输出设备」。安装包无法替你安装系统级音频驱动这一步必须自己做——参照 第五章BlackHole音频MIDI配置配置模型 API Key安装包内置默认配置config.example.json首次使用请在右上角「设置」中填入你的模型 API Key / Base URL与源码部署的配置方式完全相同。Windows 用户无需任何额外音频配置系统音频采集所需的soundcard库已内置在安装包中。方式 B源码部署进阶不想下载较大的 dmg/exe 安装包或想自行定制源码的按下面第一 ~ 七章从源码部署。这种方式不依赖安装包但需要自行安装 Python / Node.js 等开发环境并完成构建步骤较多、报错时需要能自己排错适合有技术基础的朋友新手建议直接用方式 A。一、源码部署环境前置依赖安装Mac 用户1. 先检查本机已有哪些环境打开终端逐个执行以下命令有输出且版本达标即可跳过对应安装python3--version# 需 3.10 ~ 3.12pip3--version# Python 包管理器需有输出node--version# 需 18 及以上2. Python 3.10 ~ 3.12⚠️ 为什么不能装最新版项目依赖numpy1.24,2.0而 numpy 1.26.x 只提供到 Python 3.12 的预编译包。装 3.13 后 pip 会尝试源码编译 numpy——macOS 上有 Xcode 编译器尚可成功Windows 上缺少编译器会直接报错。未安装或版本过低的安装方式任选其一方式1推荐brew install python3.12方式2前往 python.org 下载 macOS 安装包双击按提示安装macOS 系统自带的 Python 通常不带 pip3若pip3 --version无输出先执行python3 -m ensurepip --upgrade安装 pip。3. Node.js 18方式1brew install node20方式2前往 nodejs.org 下载 macOS LTS 版方式3使用 nvm 管理 Node 版本nvm install 20 nvm use 20npm 国内镜像加速强烈建议npm 默认从国外官方源registry.npmjs.org下载国内网络下容易慢或超时。执行一次即可全局生效npmconfigsetregistry https://registry.npmmirror.comnpmconfig get registry# 验证输出 registry.npmmirror.com注意镜像只加速 npm 包本体Electron 的二进制文件安装时仍需单独配置ELECTRON_MIRROR见步骤四。4. BlackHole 2ch 虚拟音频设备brewinstallblackhole-2ch安装完成后必须重启 Mac否则驱动不会加载面试助手会提示「未检测到系统音频捕获设备」。Windows 用户1. Python 3.12不要装最新版⚠️ 关键提示请安装Python 3.12.x不要装最新版3.13。项目依赖numpy1.24,2.0numpy 1.26.x 只提供到 Python 3.12 的预编译包装 3.13 后pip install会尝试源码编译 numpyWindows 上因缺少 C 编译器报Unknown compiler错误。下载时在 python.org/downloads 页面往下找到 “Python 3.12.x” 版本。下载并安装Python 3.12.x运行安装程序务必勾选最下方的 “Add Python to PATH”漏勾会导致python命令无法识别后续步骤全部报错安装完成后打开 PowerShell 验证python --version和pip --version。pip 缺失的两种情况安装时未勾选 pip 组件重新运行 Python 安装程序 → Modify → 勾选 pip已装完但无 pip执行python -m ensurepip --upgrade补装。2. Node.js 18前往 nodejs.org 下载 LTS 版18 以上均可一路 Next 安装即可无需额外配置验证node --version和npm --version。npm 国内镜像加速强烈建议npm 默认从国外官方源registry.npmjs.org下载国内网络下容易慢或超时。PowerShell 执行一次即可全局生效npm configsetregistry https://registry.npmmirror.com npm config get registry# 验证输出 registry.npmmirror.com注意镜像只加速 npm 包本体Electron 的二进制文件安装时仍需单独配置ELECTRON_MIRROR见步骤四。3. 音频采集说明无需虚拟声卡Windows 上采集系统音频面试官声音由soundcard库通过 WASAPI 回环直接完成不需要安装任何虚拟声卡驱动VB-Cable、立体声混音等都不需要。二、下载项目源码两种方式任选其一方式1Git克隆gitclone https://github.com/powAu3/interview-assistant.gitcdinterview-assistant方式2直接下载最新发行版压缩包wgethttps://github.com/powAu3/interview-assistant/archive/refs/tags/v1.3.0.tar.gztar-zxvfv1.3.0.tar.gzcdinterview-assistant-1.3.0Windows 用户git clone命令通用。方式2中wget在 Windows 上默认不存在可改用浏览器或直接下载链接然后解压进入目录三、安装依赖与配置模型1. 安装后端Python依赖pip3install-rbackend/requirements.txtWindows 用户必装系统音频采集依赖soundcard库不在 requirements.txt 中需单独安装否则桌面端会提示「未检测到系统音频输出设备」pip install soundcard2. 构建前端cdfrontendnpminstallnpmrun buildcd..首次启动时如果前端尚未构建start.py会自动安装并构建前端因此本机仍需要 Node.js。3. 配置模型cpbackend/config.example.json backend/config.json编辑backend.config.json填入你要使用的模型 API Key / Base URL / 模型名。如果要启用识图、知识库、豆包语音识别也在这里一并配置。也可以通过桌面端右上角「设置」可视化配置语音模型、语言模型等无需手动编辑 JSON界面更直观。Windows 用户以下命令中的python3/pip3均改为python/pip复制命令改为copy backend\config.example.json backend\config.jsonnpm 步骤完全相同。Windows 中文系统编码问题若 pip 安装时出现 GBK 编码报错如UnicodeDecodeError: gbk codec cant decode byte...先在 PowerShell 中设置 UTF-8 临时环境变量再执行$env:PYTHONUTF81 pip install-r backend/requirements.txt该变量只在当前窗口生效重开 PowerShell 后需重新设置不影响系统其他程序。参考文档配置说明API 密钥与模型音频配置豆包语音识别四、两种启动模式详解模式1浏览器网络模式无需安装Electron桌面程序仅通过浏览器访问服务规避所有Node版本、npm下载报错python3 start.py--modenetwork启动完成后终端会打印访问地址浏览器打开http://localhost:18080即可使用完整功能。Windows 用户命令改为python start.py --mode network其余完全相同。模式2Electron桌面窗口模式完整功能投屏隐身桌面模式内置全局快捷键、系统托盘、屏幕共享隐身功能项目要求 Node.js 18使用国内镜像安装依赖cddesktopELECTRON_MIRRORhttps://npmmirror.com/mirrors/electron/npminstall--registryhttps://registry.npmmirror.comcd..如果 Electron 下载卡住或失败可删除desktop/package-lock.json后重新执行上述命令强制从镜像重新解析依赖。启动桌面端python3 start.pyWindows 用户安装依赖时环境变量语法不同PowerShell$env:ELECTRON_MIRRORhttps://npmmirror.com/mirrors/electron/; npm install --registryhttps://registry.npmmirror.comCMDset ELECTRON_MIRRORhttps://npmmirror.com/mirrors/electron/ npm install --registryhttps://registry.npmmirror.com启动命令改为python start.py后台运行建议面试时建议让服务在后台运行避免终端窗口占据屏幕或被误关。macOS 可用nohup后台启动nohuppython3 start.py/dev/null21停止时用pkill -f start.py即可。Windows 用户PowerShell 后台启动Start-Process python -ArgumentList start.py -WindowStyle Hidden停止用taskkill /F /IM python.exe会结束所有 Python 进程如有其他 Python 程序请谨慎。手机端协作桌面端启动后点击右上角「设置」可看到局域网访问二维码手机扫码即可在手机浏览器中访问同一服务手机和电脑需在同一 WiFi 下音频仍由电脑端采集。应用场景举例当 ASR 识别面试官问题不准确时可让旁边协助的人通过手机帮你手动输入问题电脑端实时生成回答。「屏幕共享不可见」技术原理这不是什么黑科技而是调用了系统原生 API 实现的窗口隐身功能。Mac设置窗口sharingType .none系统合成器层面直接排除该窗口所有录屏、共享屏幕都捕获不到Windows调用SetWindowDisplayAffinityAPI效果完全一致Zoom / 腾讯会议 / 飞书都遵守系统规则无需单独适配几行代码就能实现没有技术壁垒五、BlackHole音频MIDI配置软件支持双声道独立采集面试官音频通过 BlackHole 抓取系统音频你的声音通过 MacBook 麦克风直接录入。因此只需配置一个「多输出设备」不需要聚合输入设备聚焦搜索打开「音频MIDI设置」左下角点击创建多输出设备勾选Built-in Output、BlackHole 2ch主输出设备选择 Built-in OutputBlackHole 开启漂移校正重命名为「会议录音输出」系统设置-声音输出选择「会议录音输出」输入保持 Built-in Microphone不要改打开面试助手分别选择音频源会议音频听面试官选择 BlackHole 2ch我的麦克风记录我的回答选择 Built-in Microphone原理多输出设备把系统音频同时路由到你能听到的扬声器 BlackHole 虚拟通道软件从 BlackHole 抓取面试官声音从麦克风录入你的声音两路独立互不干扰。配置完成后重启面试助手即可解决未检测到系统音频捕获设备报错。Windows 用户更简单无需任何配置Windows 无需创建多输出设备——安装soundcard库步骤三后面试助手会自动列出本机所有扬声器作为系统音频回环设备。只需在软件中分别选择音频源会议音频听面试官选择××× (系统音频)WASAPI 回环默认扬声器带 ★ 标记我的麦克风记录我的回答选择你的默认麦克风如果列表中没有「系统音频」设备说明soundcard未安装成功回到步骤三执行pip install soundcard。常见问题Node / npm 报错请确认 Node.js 版本为18。Windows 下 pip 安装 numpy 报Unknown compiler/metadata-generation-failedPython 版本过高3.13numpy 1.26 没有对应预编译包。安装 Python 3.12 后重试。Windows 下 pip 报 GBK 编码错误UnicodeDecodeError: gbk codec cant decode中文系统编码问题先执行$env:PYTHONUTF81再重试 pip 命令。Electron 下载慢可先设置ELECTRON_MIRRORhttps://npmmirror.com/mirrors/electron/再进入desktop/执行npm install。macOS 下 sounddevice 安装失败先执行brew install portaudio。Whisper 模型下载慢或报 401 / CAS Client Error新版 huggingface_hub 默认走 Xet 存储下载cas-server.xethub.hf.co该链路不走HF_ENDPOINT镜像且国内访问会失败。需同时禁用 Xet 并设置镜像macOSexport HF_HUB_DISABLE_XET1 HF_ENDPOINThttps://hf-mirror.comWindows$env:HF_HUB_DISABLE_XET1; $env:HF_ENDPOINThttps://hf-mirror.com设置后重新启动模型将以传统方式从镜像下载。端口冲突可改用python start.py --port 9090。实测效果开启投屏隐身时对方共享屏幕时完全看不到该软件截图/录屏也无法捕获实测。关闭投屏隐身时对方共享屏幕时可以看到该软件窗口。六、选配本地 RunXun 语音识别说明完成前五个步骤后面试助手已可正常使用默认使用 Whisper 作为语音识别引擎。本节为进阶优化步骤——RunXun 内置 Qwen3-ASR 模型中文识别效果优于 Whisper尤其在技术术语、中英混合、嘈杂会议场景下表现更好。如果你对 Whisper 的识别效果满意可以跳过本节。什么是 RunXunRunXun 是一款 macOS 平台的语音识别软件底层搭载 Qwen3-ASR GGUF 模型0.6B 量化版本仅占用 1GB 左右内存Mac M3 无压力。相比 Whisper中文口语、技术面试术语识别错误率更低支持中英混合对话。安装与配置下载最新版RUNXUN_0.12.0_universal.dmg正常安装并启动软件会自动加载内置的 Qwen3-ASR 推理服务服务正常运行在127.0.0.1:8765后打开面试助手找到「面试官 ASR 引擎配置」页面按以下参数填写配置项填写内容Base URLhttp://127.0.0.1:8765/v1API Keylocal本地服务无鉴权任意字符串均可Modelqwen3-asr自定义Header留空无需配置点击「保存并测试」界面提示成功即可开始使用Windows 用户RunXun 目前仅支持 macOSWindows 上无法使用本节方案请继续使用默认的 Whisper 语音识别或改用豆包Volcengine等兼容 OpenAI 接口的云端 ASR 服务。有能力者也可以自行本地部署 Qwen3-ASR 等语音识别模型通过 llama-server 等推理服务暴露 OpenAI 兼容接口参照上表配置即可本文不做展开测试。Whisper 与 RunXun 对比Whisper默认RunXun选配模型体积小0.6B 量化约 1GB 内存中文口语错误率较高识别精度大幅提升技术术语容易识别错误适配面试场景中英混合支持一般支持良好部署难度开箱即用需额外安装 RunXun七、总结与使用建议基础使用完成前五个步骤即可使用默认 Whisper 语音识别需要投屏隐身、全局快捷键使用 Electron 桌面端步骤四模式2追求极致中文识别效果参考步骤六选配 RunXun仅 macOS中文术语、中英混合场景识别更精准仅临时模拟面试练习可搭配 Edge-TTS 在线语音播报面试题无需额外部署 TTS 模型。Windows 用户核心部署步骤与 macOS 一致系统音频采集用 soundcardpip install soundcard无需虚拟声卡RunXun 不可用。 诚实提醒面试助手只是辅助无法替代硬实力。本工具的定位是帮助那些本身具备能力、但因紧张或表达不畅而发挥失常的候选人更好地展示自己——它能在你卡壳时提供思路框架在你遗忘时唤起关键知识点但无法替你写出你从未掌握的代码、解决你从未理解的问题。面试表现与实际能力严重不匹配即使侥幸通过面试入职后也可能因无法胜任而陷入困境。技术面试的底层逻辑始终是考察真实能力工具只是锦上添花不是雪中送炭。请在日常学习中持续积累让工具成为你真实能力的放大器而非遮羞布。开源支持如果本篇完整部署教程帮你成功搭建本地面试助手欢迎前往项目GitHub仓库给作者点亮Star支持开源开发者持续更新迭代项目仓库https://github.com/powAu3/interview-assistant最新稳定版v1.3.0下载地址https://github.com/powAu3/interview-assistant/archive/refs/tags/v1.3.0.tar.gz⚠️ 免责声明本项目仅供学习研究使用。请勿将本工具用于学术不端、违规考试或其他不合规场景使用后果由使用者自行承担。在真实面试中未经对方知情同意使用实时答题辅助可能违反对方公司政策、雇佣协议、学术诚信规则或当地法律法规且通常被视为不诚信行为。如何使用本工具、是否合规由使用者自行判断并承担责任作者不为此背书。软件按「现状」提供不附带任何形式的担保。
返回列表