一个小型微信自动回复机器人

事情的起因是我发现了一个很有趣的python包——itchat。该项目是腾讯开放的一个对微信进行操作的接口,可以对个人、群聊收发消息图片文件等等。具体功能可移步官方文档ITchat

图灵机器人是一个基于自然语言处理、知识库和云计算等技术提供的一系列智能语义处理能力的服务平台,官网传送门戳这里。你可以再官网定制你的机器人属性。

该程序在接受到微信消息后,将该消息发送给图灵机器人的服务器取得响应,再将响应内容中的”Text”标签提取出来,通过itchat.msg_register方法自动将内容回复给发送者。

在程序运行时,会先弹出一个QRuuid,通过微信扫码后便可登陆。将itchat.autologin方法中hotreload的参数设置为true时,会生成一个itchat.pkl的十六进制文件,记录账号的登陆状态。

以下是程序源码

    import requests
    import itchat
    def Turing_response(msg):
        apiUrl="http://www.tuling123.com/openapi/api"
        data = {
            'key'    : '7f5b71d6ecc548fc861ce5de63df85eb', # 我申请的图灵key
            'info'   : msg, # 这是我们发出去的消息
            'userid' : 'APlanckFish', # 我的名字
        }
        try:
            r=requests.post(apiUrl,data=data).json()
            return r.get('text')
        except:
            return None
    # 这是与图灵服务器交互的程序

    @itchat.msg_register(itchat.content.TEXT)
    def turing_reply(msg):
        defaultReply="我收到了:"+msg['Text']
        #设置默认回复,防止服务器无响应
        reply=Turing_response(msg['Text'])
        #调用图灵服务器回复
        return reply or defaultReply
        #a or b 意思是如果a不为None,则返回a,否则返回b
    itchat.auto_login(hotReload=True)
    itchat.run()

也可以浏览我的github仓库。亲测该聊天机器人可以查询天气、快递单号以及其他信息,不能识别图片表情包。 如果需大量调用可购买图灵机器人的商用api。