Python做一个聊天机器人

受到疫情的影响,今年的这个假期显得格外的长,可能是我国建国以来最长的一次的吧。很多同学们大呼“我第一次这么想去上学”,“去年在家捡蘑菇,今年在家长蘑菇”,“这个寒假有暑假的味道了”,想来大家在家中憋得也是很是辛苦。每天早上起来看看疫情数据,看看最动态,早饭后各种线上娱乐一顿操作,下午和晚上也是差不多了。第一次感觉猪生活得也很不容易啊。

虽然每天都盼着早些去上学,早些回公司上班,但这个假却是越放越长。本来部分地区最初是打算在二月的中下旬开始开学的,这些天突然又推迟到的三月份,而且具体时间还要等后面的通知。一些公司也是打算先部分人在家中办公,然后9号之后返回公司开始上班,部分人可能行李都准备好了,可是又接到延迟返回公司的通知。用一句话来形容大家就是,“闲的发慌呀”!

而现实是,即使在全国人民都最有时间聊天的时候都没有人找你聊天的话,说明真的没有人喜欢你。听到这句话时,不知道有多少单身狗受到了一万点伤害,不过放心,我与你们同在(笑哭.jpg)。都说自己动手,丰衣足食,没有人找自己聊天,就要创造机会让自己去聊天,哪怕对面是个机器人呢。与其等女神/男神来撩自己,有一句没一句的聊着,半天都不回消息,不如自己动手打造一个属于自己一个人的,会唱会跳会rap,脾气超好,消息秒回的女神/男神呢?

话不多说,开工!

准备工作

一台电脑,一个手机,一个热水袋,两个微信号

什么,我没有两个微信号怎么办?怎么办,活人能让尿憋死不成,注册一个呗。

那热水袋又是什么鬼?哦,天气冷,暖暖手。

运行环境准备

(1)Python3.5及以上版本(Python2.7已经停止更新,虽然还能用

(2)使用Pip安装最新的的itchat, requests库

          pip install --upgrade pip  #使用前先更新一下pip

          pip install itchat requests #安装itchat, requests库

可以通过在python交互界面中导入库看是否安装成功,如果像下图中没有报错,说明安装成功。

库使用介绍

(1)itchat

itchat是一位牛人根据网页版微信接口做出来的库,能够实现微信消息的各种功能。例如加好友自动通过,群消息回复,消息中提到我回复,接受公众号消息,文字、图片、音频以及视频消息等多种消息的接受和回复。这个库使用起来十分的轻便,再次登入时可以不用再扫码,而且能够保持长时间登入。在回复的消息中,也可以是文字,图片、音频或者视频,配合起来使用,十分的有趣。下面是一个简单的登入,监听消息以及回复的简单例子。

importitchatfromitchat.contentimportTEXT@itchat.msg_register(TEXT)defsimple_reply(msg):print(msg['Text'])returnmsg['Text']itchat.auto_login(hotReload=True)itchat.run()

简单分析一下。代码的最开始两行,导入itchat库和一个TEXT的消息类型。中间的是消息注册器,监听是否接收到文字消息,如果有的话,消息打印出来,同时将原消息发送回去。最后两行是登入与一直运行。值得注意的是,hotReload=True 这个参数加上之后,第一次扫码登入时会产生一个pkl文件,那么在下一次登入时,就可以不用再次扫码了。

关于itchat的更多使用,大家可以参考这篇博客和官方网站(加载好慢)介绍。

Python微信库:itchat​www.cnblogs.com

itchat api中文​itchat.readthedocs.io

(2)requests库

相信了解过爬虫的朋友们对这个库一定不会陌生了,即使没有真正地学过爬虫,也一定有所耳闻的。requests库是一个常用于网络通信的的库,当然通信协议是http/https一类的。以我们用浏览器打开一个网页为例。首先是我们向地址框输入一个地址,浏览器开始发起请求(request)。然后浏览器等待服务器的响应(resoponse),如果没有出现错误的话,那么就会返回一个响应。最后浏览器会将响应解析,然后呈现在浏览器页面上。

那么,requests库做了什么呢。一般来说,requests库完成了浏览器访问一个网页的前两个步骤,即发送请求和得到响应。至于解析部分,根据个人目的和喜好,可以使用不同的方式进行解析。比如爬虫中就常以BeautifulSoup对响应的content(文本)进行解析,按规则查找自己想要的内容。

注册一个机器人

目前有些平台推出了各种各样的人工智能聊天服务,比如腾讯,百度和阿里,网络上也有很多其他类似的服务。通常来说,这些服务都是面向接口开发的,我们在做自己东西的时候也只需要按照其服务介绍进行编程即可。在该文中,使用的是腾讯的智能闲聊,毕竟大厂做出来的东西总是要好一些的嘛。而且个人每天还有7000次的接口调用次数,爽得不得了,比起一些动不动就付费的平台来讲,大气多了。

使用的时候呢,我们只需要注册一个机器人,得到它的key就可以了。至于如何接收数据,官方文档中写得再清楚不过了。为了节省大家时间,还是直接给地址吧(有些搜索引擎不想让我好好学习)

                                        文档中心-腾讯AI开放平台​ai.qq.com

当然,厉害一些的,家里有矿的大佬,也可用语料库通过深度学习自己训练一个好的网络,然后再整合一些其他功能,做一个100%原生态的机器人。对于大部分人来说,有免费且好用的机器人,咱就不挑剔了。

代码编写

到了这里,大家基本上已经搞懂了如何去编写了。以上面自动回复为例吧,只需将接受来的消息送入API接口充当参数,然后将得到的响应作为新的消息发送出去,那么这样就完成了一次你与机器人之间的对话了。当然,此外我们也是需要加一些控制的。比如回复的速度不要太快了,稍作一些延迟,避免被封。还有就是要做回复人的控制,不能每一个人都自动回复了,万一别人真有些事要找你呢?可以考虑加一些好友白名单,关键词之类的,再加一个机器人启动和停止关键词。那么这样的话,基本上,一个完整的机器人就算是完成了。

至于如何把TA调教好的话,哈哈,那就根据个人口味爱好在机器人中去做自己的设置喽。

放心,这里没有代码,留个大家一些思考和成长的时间。俗话说,授人以鱼,不如授人以渔。多遇见几个Bug或者Error就成长了。

是不是心动了呢?快乐其实很简单,自动动动脑子,动动手就可以创造出来。看起来很复杂,做起来其实很简单。用很少的代码,获取很多的快乐,这个假期,让自己不再孤单。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容