【Experience Sharing:我的项目 Chat Nio 被收购,初中生涯从 0 至百万第一桶金,闲聊我一路的开发经历】
本人很少在公域上有分享自己经历的习惯,正好也有很多人对我的经历感兴趣,顺便借着今天这个机会,闲聊关于这个项目、关于我的经历吧:
依稀记得我在上一二年级时(2014 左右),Minecraft 很火爆,当时的周末闲时,喜欢偷我爸的 iPad ,接触并逐渐喜欢上了玩 MC。没有正版 license,纯离线,但当时玩的不亦乐乎,接触了红石和 命令方块,搞一些非常简单的小东西,这三十分钟是我每周为数不多的快乐时光。或许编程兴趣是从那时启蒙的。
三四年级,学校组织微机小组,我因为成绩在前恰好被选上 (大概是每班选两个)。当时每天放学后都有一节课的计算机时间。这是我人生第一次接触到了电脑。这可真是个新鲜玩意。回想起来当时的我每天裤兜备鞋套,不会开机,不会进 DOS,兰花指... 哈哈哈,蛮有回忆。一个月的初识后,我们开始学打字。借着老师的“愿意继续练的同学可以回家抽时间继续练”,跟父母“骗”到了每天半小时看电脑时间。
当时还是在用的打字高手(图标是深蓝色的狗爪,不知道是否有人还记得,大抵是上世纪的产物,有中英文测试),当时拿着 U 盘从学校里把 exe 拷回去,放学一进家门就跑到书房里练打字。
经过我的不懈努力, 我从最开始的兰花指 10 CPM 练到了大概快 200 CPM 吧(战绩可查)。几个月后举行的打字比赛,我竟拿到了全校第一的速度成绩,当时的我是蛮激动的。
四五年级时,开始学习了 Turbo Pascal 和 C 语言。我因为觉得老师讲的太慢的无聊,因此每天放学后总是自己提前研究后面的内容。毕竟兴趣是最好的老师嘛,后来我写了个software,鼓起勇气找老师看并一度被质疑 “这真的是你自己自学做的?”,并被老师送了一本他珍藏多年的 PASCAL 算法书。整个四年级在这本书里度过。不合群,没有出去玩,放学不去打球,这应该是导致我孤僻的原因吧(甚至一度到了初中转学后,整个初中几乎没有在现实中和所有同桌说一过话的状态)。
到了五年级,所有内容都被我提前学完了,遂开始延申知识范围。在网上学python (你没听做,我的学习路线是 C -> Python)、vbs。同时记得也是这一年,我的眼睛迅速涨到 500 度。
升到初中(六年级,山东多数市县是五四制),便继续学习了 lua、assembly、html/css/js,还有flask,django一类。因为买不起云服务器,便用自家电脑开花生壳端口映射,给同学们炫耀自己写的im聊天软件。什么好玩就学什么,涉猎 Network (套接字),爬虫,大数据,前端,后端,其他的便忘记了。我当时还搓了基于 TCP 的 IM 聊天室项目(是的,并不是基于 HTTP/Websocket 这样的应用层 Protocol,因为当时的我觉得太没有技术含量了),解决了原生 TCP Socket 粘丢包问题,同时还实现了大文件传输,富文本渲染,一对多,多对多 对话,真的很好玩。逐渐培养起喜欢捣鼓开源工具的习惯。
当时我在网上能赚到几十几百块的技术咨询费用,接到几k的小项目单子了。父母没有给过任何零花钱,靠自己攒到了自己人生中第一个5k零花钱。 虽然现在回看很少,但是这确是我最快乐的时光,我在整个初中实现了零食自由,然后当时做了一些开源项目需要搭建服务器跑api之类的,当时我就接单子来维持我的项目,真就是“自费开源”了哈哈哈哈。
七年级在各大赛事里拿过一点儿山东省、市级冠军。在此期间还买了本神经网络,学深度学习,强化学习。浅浅学了一些向量计算,加权计算,反向传播,Optimizer之类的。并搞起了 PyTorch/Tensorflow。
当时我记得还搓了一个多贪吃蛇 AI (最开始是方块状的4向移动,后面我自己想算法搓了一个可调节360度方向的rounded mode),试过 DQN/PPO 算法,自家电脑 CUDA 算力不够跑不了模型,于是去Kaggle和Colab换着跑Epoch,下 onnx 结果。(当时还有个经历是无意间去kaggle打比赛拿了几千刀的奖金,找朋友开了个us实体debit card超级麻烦的转回来,这个经历以后有机会再讲) 最后我跟ai对打,甚至我都打不过他!我犹如创造了一个生命,从懵懂到成熟。这对于我来说是最最最开心的一段时光。后面基于我前面写的 tcp socket 架构,做成了多人联机贪吃蛇,加上了Rank,Pyinstaller 打包拷贝到 U 盘上。学校初中电脑虽然没有外网,但是内网互联,上微机课的时候,我把这个游戏分享给其他人,于是立马就爆了,所有人都在玩联机我写的这个游戏,50多条蛇对打我的ai,ai仍然游刃有余!(装b耍帅成功什么的真的太爽了哈哈哈!!!)
大概是2023年初,七年级下学期的时候,我发起了这个项目。
这个项目是如何发起的呢?其实最最早的时候其实没有想过任何商业化、以及我能得到什么,只是为了给朋友玩的,当时 ChatGPT Plus 才能用 GPT4,要每个月订阅费 20刀,对于大多数(非一线城市的)初中生来说每个月拿出来140多块是几乎不可能的,但是我当时有一定的收入来源,于是我开启了这个项目分享给我的朋友们一起使用,做成公益免费,又当时去学了很多新事物,包括什么openai api,怎么开虚拟卡,怎么搞sms,过arkose,怎么逆向,sess之类的东西。
大概在升八年级的暑假的时候,我的朋友拉来了更多的人。此时,我的收入和捐赠来源已经不足以维持越来越高账号费用了。于是在大家投票决定后,我们从公益的全免费转到非盈利性,同时在所有人的建议下我们开源了代码,新建了一个 Github 仓库:“Chat Nio”,并希望与开源社区共建。项目的原型是 Vue3 + Nodejs,经过两次改版,V2 从 Nodejs 换到 Go 大幅提升了性能和内存优化, V3 从 Vue 换到了 React + 当时还只有几千stars但是非常好看的 Shadcn UI 组件库)。
Chat Nio 基本上是和 Nextweb、Lobe Chat发起同时期的项目。一个我觉得早期设计比较好的就是对话是存储在经过 Local First 优化后存在 Mysql 的,比如当时 Next Web 当时的跨设备同步依赖 WebDav,当时 Lobe Chat 的对话依赖 WebRTC,但是 Chat Nio 可以 Zero Config & 无感对话跨设备同步,得到了许多用户的称赞。
在此期间,我还开发联网搜索、文件上传等等创新功能,现在看联网搜索是非常普遍的,但是据我当时所知大概是第一个支持联网搜索的(?,这在当时是完全足够吸引人的。
在文件解析方面做出了一个新范式: 开源的通用文件解析标准 Blob Service, 支持 文本/PDF/PPT/Excel/Doc/音频等等解析,甚至当时 OpenAI 和 Anthropic 都不支持大多数我所支持的东西。除了 Chat Nio,当时还有许多软件都使用了我的 Blob Service。
到了九年级(也就是今年年初),我这个项目从始至终还没有做过任何的宣传手段,没有任何推广分成,只是借助高性价比和功能,用户推用户,一路打到了 100k+ MAU / ¥20w MRR / ¥~5w 月盈 的战绩,团队也扩建到了 4 个人。
一个比较大的转折点是我们当时做了 API Key 中转,类似于 One API 项目的多租户令牌分发功能。我们在当时在算法上做了很大的提升,自研了渠道分配算法,包括优先级、权重、报错自动降级的分配。当时 One API 还只是依靠外部 HTTP 307 Redirect 来降级,后来才改成的内置 Retry & Downgrade。Chat Nio 一经发布就带来了很大流量。Chat Nio 打造成了一个 B/C/D 端的一站式解决方案,同时支持 B 端的私有化部署(商业版源码)、 C 端用户的商业 LLM 对话系统和 D 端的 OpenAI API 中转。
今天2月份我的朋友帮我在 v2 上发了个分享贴,顺便开源项目也小爆了一阵,增到了 3k+ stars,多次上 Github Trending 排行,拿到了 Github #1 Repo Of The Day的勋章,后面因为要中考了,因此也无心宣传了。蛮多的聊得来的朋友,很多出色的人,对我帮助蛮大的人几乎都是当时认识的。同时也认识了很多 vc (比如zhenfund、yc、奇绩、绿洲、蓝驰等等等等),一起会议、casual 也很大的锻炼了我的交流能力。这是一段很不错的记忆。(在此也非常感谢一路上各位大佬、各位朋友对我这么多的支持)
中考后,经过了几个月的收购交接和流程,我们终于完成了软著转移,权限分配等收购流程,更多的人会参与进来,我们同时也会继续主导本项目的 Future!感谢大家一路的支持!
同时,我也在同时进行几个新项目,期待更多崭新的产品在未来能与大家相汇!
附 LinuxDo 帖:
linux.do