上周五下午,公司茶水间。
我端着咖啡,跟同事老张吹牛:“我用JavaScript写了个AI聊天机器人,要不要试试?”
老张瞥了我一眼,嘴角带着那种“你又整什么幺蛾子”的笑:“行啊,让我见识见识。”
结果他对着屏幕打了句“今天天气怎么样”,我的机器人回了句:“天气不好说,但你的心情我可以猜——加了班,对不对?”
老张愣住了。
.jpg)
其实他不知道,这个东西看起来简单,但我真搞了好几个晚上。
先说说思路
其实一开始我也没想搞多复杂,就是最近AI太火了,别人都在用API调ChatGPT,我想整点不一样的——不用任何外部接口,纯前端,纯JS,自己写一个能聊天的玩意儿。
听起来有点离谱对吧?但真做起来还挺有意思的。
我管它叫“规则匹配+关键词联想”,说白了就是让电脑学会“接话茬”,你输入一句话,它先拆成词,然后去数据库里找相关的回复模板,比如你说“好累”,它就会匹配“累了”、“辛苦了”、“疲惫”这些词,然后随机挑一个对应的回复。
刚开始做得特别糙,就是一堆if-else。
if (input.includes('累')) {
reply = '注意休息啊';
}
老张看完直接笑了:“你管这叫AI?这不就是自动回复吗?”
他说得对,这种东西发出去,读者估计得喷我。
后来我搞了点“脑子”进去
真正让这玩意儿看起来像那么回事的,是我加了两个东西:情感分析和上下文记忆。
情感分析其实不复杂,我搞了个情感词库,把用户输入里的词打个分,开心”+2分,“难过”-2分,“去死”-5分,算完总分,机器人回复的风格就不一样了,分数高的时候它会更活泼,有时候还加个表情,分数低的时候它就说点暖心的,或者干脆闭嘴少说两句。
上下文记忆就更骚了,我整了个数组,存最近5轮对话,这样用户说“我喜欢猫”,它能记住,后面再聊别的,绕一圈还能扯回来——“对了,你刚才说喜欢猫,我其实更喜欢狗,但猫也行吧。”
这招特别管用,有种“机器人真的有在听你说话”的错觉。
最让我头疼的是“人工智障”时刻
你永远猜不到用户会输入什么。
有人上来就发乱码,有人问“你先有鸡还是先有蛋”,还有人直接骂脏话测试我的机器人会不会骂回去。
我一开始没考虑这些,结果机器人在公司群里回了一句脏话,场面一度非常尴尬。
后来我加了“兜底回复”功能,就是如果匹配不到任何关键词,或者情感分析结果太奇怪,直接回一句:“这个话题我有点接不上,换个别的聊聊?”
你看,承认自己不会,反而显得真实。
这东西真有用吗?
说实话,你要指望它写代码、做PPT,那不可能,但你要只是想要个陪你胡说八道的玩意儿,它还挺上头的。
我在自己的博客上挂了个demo,三天来了两百多人,平均聊天时长超过6分钟,有人跟它聊了一个小时,最后还说了句“晚安”。
可能这就是人吧,明知道对面是代码,还是忍不住把它当人看。
最后说点实在的
如果你想自己做着玩,我建议别一开始就想搞多完美,先写个最简单的规则匹配,跑起来,然后一点一点往上加功能,加情感分析、加记忆、加随机性、加点小幽默。
代码这东西,越改越有灵魂。
老张现在没事就来我工位跟机器人聊天,虽然他嘴上还说“不就一堆if-else吗”,但我看他聊得挺开心。
这就够了。
(对了,想要源码的可以留言,我整理一下发出来。)
(免费申请加入)AI工具导航网

相关标签: # js制作ai聊天机器人
评论列表 (0条)