>首页> IT >

火遍华为的神器,居然诞生于这位少年之手

时间:2023-08-23 18:30:41       来源:腾讯网

作者 | 任  伟


(资料图片)

来源 | 心声社区、蓝血研究(lanxueyanjiu)

我,是一名普通而又“懒散”的软件开发工程师。

说普通,是因为我长相普通,身高中庸,连软件开发用的语言都是最基础的Python语言。

而说我“懒”,是因为我脑海中的灵感和idea不同一般。常人写代码,思考的都是如何将代码写好或者用多种代码来实现等等,而我,却常常思考写代码如何能省时省力,如何能更好地提升编程效率,或者说我的终极梦想是,有一天,代码的某些功能甚至不需要自己手写……解放程序员的双手,让每一位程序员去思考更深更远的事。

而“小鲁班”,这个至今已经被公司15万人使用600万次的小型AI软件,就在我这个“懒人”手中应运而生了,接下来,我就来讲讲它的故事。

01

小鲁班,诞生了!

2022年10月,这是我第N次来到实验机房。

作为一名计算产品线底层驱动软件开发工程师,我的主要职责就是让接入的硬件设备能够在服务器中正常工作,这就好比我们为了玩游戏新买了上万元高端游戏电脑,如果没有顺手的鼠标和丝滑的机械键盘,是无法将自己优秀的游戏天赋兑现的。为了能让鼠标、键盘等配件快速适配电脑、驱动程序,这个充当硬软件润滑剂的关键一环,发挥着巨大的作用。

因此,我深知自己工作的重要性,也非常热衷于将自己的工作做到完美。日常我除了在工位上码代码,往往还会去机房和存储服务器进行“亲密接触”,大到从零搭建一台服务器,小到检测更换一根网线。经常去机房的同事应该知道,在顶着充斥耳廓的巨大噪音与数百台服务器打交道的同时,我们往往还需要查询一些相关的软件信息,而这对于身在机房且没有便携机的我可能就有些困难,通常这种操作,我需要找另外的同事帮忙。

“大哥,通了吗?”我把一根泛黄的网线插到一台新搭建的服务器上,给四楼同事发去消息,让他帮忙看看网络是否连通。

等了许久得到回复:“没有。”

“现在呢?”我根据经验,执行例行的检测步骤,更换了一根测试网线。

回应我的,又是漫长而持续的风扇“嗡嗡”声,答复迟迟未来。

这种感觉让人头皮发麻。不知过了多久,等同事忙完,我终于迎来了回复——依旧是一句无奈的回答——“还是没有。”

我心想,这次检测的运气确实不佳,难道是这批物理网线有故障?我环顾四周,找了个崭新的网线换了上去。

“这下是不是可以了?”

等待良久,再一看,同事的WeLink状态不知何时已变成“忙碌”,哎,估计又被拉到某个会议里面,无暇顾及我了。

我靠着机架上叹了口气,陷入沉思——就没有什么办法,能在不依赖同事的情况下,自己也能快速解决问题?

我忽然想起来华为之前看过的一句话,“华为这家公司的最倚赖‘资产’就是华为的每一位奋斗者,但每一位华为员工同时也是最忙碌的‘资产’。有时简单的基层工作需要多个人的配合或协助才能高效完成。”但正如系统思维中所讲,承担系统运转的关系节点越多,也就是越多人参与的项目,风险就越不可控,任何一个环节出现问题,都会影响整个系统。所以,能否将一些基本的工作交给工具来完成呢?

一闪而过的灵感就这么诞生在我的脑海中。但是回到现实,在这安全性极高的机房,外部软件和工具肯定是没法使用的,而便携机又不是人人都有,唯一能使用的就是手机中都有的华为数字化办公软件——WeLink。

这不就是华为版钢铁侠的人工智能助手“贾维斯”嘛!在电影中,钢铁侠只需动动嘴,一句话就能让人工智能帮忙完成各项指令,而自己只需做出决策和判断即可,这种解放双手的“神器”不正是我梦寐以求的吗?工具不知疲倦,可以完美替代人来进行最基础的工作。

