免费开源的AI面试准备工具CodeInterviewAssist
本项目为付费编程面试平台提供了强大的替代方案。它以免费开源的形式提供了付费面试准备工具的核心功能。使用您自己的OpenAI API密钥,您可以访问AI驱动的问题分析、解决方案生成和调试辅助等高级功能——所有操作都在您的本地机器上运行。
项目初衷
最好的编程面试工具往往价格昂贵,让许多学生和求职者望而却步。本项目提供了同样强大的功能,却无需支付高昂费用,让您能够:
- • 使用自己的API密钥(只为实际使用付费)
- • 在本地机器上运行,确保完全隐私
- • 根据个人需求进行自定义
- • 学习并贡献于开源工具
自定义可能性
代码库设计灵活,可适应多种需求:
- • AI模型:虽然目前使用OpenAI的模型,但您可以修改代码以集成其他提供商的模型,如Claude、Deepseek、Llama或任何具有API的模型。所有集成代码位于
electron/ProcessingHelper.ts,UI设置位于src/components/Settings/SettingsDialog.tsx。 - • 语言:添加对更多编程语言的支持
- • 功能:扩展新功能
- • 界面:根据偏好自定义界面
只需具备基本的JavaScript/TypeScript知识和对目标API的理解即可实现。
功能亮点
- • 🎯 99%隐形:无法检测的窗口,可绕过大多数屏幕捕捉方法
- • 📸 智能截图捕捉:分别捕捉问题文本和代码以获得更好分析
- • 🤖 AI驱动分析:使用GPT-4o自动提取并分析编程问题
- • 💡 解决方案生成:获取详细解释和时间/空间复杂度分析的解决方案
- • 🔧 实时调试:通过AI辅助和结构化反馈调试代码
- • 🎨 高级窗口管理:自由移动、调整大小、改变透明度和缩放窗口
- • 🔄 模型选择:为不同处理阶段选择GPT-4o或GPT-4o-mini
- • 🔒 隐私优先:您的API密钥和数据除OpenAI API调用外不会离开您的计算机
全局快捷键
应用程序使用无法识别的全局键盘快捷键,不会被浏览器或其他应用检测:
- • 切换窗口可见性:[Control或Cmd + B]
- • 移动窗口:[Control或Cmd + 方向键]
- • 截图:[Control或Cmd + H]
- • 删除最后一张截图:[Control或Cmd + L]
- • 处理截图:[Control或Cmd + Enter]
- • 开始新问题:[Control或Cmd + R]
- • 退出:[Control或Cmd + Q]
- • 降低透明度:[Control或Cmd + []
- • 增加透明度:[Control或Cmd + ]]
- • 缩小:[Control或Cmd + -]
- • 重置缩放:[Control或Cmd + 0]
- • 放大:[Control或Cmd + =]
隐形兼容性
应用程序对以下情况隐形:
- • Zoom 6.1.6及以下版本
- • 所有基于浏览器的屏幕录制软件
- • 所有版本的Discord
- • Mac OS截图功能(Command + Shift + 3/4)
注意:应用程序不对以下情况隐形:
- • Zoom 6.1.6及以上版本
- • https://zoom.en.uptodown.com/mac/versions (如需降级Zoom的链接)
- • Mac OS原生屏幕录制(Command + Shift + 5)
系统要求
- • Node.js(v16或更高)
- • npm或bun包管理器
- • OpenAI API密钥
- • 终端/IDE的屏幕录制权限
- • macOS:
- 1. 前往系统偏好设置 > 安全性与隐私 > 隐私 > 屏幕录制
- 2. 确保CodeInterviewAssist有屏幕录制权限
- 3. 启用权限后重启CodeInterviewAssist
- • Windows:
- • 无需额外权限
- • Linux:
- • 根据发行版可能需要
xhost访问权限
- • 根据发行版可能需要
- • macOS:
运行应用程序
快速开始
- 1. 克隆仓库:
git clone https://github.com/greeneu/interview-coder-withoupaywall-opensource.git cd interview-coder-withoupaywall-opensource
- 2. 安装依赖:
npm install
- 3. 推荐:清理之前的构建:
npm run clean
- 4. 根据您的平台运行相应脚本:
Windows:
stealth-run.bat
macOS/Linux:
# 首先使脚本可执行 chmod +x stealth-run.sh ./stealth-run.sh
重要提示:应用程序窗口默认不可见!使用Ctrl+B(Mac上为Cmd+B)切换可见性。
构建可分发包
创建可安装的分发包:
macOS(DMG):
`# 使用npm
npm run package-mac
或使用yarn
yarn package-mac`
Windows(安装程序):
`# 使用npm
npm run package-win
或使用yarn
yarn package-win`
打包后的应用程序将位于release目录。
脚本功能:
- • 为应用程序创建必要目录
- • 清理之前的构建以确保全新开始
- • 以生产模式构建应用程序
- • 以隐形模式启动应用程序
注意事项与故障排除
- • 窗口管理器兼容性:某些窗口管理工具(如macOS上的Rectangle Pro)可能会干扰应用的窗口移动。可考虑暂时禁用它们。
- • API使用:注意OpenAI API密钥的速率限制和信用额度。视觉API调用比纯文本调用更昂贵。
- • LLM定制:您可以轻松定制应用以包含Claude、Deepseek或Grok等LLM,只需修改
ProcessingHelper.ts中的API调用和相关UI组件。 - • 常见问题:
- • 启动应用前运行
npm run clean以确保全新构建 - • 如果窗口不出现,多次尝试Ctrl+B/Cmd+B
- • 如需调整窗口透明度,使用Ctrl+[/]/Cmd+[/]
- • macOS:确保脚本有执行权限(
chmod +x stealth-run.sh)
- • 启动应用前运行
与付费面试工具对比
| 功能 | 付费工具 | CodeInterviewAssist(本项目) |
|---|---|---|
| 价格 | 60美元/月订阅 | 免费(只需支付API使用费) |
| 解决方案生成 | ✅ | ✅ |
| 调试辅助 | ✅ | ✅ |
| 隐形 | ✅ | ✅ |
| 多语言支持 | ✅ | ✅ |
| 时间/空间复杂度分析 | ✅ | ✅ |
| 窗口管理 | ✅ | ✅ |
| 认证系统 | 需要 | 无(简化) |
| 支付处理 | 需要 | 无(使用自己的API密钥) |
| 隐私 | 服务器处理 | 100%本地处理 |
| 定制 | 有限 | 完全源代码访问 |
| 模型选择 | 有限 | 模型间自由选择 |
技术栈
- • Electron
- • React
- • TypeScript
- • Vite
- • Tailwind CSS
- • Radix UI组件
- • OpenAI API
工作原理
- 1. 初始设置
- • 启动隐形窗口
- • 在设置中输入OpenAI API密钥
- • 为提取、解决方案生成和调试选择首选模型
- 2. 捕捉问题
- • 使用全局快捷键[Control或Cmd + H]对代码问题进行截图
- • 截图自动添加到最多2张的队列中
- • 如需移除最后一张截图,使用[Control或Cmd + L]
- 3. 处理
- • 按[Control或Cmd + Enter]分析截图
- • AI使用GPT-4视觉API从截图中提取问题需求
- • 模型根据提取的信息生成最优解决方案
- • 所有分析均使用您的个人OpenAI API密钥完成
- 4. 解决方案与调试
- • 查看带有详细解释的生成解决方案
- • 通过截取更多错误信息或代码使用调试功能
- • 获取包含问题识别、修正和优化的结构化分析
- • 根据需要切换解决方案和队列视图
- 5. 窗口管理
- • 使用[Control或Cmd + 方向键]移动窗口
- • 使用[Control或Cmd + B]切换可见性
- • 使用[Control或Cmd + []和[Control或Cmd + ]]调整透明度
- • 窗口对特定屏幕共享应用保持隐形
- • 使用[Control或Cmd + R]开始新问题
- 6. 语言选择
- • 一键切换编程语言
- • 使用方向键在可用语言间导航
- • 系统动态适应代码库中添加或移除的任何语言
- • 语言偏好会在会话间保存
添加更多AI模型
本应用设计时考虑了可扩展性,您可以轻松添加对其他LLM的支持:
- • 您可以添加Claude、Deepseek、Grok或任何其他AI模型作为替代选项
- • 应用架构允许多个LLM后端共存
- • 用户可以自由选择偏好的AI提供商
要添加新模型,只需扩展electron/ProcessingHelper.ts中的API集成,并在src/components/Settings/SettingsDialog.tsx中添加相应的UI选项。模块化设计使这一过程简单明了,不会破坏现有功能。
配置
- • OpenAI API密钥:您的个人API密钥本地存储,仅用于OpenAI API调用
- • 模型选择:您可以为每个处理阶段选择GPT-4o或GPT-4o-mini:
- • 问题提取:分析截图以理解编程问题
- • 解决方案生成:创建带有解释的优化解决方案
- • 调试:提供错误和改进建议的详细分析
- • 语言:选择解决方案的首选编程语言
- • 窗口控制:使用键盘快捷键调整透明度、位置和缩放级别
- • 所有设置本地存储在用户数据目录中,并在会话间保持
项目地址
https://github.com/Ornithopter-pilot/interview-coder-withoupaywall-opensource/blob/main/README.md
扫码加入技术交流群,备注「开发语言-城市-昵称」
(文:GitHubStore)