[分享] 独立开发的 AI 面试助手:从技术选型到开发上线、接入支付全流程复盘 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
dhc90
V2EX    分享创造

[分享] 独立开发的 AI 面试助手:从技术选型到开发上线、接入支付全流程复盘

  •  
  •  dhc90 56 天前 1534 次点击
    这是一个创建于 56 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近花了半个月时间做了一个 AI 面试练习平台 InterviewPilotAI ,想和大家分享一下整个开发过程中的技术选型、踩坑经历和对后面继续做独立开发的思考。

    项目背景

    作为一个技术人,我发现很多同事(包括我自己)都在面试时紧张,特别是英语面试。市面上的面试准备工具要么太贵,要么体验很差。于是想做一个 AI 驱动的面试练习平台,让大家可以随时练习。

    产品地址:InterviewPilotAI

    技术栈选择

    前端:Next.js 15 + TypeScript + shadcn/ui

    选择 Next.js 主要是看中了:

    • App Router 的文件系统路由,开发效率高
    • 内置 API 路由,不用单独搭后端
    • 良好的 SEO 支持(对独立开发者很重要)
    • Vercel 部署无缝集成

    后端:Supabase

    之前用过 Firebase ,但 Supabase 的开发体验更好:

    • PostgreSQL 比 Firestore 更熟悉
    • 自动生成的 REST API 和 TypeScript 类型
    • 行级安全策略(RLS)比 Firebase 的安全规则更灵活
    • 文件存储集成度高

    认证:Clerk

    选择 Clerk 而不是自己写认证的原因:

    • 开箱即用的 UI 组件
    • 支持多种登录方式( Google 、GitHub 等)
    • 用户管理后台很完善
    • 对 Next.js 支持很好
    • 免费的注册用户额度,对项目启动来说太够了

    AI 语音:Retell AI

    这是整个项目最核心的技术选择。对比了几个方案:

    1. OpenAI Whisper + TTS:延迟太高,体验不好
    2. Azure Speech Services:配置复杂,价格不透明
    3. Retell AI:专门做对话 AI ,WebRTC 实时通话,延迟很低

    最终选择 Retell AI ,集成简单,几行代码就能实现实时语音对话。

    支付:Creem

    独立开发者做海外支付真的是个大坑,对比了几个方案:

    • Stripe:手续费高,对中国开发者不太友好,特别是个人开发者比较难搞
    • LemonSqueezy:Stripe 的替代,因为很多人推荐,也试着申请了,最后没成功。
    • Creem:新兴支付平台,手续费低,支持 170+国家,对国内个人开发者相对友好。

    LemonSqueezy 和 Creem 我都申请了,开始尝试用> LemonSqueezy ,但是代码写完了,LemonSqueezy 支付账号没搞定,放弃了。 Creem 是唯一一个跑通了的,算是跑通个人出海支付的第一步了。 一个题外话:Lemonsqueezy 被 Stripe 收购了。 我个人觉得这对消费者来说不是好事,因为 Lemonsqueezy 看起来一直都是一个不错的选择,API 也很容易用。 现在少了一个选择,这让 Stripe 有了涨价的底气,因为开发者们没法轻易地跳槽到竞争对手那里了( LemonSqueezy )。同时 LemonSqueezy 也会跟 Stripe 一样对国内个人开发者不那么友好了吧。这就是我的一些想法。

    核心技术难点

    1. 实时语音处理

    最大的挑战是如何做到低延迟的语音对话。Retell AI 解决了大部分问题,但还需要处理:

    • 网络质量检测
    • 音频设备权限
    • 通话状态管理
    • 异常断线重连

    2. AI 面试分析

    面试结束后需要生成详细的分析报告,这里 GPT-4 和 Deepseek 都试过,两个都能用:

    3. PDF 简历解析

    用户可以上传简历,AI 根据简历内容生成个性化问题。

    商业化策略

    前期为了简单,全部采用按次购买模式,用户只需要购买面试次数,其他的服务比如简历上传和分析,多面试官风格,面试结果分析等服务都附带赠送。面试次数永不过期,用户压力小。

    部署和运维

    选择 Vercel 部署,优势明显:

    • GitHub 集成,推送代码自动部署
    • 全球 CDN ,访问速度快
    • 环境变量管理方便
    • 自动 HTTPS

    踩过的坑

    由于之前是纯做后端的,前端并部署,第一次选择 next.js 做全栈开发。前面很多代码都是 AI 写的,后面发现 AI 写的代码实在是太狗了。各种异常处理不合理,代码没用复用,页面风格不统一等,可把我改惨了。

    前期的网站原型是用 AI 生成的,像目前的 v0.dev ,v0.app, lovable.dev 这些工具都试过,用来快速开发 Landingpage 和 MVP 还是挺好的

    未来计划

    1. 多语言支持:目前主要是英文,考虑支持中文面试
    2. 视频面试:增加视频通话功能

    总结

    作为尝试独立开发的第一个项目,这个项目让我学到了很多:

    1. 技术选型很重要:选择合适的工具能事半功倍
    2. 用户反馈是关键:要快速迭代,及时响应用户需求
    3. 商业化要早考虑:技术实现只是第一步

    希望这个分享对想做独立开发的朋友有帮助。如果有问题欢迎交流讨论!


    产品地址https://interviewpilot.tech
    GitHubhttps://github.com/denghuichao/InterviewPilotAI
    联系我:欢迎私信交流

    6 条回复    2025-08-18 23:43:40 +08:00
    fairyme
        1
    fairyme  
       56 天前
    GitHub 404
    fairyme
        2
    fairyme  
       56 天前
    可以对接 AI 数字人吗,这样更贴合实际些。而且也有使用 AI 数字人进行面试的 HR 公司了。
    dhc90
        3
    dhc90  
    OP
       56 天前
    @fairyme github 404 是因为还没开源哈,后续会计划开源出来
    dhc90
        4
    dhc90  
    OP
       56 天前
    AI 数字人会考虑对接的
    Honwhy
        5
    Honwhy  
       54 天前
    有调研过 better-auth 吗 平替下 clerk
    dhc90
        6
    dhc90  
    OP
       53 天前
    @Honwhy 听说过 better-auth ,但是没用过,之前用过 clerk ,所以就直接用了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1242 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 17:22 PVG 01:22 LAX 10:22 JFK 13:22
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86