当前位置:   article > 正文

PC端微信 机器人智能自动回复实现 全攻略_微信ai自动回复机器人

微信ai自动回复机器人

PC端微信 机器人智能自动回复实现 全攻略

程序介绍

2021/06/05 更新

这个程序最大的优点就是免费,而且效果很好,环境要求不高。

该自动智能回复机器人基于python编写,笔者使用的版本是python3.7。

微信的信息捕捉发送部分采用了WechatPCAPI免费版。
GitHub地址:https://github.com/smallevilbeast/wechat_pc_api。

智能回复部分采用百度AI提供的智能回复API。

WechatPCAPI

WechatPCAPI主要实现了指定微信版本下微信信息的获取与发送,该API可以捕捉微信接收的信息,并解译为json格式供用户调用。在我们的机器人中起到了捕获文字信息和发送文字信息的功能,具体使用方法可以自行调试或参考其开发文档。

这里需要注意,该API只能在指定微信版本中使用,免费版对应3.0.0.57。这里留个该API开发者创建的交流群:308918346。

百度UNIT

智能回复部分调用百度UNIT,这个是百度开发的智能回复API,目前免费开放但调用次数有限,不过用于自己玩玩的机器人还是很方便的。如果有更高需求,可以加钱嘛。
具体的调用过程包括:
1.注册UNIT账号
2.注册机器人
3.添加技能并进行排序:这里推荐将智能问答模块的优先级放在后面,因为所有的话它都接管了,导致天气、垃圾分类等功能始终没办法激活。
4.获取API密匙
在这里插入图片描述

实现代码

该代码保存在WechatPCAPI默认目录下才可运行,与自带的demo.py放在一个目录下

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

import wechat
import json
import time
from bs4 import BeautifulSoup
from queue import Queue
import time
import logging
import threading
import requests
import urllib
import urllib.request
import sys
import ssl
import json
import ast
from wechat import WeChatManager, MessageType

wechat_manager = WeChatManager(libs_path='../../libs')

list_name=[]
open_key=['打开','开启','打开机器人','开启机器人','启动']
close_key=['关闭','关闭机器人']
image_path='D:\\20210507195208.jpg'

# 这里测试函数回调
@wechat.CONNECT_CALLBACK(in_class=False)
def on_connect(client_id):
    print('[on_connect] client_id: {0}'.format(client_id))


@wechat.RECV_CALLBACK(in_class=False)
def on_recv(client_id, message_type, message_data):
    print('[on_recv] client_id: {0}, message_type: {1}, message:{2}'.format(client_id,
                                                                            message_type, json.dumps(message_data)))
    message_dict=json.loads(json.dumps(message_data))

    if message_type==11046:
        try:
            if message_dict['msg'] in open_key:
                list_name.append(message_dict['from_wxid'])
                reply='open success!'
                wechat_manager.send_text(1, message_dict['from_wxid'], reply)
            elif message_dict['msg'] in close_key:
                list_name.remove(message_dict['from_wxid'])
                reply='close success!'
                wechat_manager.send_text(1, message_dict['from_wxid'], reply)
            elif message_dict['from_wxid'] in list_name:
                if message_dict['from_wxid'] == "wxid_wbpgt35yeika22":
                    message_dict['from_wxid'] = 'filehelper'
                if 'msg' in message_dict.keys():
                    reply = reply_msg(message_dict['msg'])
                    wechat_manager.send_text(1, message_dict['from_wxid'], reply)
                elif 'raw_msg' in message_dict.keys():
                    wechat_manager.send_image(1,message_dict['from_wxid'],image_path)
                elif 'image' in message_dict.keys():
                    wechat_manager.send_image(1,message_dict['from_wxid'],image_path)
        except:
            print('error!')


@wechat.CLOSE_CALLBACK(in_class=False)
def on_close(client_id):
    print('[on_close] client_id: {0}'.format(client_id))


# 这里测试类回调, 函数回调与类回调可以混合使用
class LoginTipBot(wechat.CallbackHandler):

    @wechat.RECV_CALLBACK(in_class=True)
    def on_message(self, client_id, message_type, message_data):
        # 判断登录成功后,就向文件助手发条消息
        if message_type == MessageType.MT_USER_LOGIN:
            time.sleep(2)
            wechat_manager.send_text(client_id, 'filehelper', '
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/352820
推荐阅读
相关标签