“还是阿姨做得最好吃!”
“这话下次当着她的面说。”
“我当然会说!”
陈平的手机亮了起来,是季铭发来的消息。
欧洲新增算力节点已经通过测试,下周接入亚洲主干网络。
接入完成后,免费用户的平均排队时间预计能缩短40%。
陈平把消息递给杨桃看。
“40%还是不够。”她说。
“当然不够,后面还得继续加。”
陈平把手机搁到旁边,继续吃饭。
窗外的工业园区亮着大片灯光。
三年前,这里还没几栋像样的建筑,如今办公楼、测试车间和数据中心已经连成一片。
地下光缆从姑苏接往黔省,也通向欧洲和北美的海外节点。
此刻,全球还有许多用户守在女娲的排队页面前。
有人着急,有人抱怨,也有人干脆关掉软件,准备过几天再试。
陈平知道,缩短40%还远远不够。
不过节点已经开始增加,计算卡也在继续采购。
只要一步步做下去,排队的情况总会缓解。
至于网上那些骂声,陈平并不指望所有人以后都能理解他,能把产品做好,让大多数人真正用上女娲,就够了。
第417章 “女娲时刻”降临,美股惨遭血洗!(万字)
尽管女娲1.0伴随着无数的质疑和非议,全世界仍有成百上千万的用户排队等待测试这个人类历史上第一个拥有“智能”的生成式大模型。
有人等了几个小时,进去以后只问了一句“在吗”,还有人拿出早就准备好的问题,一口气往对话框里塞了几千字。
普通用户大多图个新鲜,真正把女娲当成测试对象的,是各个平台上的技术爱好者。
国内最先火起来的是一个名叫“小杨写代码”的博主。
他原本是杭城一家互联网公司的高级工程师,在论坛里混了很多年,平时专门评测各种开发工具。
女娲上线前,他就在微博上发过预告,说要准备一套完整测试。
有人问他打算测什么,他只回了一句:“先看看这东西到底会不会写代码。”
4月2号凌晨,小杨总算排进了免费通道。
他先让女娲用C语言写一个简单的学生成绩管理程序,要求支持录入、查询、修改和删除,数据还要保存到本地文件。
这个题目不算难,大学计算机专业的学生花上半天也能写出来。
女娲用了十几秒便给出完整代码,还顺手把程序拆成了数据结构、文件读写和菜单交互三个模块,代码末尾附着一段说明,提醒用户输入学生姓名时要限制长度,否则可能出现缓冲区溢出。
小杨把代码贴进编辑器,编译一次通过。
他随后故意输入超长字符串,程序没有崩溃,女娲提前加上的长度检查确实起了作用。
小杨有点不服气,又把需求改得复杂了一些。
“改成多线程服务器,支持多个客户端同时查询,通信协议你自己设计,要求兼容Linux和Windows。”
女娲没有马上给代码,而是先问了他几个问题。
“预计同时在线人数是多少?”
“是否需要身份认证?”
“服务端数据由单机文件保存,还是允许使用数据库?”
小杨看到这几个问题,坐在电脑前愣了一会儿。
以前他试过不少自动编程工具,那些工具拿到需求就开始堆代码,很少会反过来确认使用场景。
他故意回道:“你自己决定,按一个小型学校管理系统来做。”
女娲很快给出方案,建议采用TCP长连接、线程池和SQLite数据库,同时将协议设计为带长度头的JSON消息格式。
代码比较长,女娲分成了服务端、客户端和公共协议三个部分。
小杨一边复制一边检查,很快发现客户端重连逻辑里有个小问题,他没有直接指出错误,只说:“网络断开以后偶尔连不上,你查一下。”
女娲重新检查代码,很快定位到套接字关闭后状态没有完全重置。
它没有把全部代码再贴一遍,只给出需要修改的函数和原因,还补了一段重连次数限制,避免网络异常时程序无限循环。
小杨继续找麻烦。
他把一段自己以前写的烂代码贴了进去,里面混着内存泄漏、数组越界、重复锁和一个很隐蔽的死锁。
“这段程序跑久了会卡死,帮我看看。”
女娲先指出数组下标可能越界,又发现两处没有释放的内存,最后顺着加锁顺序找到了死锁。
最让小杨意外的是,女娲没有只说“锁的顺序不一致”,还画出了一条文字版的等待关系!
线程A持有用户锁,等待日志锁;
线程B持有日志锁,等待用户锁。
两个线程互相等着,程序自然会卡住。
女娲给出的修改方案也很直接,统一加锁顺序,或者使用一次性获取多把锁的封装函数。
小杨把修改应用到程序里,跑了半个小时的压力测试,再也没有出现卡死。
凌晨3点多,他发出第一篇长微博:
“我原本想找女娲的笑话,结果它先把我两年前写的代码骂了一遍!”
微博下面附着完整测试记录,连女娲犯过的那个重连错误也没有删。
最开始只有一些程序员关注,很快便有人把测试转到了几个技术论坛。
“编译通过没什么稀奇的,网上现成代码多得是!”
“你再看看死锁那一段,这可不是复制代码能解决的。”
“它可能在训练数据里见过同样的程序。”
“小杨那份代码是公司内部项目改的,之前根本没公开过!”
“别吹了,让它写个操作系统试试!”
小杨看到最后一条评论,当场回复:“你让一个工程师一天写操作系统,他也得叫你滚!”
这条回复被转发了几千次。
争论并没有停下来,反而引来了更多程序员。
有人把女娲接进一个开源项目,让它阅读近20万行代码,再询问某个功能的调用路径。
女娲花了几分钟分析文件,最后从入口函数一路追到数据库层,中间列出了17个关键调用点。
项目维护者按照它给的路径检查,发现女娲漏掉了一处异步回调,却找到了一个存在半年多的缓存错误。
还有人拿一段没有任何注释的汇编代码测试。
女娲判断那是一段图片压缩程序,并将其中几个核心循环还原成了接近C语言的伪代码。
测试者又故意把寄存器名称改乱,女娲很快提醒他,这段代码无法在指定架构上运行。
“我服了,这玩意儿连假代码都能看出来!”
“别急着服,它刚才把一个排序算法认错了。”
“认错以后呢?”
“我提醒了一句,它自己改过来了。”
“人写代码还天天出bug呢,你要求它一次不错?”
“问题是它改bug比我快!”
技术圈吵了整整一天。
小杨又开了一场直播,在线人数居然从最初的100人不到涨到20多万,远超那些热门的游戏主播!
直播开始后,他没有继续做那些常见的小程序,而是从零搭建一个电商网站。
他只给女娲一句需求:“给小区附近的水果店做个线上商城。”
女娲先列出商品、库存、订单、支付和配送范围等功能,又提醒生鲜商品存在重量浮动,不能完全按照普通商品的固定数量结算。
小杨看到这条提醒,忍不住说了一句:“行啊,这都能想到!”
直播间立刻飘过一片弹幕。
“我都没想到!”
“水果按斤卖,最后称重确实会变!”
“别光看需求分析,让它写!”
“赶紧上强度!”
小杨让女娲自己选择技术方案。
女娲建议后端使用成熟的Web框架,数据库使用MySQL,前端先做普通网页,等业务稳定后再考虑手机应用。
它还特意解释,小店刚开始没必要追求复杂架构,单机部署够支撑早期订单。
这句话让直播间里的程序员笑了起来。
“大厂出来的架构师看了想哭。”
“终于有ai知道小店用不上百台服务器了!”
“我们公司日活800人,领导非要上微服务。”
“前面的别说了,我已经开始难受了。”
女娲很快搭出项目结构。
商品页、购物车和订单页面看着有些简陋,基本功能却都能正常使用。
小杨临时提出满减、优惠券和会员折扣叠加的需求,想看它会不会把价格算乱。
女娲先问清优惠顺序,随后把结算规则单独做成模块,还生成了30多条测试用例。
小杨连续改了几次条件,程序始终能算出正确价格。
后来他故意设定了一组互相冲突的优惠规则,女娲没有硬写,直接提醒:“当前规则存在歧义,同一订单可能出现两个不同结果,请先确定优先级。”
直播间安静了一会儿,弹幕突然爆发了: