人工智能(zhang)微信聊天机器人

机器人瓦力

利用python做一个微信聊天机器人早已不是黑科技,网上有很多通过图灵机器人接口和itchat实现的教程。
然而图灵接口现在限制调用次数(100次/日),无法愉快的玩耍,所以我找了个替代方案
青云客智能聊天机器人API
接口url:http://api.qingyunke.com/api.php?key=free&appid=0&msg=
原理是在msg=后面加入发送的信息作为请求就可以收到回复,例如发送“你好”:
http://api.qingyunke.com/api.php?key=free&appid=0&msg=你好
回复格式为:

{"result":0,"content":"不要每次都用你好做开场白行不,忒俗了"}

具体实现方法,首先安装itchat:

pip install itchat

然后代码如下:

# -*- coding: utf-8 -*-
import itchat
import urllib.parse
from urllib import request


def get_response(msg):
    s = urllib.parse.quote(msg)
    url = "http://api.qingyunke.com/api.php?key=free&appid=0&msg=%s" % s
    reply = request.urlopen(url,
                            data=None,
                            timeout=10).read().decode()
    repdic = eval(reply)
    return repdic['content']


@itchat.msg_register(itchat.content.TEXT)
def tuling_reply(msg):
    # 设置一个默认回复,在出现问题仍能正常回复信息
    defaultReply = '呵呵呵呵' + msg['Text']
    reply = get_response(msg['Text'])
    # a or b 表示,如有a有内容,那么返回a,否则返回b
    return reply or defaultReply


#主程序
# 使用热启动,不需要多次扫码
itchat.auto_login(hotReload=True)
itchat.run()

需要注意的是,由于默认环境是ascii,msg含有中文的话是没法直接解析的,会引发报错。
需要用urllib.parse.quote()处理后再接到url后面。

运行后会弹出二维码,扫描登陆后即可开启自动回复,机器人会代为回答所有的私聊信息。
有一个问题是,由于itchat基于网页版微信,而目前新注册微信号不能登陆网页版微信(貌似出于安全考虑),所以只能用比较老的微信号测试啦。

运行效果如图:


运行效果

参考文章:
https://blog.csdn.net/hfuturer/article/details/80721283
特别感谢:
http://www.qingyunke.com/

你可能感兴趣的:(人工智能(zhang)微信聊天机器人)