Building FinSaathi:一个语音-第一AI财务助理财务信息可能难以理解.
当用户不得不通过形式和复杂的接口浏览一切时,银行条件、贷款、信用分数、支付和其他金融决定可能很快变得压倒一切。
所以我想探索一个简单的交互: 如果财务指导可以从谈话开始呢?
这个想法成为了FinSaathi,一个语音第一AI财务助理.
第一个目标很简单:找一个实时语音助理工作端到端并部署.
目前的架构为: Next.js Frontend → LiveKit → Python AI代理 → Voice/AI Services 前端部署在Vercel上,而LiveKit代理则部署在铁路上.
用户可以打开应用程序,启动对话,并通过语音与FinSaathi代理互动.
Tech Stack Frontend Next.js React TypeScript LiveKit CSS 后端 Python LiveKit Agents UV Docker Railway Voice / AI LiveKit Murf AI/LLM服务 Data SQLite 用于应用程序内存和呼叫相关数据 部分比预期的要花更多的时间让代理在当地工作相对简单.
让同一个系统实际运行在生产中是一个不同的问题。
铁路部署最初失败, 使用: python: 不能打开文件"// src/ agent.py" : [Errno 2] 没有这样的文件或目录 问题最终与如何在多克部署内处理应用程序路径和启动命令有关.
在确定集装箱和铁路启动配置后,部署进一步推进——并暴露出另一个问题。
由于容器作为非根用户运行应用程序,紫外线最初无法创建它的缓存目录: 权限被拒绝: '/app/.cache/uv' 修改权限可以让实际的LiveKit代理Server成功启动.
然后,生产记录显示,毒剂在LiveKit中监听连接并登记工人。
这是第一个真正的里程碑:后端不再仅仅是"在我的机器上工作"——它实际上是在生产中运行.
后端直播后测试语音管道,我针对出品LiveKit设置测试了前端.
语音交互效果是端到端.
用户可以与FinSaathi交谈,会话通过LiveKit连接,被部署的代理处理对话并通过语音管道进行响应.
这是第一阶段的主要目标。
Memory and Analytics FinSaathi也有基于SQLite的内存并称为分析层.
本地应用程序与这个存储层一起工作,但是在应用程序试图在会话完成期间写入SQLite数据库时,部署暴露出文件许可问题.
所以这部分还没有完全解决。
下一步是把这个生产存储层移动到更合适的持续数据库/存储设置上,而不是依赖应用程序容器内可写作的 SQLite 文件.
下一个是什么?
目前界面有意以核心语音体验为主.
下一阶段将致力于将工作原型转化为更完整的产品.
计划改进包括: 一个专用的FinSaathi登陆页 改进语音互动 UI认证 人际支持/升级仪表板 呼叫分析仪表板 持续性生产数据库 更好的可观察性 扩展语言支持 升级和分析的片段是围绕着一个想法设计的,即AI助手应该知道谈话何时需要人的支持,而不是试图自己处理每个情况.
当前状况 核心语音系统现已部署。
目前工作: Next.js 前端 LiveKit 实时连接 Python LiveKit 代理 Murf 语音集成 Production 在 Vercel 端对端语音交互部署上的铁路生产前端部署 仍在改进中: 生产数据库持续 分析存储 Escalatio