“是不是可以整一个WeLink机器人?” 回到现实,我继续思考,“我给机器人发消息,让它帮忙查询不就可以了,机器人还能24小时在线,以后无论谁碰到这种情况,有了机器人,方便快捷不求人!”

有了思路之后,我迅速行动。当晚,我就开始在W3网站上搜索各种文档,查看可行的实现办法。研究了十多篇相关文档后,我终于大致解了WeLink机器人的原理和相关接口的使用,也在心里有了初步的判断:“嗯,整体的原理和接口使用不复杂,应该能搞定。”这事可行!

但除了技术上可行,合规和权限等是想法落地的第一个拦路虎。想在公司搞创新,不搞定各类权限是不可能的,这也能理解,华为整体的研发流程与制度相当完善,是非常成熟的体系化运作,各司其职的流程保证了研发产品的高效运作。

“申请模块、appid(应用程序标识)、防火墙、公共账号、云服务器、应用团队、发送接口,申请......”这些流程化的权限申请着实也不简单。整个过程很坎坷,比如某个权限的申请流程里面写道“需要先到某例会评审”,我两眼一黑,又是一个我没听说过的例会,经过多方询问后才弄清楚整个流程。

就这样,经过一个月的各种申请流程后,合规和权限问题终于准备妥当。

再根据之前找到的开发文档,我利用业余时间学习了一些所需的知识,如部署Web服务、消息加密等,边学边写代码,一步步完成了机器人消息收发的框架,并将其部署在华为云中。

有了基本的框架之后,工具已经部署完成,因为测试网络连通功能是非常基础的功能,所以我只花费了半个小时左右,给这个WeLink机器人加上了它“人生”中的第一个功能,也是我之前在机房中最迫切需要的功能,即“输入IP查看网络是否连通”。

开发,调测,一切都非常顺利。

我在手机上打开WeLink软件,输入IP地址:“51.2.33.xx”。

WeLink机器人立刻输出结果:“可以连通”。

虽然在意料之中,但我还是忍不住嘴角上扬,宛如化身登月的阿姆斯特朗,“这是WeLink机器人的一小步,却是用智能化工具提升研发效率的一大步!”我迫不及待想要将脑海里至少十条待开发的新功能一一实现。

我思索了一会儿,给它取了一个亲切而又符合实际的名字——“小鲁班”。希望它能够像历史上优秀的工匠鲁班一样,帮助所有的华为研发人提升工作效率,成为大家工作上必不可少的小助手。

02

前进吧!小鲁班

在日常工作中,总有一些比较固定和重复的事务,没有太多的技巧但又会消耗我们宝贵的时间。对于类似的工作,通常会以公共事务的方式,大家轮流来负责。在距离小鲁班初代1.0版本正式上线一个月后,这繁琐的公共事务也恰好轮到了我......

“阿伟呀,下个月就轮到你看护环境了。”某天,刚刚完成本月任务的同事对我说。

由于我们的业务经常会和硬件打交道,所以每个组都会有很多设备用于日常的代码调试和运行,而到了晚上这些设备又会用于执行自动化任务。看护环境就是每天下班前检查所有设备的运行状态,确保晚上的任务顺利运行。

“没问题。”我干脆地答道,脑海中却在飞速思索,这种简单的、例行化运作的工作,能否通过工具去解决?

但是如果每一件事情都做一个新工具,那么大家需要安装的工具就很多,从经验来看,这样往往很难推广,从而造成重复造轮子的问题,那么如何做到新加一个功能后,其他同事能够非常便捷地用起来呢?

“是不是可以使用小鲁班来做?这样大家无需安装任何新的工具,直接给它发消息就行!”我忽然想到,好伙伴近在眼前嘛!

