时间:2024-08-31
许桂梅
摘 要:微信API有两个非常好用的python库:wxpy和itchat,这两个库使用了Web微信的通訊协议,实现了微信登录、收发消息、搜索好友、数据统计等功能。在图灵官网申请一个免费的图灵机器人,通过调用图灵机器人的API,实现发送消息获得机器人回复的功能。我们在微信聊天机器人的基础上,在编程中又增添了查看微信好友男女比例、数据可视化、图片识别等功能。
关键词: 图灵机器人;API;数据可视化;图片识别
1 背景
随着大数据、自然语言处理等互联网技术的快速发展,人工智能交互技术的不断完善,聊天机器人已经走进人们的日常生活中。聊天机器人是一个用来模拟人类对话或聊天的程序,微信聊天机器人通常是借助第三方软件来实现机器人和人类的自由对话。图灵机器人是北京光年无限科技旗下的个性化人工智能机器人开放平台,普通帐户可创建5个机器人,每个机器人均有唯一的 API key。开发者可以利用图灵机器人的API创建各种网络在线服务,打造个人专属智能交互机器人,也支持多渠道多维度的快速接入与访问。有聊天、笑话、故事、成语接龙、生活百科、图片、天气、计算等18个功能提供选择。我们的微信聊天机器人将通过调用图灵机器人API来实现。
2 微信聊天机器人的总体设计
设计的微信聊天机器人,主要包括以下几个方面的功能:
(1)聊天问答:它是微信聊天机器人最基本的功能,可以实现给所有人回复消息、给指定的人回复消息、给指定的群回复消息,响应迅速,回答精准。
(2)数据处理:具有好友统计功能,可以很方便地统计好友的地理位置分布和性别分布等信息。
(3)百度智能识图:调用百度智能云进行图片识别等功能。
3 基于python的微信机器人的主要原理
3.1 微信库选择
python关于开发微信的库主要有itchat和wxpy两种,wxpy底层是调用的itchat。其中wxpy库,它比其他的库都要优雅,更面向对象,而且深度整合了图灵机器人和小i机器人;itchat扩展性更好,适合开发一个自己的微信库。
很多人都使用过微信的网页版,而wxpy(底层使用itchat)库就是模拟登录网页端,然后调用微信的api实现操作的。目前wxpy和itchat都是模拟网页版微信来操作的。
3.2 数据可视化
ECharts提供了常规的折线图、柱状图、散点图、饼图、K线图,用于统计的盒形图,用于地理数据可视化的地图、热力图、线图,用于关系数据可视化的关系图,多维数据可视化的平行坐标,还有用于BI的漏斗图、仪表盘,并且支持图与图之间的混搭。
(1) Python之pyecharts模块
pyecharts 是一个用于生成 Echarts 图表的类库。Echarts 是百度开源的一个数据可视化 JS 库。用 Echarts 生成的图可视化效果非常棒,为了与 Python 进行对接,方便在 Python 中直接使用数据生成图。
(2)Python之webbrowser模块
支持对浏览器进行一些操作,对于爬虫来说是比较基础的知识点。webbrowser模块提供了展示基于web文档的高层接口,多数情况下,简单地调用open() 函数即可。
3.3 图片识别
python调用百度api,进行图像识别(百度通用文字识别)。首先去百度官网进行身份验证,在平台注册,注册获取key,可以免费使用其提供的接口。在python编程中调用百度接口,即可进行简单的图像识别。
4 主要实现过程
4.1 微信消息回复
(1)下载wxpy库和itchat库
使用命令pip install wxpy,在电脑上下载wxpy库;在电脑上下载itchat库,可以使用pip install itchat。
(2)在python中登陆微信web版
在python中登陆微信web版,会弹出二维码,用手机微信扫一扫即可实现登录。但上面的程序有一个缺点,每次运行都要扫二维码。不过wxpy非常贴心地提供了缓存的选项,用于将登录信息保存下来,核心代码如下:
from wxpy import*
bot=Bot()
bot=Bot(cache_path=True)
(3)搜索好友及微信群
下面代码实现搜索群聊,定位指定人并转发指定人消息的功能。
company_group=bot.groups().search(‘指定群聊)
boss=company_group.search(‘大名)
(4)消息自动回复
wxpy同时也包括了发送不同类型消息的方法。可以设置给所有人回复消息、给指定的群回复、给指定的人回复,给指定人回复消息。
4.2 数据处理
wxpy库提供的好友统计功能非常好用,可以很方便地统计好友的地理位置分布和性别分布。
(1)微信好友男女比例
我们运用pyecharts模块导入Pie来绘制饼图,用webbrowser来打开浏览器,运行效果如下图所示:
(2)微信好友地域分布
微信好友地域分布显示中国地图,需要装中国地图模块,我们同样使用pyechats模块进行数据分析,代码运行结果如下图所示:
4.3 百度智能识图
使用itchat库新建一个wechatRobot.py,导入需要的库,编写一个class Robot,首先初始化自己注册的百度API信息。根据微信好友发来的消息,判断是否为选定的白名单好友,判断消息类型,若为“动物识别”,则进入百度图片识别功能,其他的消息类型则调用图灵聊天机器人。调用聊天机器人,根据主函数选定的机器人种类进入相应模块,开启自动回复和智能识图功能。
5 总结
在python中用wxpy(底层使用itchat)模拟登录网页端,然后调用微信的API实现微信登陆。申请一个免费的图灵机器人,通过调用图灵机器人的API,实现发送消息并获得机器人回复的功能。我们在微信聊天机器人的基础上,在编程中又增添了查看微信好友男女比例、微信好友地域分布等功能。在其中我们用到了pyecharts模块,通过模块进行数据可视化,生成数据图等操作,而后通过调用百度API接口,完成微信的图片识别功能。
参考文献:
[1]陈伟, 吴明瞾, 苏浩伟,等. 基于Python的图灵机器人设计与实现[J]. 数码世界, 2019(2):37-39.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!