一个印度程序员发现,妈妈每次转发银行短信过来,问的都是同一句话:"ye kya tha?"——这是煤气罐的钱,还是电费?

她用一个纸质本子记家里的账,一半的条目只写了"online",再没有别的。这个细节,成了Kharcha诞生的起点。

打开网易新闻 查看精彩图片

一个不肯装App的人

最直接的解决方案是装一个记账App,但这是她唯一拒绝的事。而她的拒绝有道理:这类App会读取手机上的每一条短信,然后发往一个你从没听说过的服务器。

银行短信,是一个人能收到的最私密的信息之一。

于是Kharcha(印地语"开销")被做成了一个小型账本,完全在一台笔记本电脑上运行。你粘贴一条银行或UPI短信,或者直接打出你会说出口的话——比如"aaj sabzi wale ko 80 diye"(今天给卖菜的付了80)——一个40亿参数的开源权重模型会把它变成一行干净的记录:谁、多少钱、哪个账户、哪一天、什么分类。

它会记住你的纠正

这个账本会从修正中学习。把"Sharma Kirana"从"购物"改成"杂货"一次,它就一直是杂货。告诉它Rahul是家人,转给Rahul的钱就不会再落进"其他"里。

它认识HDFC、SBI、ICICI、Axis、Kotak和PNB的短信格式,也认识PhonePe、Google Pay和Paytm的通知,还听得懂夹杂英语的印地语口语数字,比如"dhai hazaar"(两千五)和"baarah sau"(一千二)。

模型通过Ollama在笔记本上离线运行,银行短信从不离开这台机器。Backboard负责记住那些修正——"Sharma Kirana是杂货""Rahul是我儿子"——并回答关于这个月的印地语提问。

演示版的妥协

在线演示挂在Render上,用的是免费档,所以第一次加载大约需要一分钟唤醒,而且每次部署账本都会重置。

演示版调用的是Tinker采样API上同一个微调过的适配器,因为免费档跑不动一个40亿参数的模型。这个取舍本身说明了问题:真正的隐私保护,需要把模型放在本地。

在录屏里,一条银行短信和两条语音笔记变成了账本记录,"Sharma Kirana"从外卖被纠正为杂货一次,应用回了一句"yaad rakh liya"(记住了),一个印地语问题得到了印地语回答。

这个项目是为DEV Hacktoberfest周末挑战赛"Build for a Friend"做的。