有了想法之后,我去了解了一番具体要检查哪些内容,然后用Python编写设备检查脚本。这对我来说轻车熟路,基础的程序并没有太大难度。程序写好后,我快速部署到小鲁班的后台中,当它接收到“环境检查”的消息后,就能自动调用脚本对所有设备进行检查。

简单的调试和自测后,功能就已经可用,接下来就要接受“群众”的考验了。我迫不及待地把小鲁班拉进群中,并@它。

“@小鲁班,环境检查。”

此时,群里的同事一愣,摸不着头脑,“小鲁班还能做环境检查吗?”

小鲁班收到我的消息后,立刻开始展示它的本事——

“正在检查”

“A环境,PASS”

“B环境,FAIL!原因为……”

“C环境,PASS”

“……”

众人还没反应过来,环境检查的公共事务已然完成,整个流程耗时5秒。

短暂的沉默后,群里迸发出一阵阵给小鲁班点赞的声音——

“小鲁班这么快?”

“用起来很方便呀!我们也能给它发消息吗?”

当天晚上之后,小组内的同事都惊喜不已地迅速使用起了小鲁班的新功能。

我没有停歇,见功能正常使用后,我又快速设置了定时任务,让小鲁班在我们每天下班前自动检查环境,并将结果发到群中。

此后,这个延续多年的“公共事务”,就再也不会打扰到任何一位同事,原来的公共事务排班表从此销声匿迹,江湖上只有“小鲁班”!

尝到甜头的我更是一发不可收拾,必须举一反三将成功经验用到极致。在版本和项目上,我也为小鲁班开发了类似功能,比如看护项目自动化用例运行情况,通过代码实现信息查询、分类、总结等过程,然后将这些代码集成到小鲁班上,后续只需发送 “构建情况”,即可实时查询所有版本用例的执行信息。

此后,这些信息收集、汇总等繁琐工作,便统统甩给了小鲁班。因为一键问询太方便了,大家也由以往的“被动看护”变成了“主动看护”,从而更加及时地去发现和解决自动化任务的问题,效率的提升带来了质量的提升。

看到此处,如果你要问小鲁班新功能这件事的后续,那我自然要感谢部门主管了。主管从此化身小鲁班代言人,例会上向周边团队宣传,吃饭时向熟悉同事“安利”,甚至连部门聚餐的机会也不放过,积极植入小鲁班“广告”。

在主管不辞辛苦地宣传推广下,其他组的同事纷纷找上门来取经。就这样,“构建查询、环境检查、自动创建Merge(合并代码)”等小功能也已在多个版本、部门和周边部门使用,如今这些小功能也已经使用了两万多次……

随着使用小鲁班的人越来越多,新的需求也如雨后春笋般涌现,在短短两个月内,我又添加了“图片文字识别”“消息提醒”“短链接生成”等功能。小鲁班也在逐渐迭代和升级,更多人和更多团队开始使用小鲁班处理繁杂的公共事务。不知不觉中,我已经让小鲁班这个原来只是检查网络的小工具,快速成长为一个多才多艺的实用助手了。而且,验证它是否好用,不需要多么精美的胶片,也不需要铺天盖地的宣传,用户的使用数据就是最直截了当的评价标准。

截图提取文字功能:上线4个月,在公司内使用了约二十万次。

消息提醒功能:上线3个月,在公司内使用了三十万次。

这些真实的数字,就是给我的最好激励。也让我明白,当一个工具使用起来足够便捷,才能真正地推广和运用起来,发挥它的价值。

03

小鲁班,更上一层楼

时间来到2023年3月份,小鲁班上线了将近四个月,基础功能已经成型。

而此时,ChatGPT等AI大模型已经在全世界火得一塌糊涂,公司内外部的专家对此有颇为关注,分析AI大模型会给我们的工作带来哪些改变,有人认为大模型只是一个提升效率的工具,有人认为能够颠覆我们的工作。

但就像小马过河,也许只有在大家真正使用后,才能够有更多真切的体会和思考。因此,我又思索着给小鲁班加上AI聊天功能,希望大家在使用后能够产生更多的思维火花。

