收藏
0
0
分享
举报
·1 天前发布·309次阅读

我把 AI 访谈做成了一个可自托管的开源工具

独立开发商业增长付费用户

做 Aural 的起点很直接:我想要一个真正能完成访谈流程的 AI 工具,而不只是一个套着“面试官”提示词的聊天框。

很多原型都能演示“AI 问、用户答”。但一旦把它交给真实用户,问题马上变得具体:网络中断后会不会丢失进度?AI 为什么突然追问这一句?评分能不能回到原始回答?候选人写的代码、画的白板应该放在哪里?团队能不能把数据留在自己的环境里?

于是,我开始把它做成一个可以自托管的开源项目。

从聊天框到完整流程

我最早踩的坑,是把访谈看成一段连续对话。聊天记录确实容易保存,但它并不能完整描述一次访谈。

后来我把整个过程拆成明确的状态:准备、提问、等待回答、分析、决定是否追问、进入下一题、完成,以及异常恢复。实时音频和转写可以走 WebSocket,但关键状态会持久化。这样即使页面刷新或网络短暂断开,用户也能回到正确的位置。

这个变化看起来偏工程,实际却直接影响体验。一个能说话的 AI 很吸引人,一个不会因为掉线而让你重来的工具才真正可用。

AI 可以追问,但不能漫无边际

Aural 支持根据回答动态追问。为了避免模型重复、跑题或拖延时间,我没有让它任意生成下一句,而是给追问设置边界:

是否已经回答充分、剩余时间和追问次数、目标能力维度、已经覆盖的话题,以及需要引用的原始回答片段。

模型需要同时给出“为什么追问”和“依据是什么”,系统再检查输出是否符合规则。条件不满足时,就回到预设问题。

这让我越来越确信:真正可靠的 AI 功能,往往不是给模型更多自由,而是给它一个清楚、可检查的决策空间。

评分应该能回到证据

如果报告只写“沟通能力 8 分”,面试官和候选人都很难判断这意味着什么。

所以在设计评估时,我希望每个结论都能连接到证据:对应的回答片段、使用的评分标准、代码或白板产物、模型理由,以及评估版本。这样出现争议时,不必重新问一次 AI,而是可以沿着报告回到当时的访谈过程。

代码编辑器和白板也不是附加功能。Monaco 中的代码变化、执行结果,以及 Excalidraw 白板的关键快照,都应该和问题及时间线关联。最终答案固然重要,但思考和修改的过程同样有价值。

为什么坚持开源和自托管

访谈数据通常包含语音、视频、转写、代码和评价,敏感程度远高于普通聊天记录。自托管不只是多一种部署选项,它让团队能够决定数据经过哪些服务、保存多久,以及谁能访问。

Aural 采用 MIT 许可证,模型层也尽量保持可替换。目前可以接入 OpenAI、Gemini、Kimi、MiniMax 等服务,也可以继续扩展本地模型。业务流程不需要绑定某一家供应商。

现在的 Aural

目前 Aural 已经支持语音、文字和视频访谈、动态追问、结构化评估、代码编辑器、白板、团队管理和多语言界面。技术栈主要是 Next.js、TypeScript、Supabase、tRPC 和 WebSocket。

它当然还不是终点。恢复机制、评估透明度、部署体验和更多模型适配都还会继续完善。但我希望这个项目至少提供一个可运行、可讨论的起点:AI 访谈可以不止“看起来聪明”,还应该可恢复、可复查,并且让使用者掌握数据。

项目网站:https://aural-ai.com

GitHub:https://github.com/1146345502/aural-oss

中文说明:https://github.com/1146345502/aural-oss/blob/main/README.zh-CN.md

如果你对自托管、AI 工作流、访谈评估或多模态交互有经验,欢迎到仓库交流。特别想听听大家在真实使用中最在意的隐私、恢复和评估问题。

讨论 (0)

    关于作者

    心得体会

    这家伙很懒,什么都没留下

    Solo 独立开发者社区support@solo.xin
    关于社区隐私政策用户协议商务合作友情链接订阅更新(RSS)投稿赞助

    © 2023 SOLO · 为独立开发者而生