于是,在AI聊天接口开放后,我去看了下官网文档,给小鲁班加上了AI聊天试用的小功能,这也是后续很多同事认识、关注到小鲁班的主要原因。随后,我也增加了“发送字数限制”“敏感词校验”“首次使用时进行提醒”等措施,让大家在试用的同时,注重保护公司内部资产。

但刚开放几个小时,就陆续有同事反映有些代码显示不出来,我感到疑惑,这是啥情况?于是赶紧将反馈的问题仔细对比了一下,我发现这类问题有个共同点,如果代码中带有某些特定的符号,就会无法显示。于是,我找到公司IT的对应接口人进行求助,那位同事看了一会说道,“这个接口的机制就是这样的,解决不了,而且代码已经固定了,后面也不会修改。”

如此来看,好像没办法了。我心想,那岂不是很多代码都显示不了?我心有不甘,继续分析原因,有了一个重要发现——这个问题的本质,其实是由于这些标签被错误解析了。

“那有没有什么方式,不让它去解析呢?”

找到关键点之后,我又在搜索了一下类似问题的解决方式,果然找到了线索。通过尝试,我发现有一种方式可在小鲁班上生效,也就是把内容包裹在一个特定的标签中。最终,我成功解决了这个技术问题。

但这还没完,我又碰到了一个非技术问题——因为这个接口是收费的,也就是说,大家每问小鲁班一句话,我就会花一次钱。所以在一天之后,我一看账单,恨不得当场昏厥,我一整天的工资直接蒸发!

这雷锋可真不好当呀,虽然不会吃亏,但可能要吃不起饭了。我犹豫着是否要关了这个小功能,不过想到可能有些同事确实需要,纠结片刻,我采取了折中的办法——改成每人每天只能试用十余次,并关闭了多轮对话。

所以也经常有同事问道,为啥会有限制?嗐,当然是因为贫穷啦!

就这样持续一段时间之后,有一位素未谋面的热心同事找到了我,加上内源和我所在的部门也给我提供了帮助,这才顺利解决了费用的问题。这些都让我非常感动,毕竟一开始只是个人爱好,没想到如今承接了大家的“大爱”。

后来,我将AI聊天替换为HIS|UniAI团队的UniAIGC服务,以便为大家提供更安全、便捷的服务。

AI聊天功能的出现,也让原本只承担技术工具、影响度只限于部分群体的小鲁班被更多同事认识。而未来,它将继续迭代更新,扩展更多新的功能,向更远的远方继续航行!

04

小鲁班,扬帆远航

从开放小鲁班的第一个功能到现在,差不多半年时间,却让我记忆犹新。它的大部分功能,都是我这半年中从茶余饭后的业余时间中硬生生挤出来的,前前后后满打满算加在一起,也不过二十来天,但它却从一开始只有去机房的同事使用、到组内、到部门、到公司,一步一步成长为如今被超过15万人使用过的小伙伴。

2023年华为内源大会上分享

随着使用人数增加,维护成本也逐渐变高,占据了我一些工作上的时间,这也让我明白个人的力量和时间终究有限,正如公司内源大会上,负责内源的周代兵老师所提到的:“一个人可以走得很快,但一群人才能走得更远”。

因此,小鲁班也有了自己的“远航之路”——后续,它将由更为专业的HIS|UniAI团队和我们产品线装备部的同事共同浇灌成长,使它能够真正成为每个人的贴心小助手,并继续通过内源的形式,让每位同事都能开发适合的功能,实现共建共享,让它茁壮成长为茂盛的参天大树!

这一刻,我看着小鲁班,感受到了做自己觉得最有意义的事情的快乐和满足感,能帮助到大家,也让我无比兴奋。

创新,是研发继续前进的催化剂。

高效,是我所在产品线的文化导向。

我深知,自己所在的计算硬件驱动团队,给了我成长的空间和足够的支持,我也有强烈的意愿去改变、去探索、去创新,这正是我梦寐以求的成长之路。

关键词: