Python30行代码实现微信聊天机器人(基于WXPY+百度理解与交互技术UNIT)
引言:
前几天看到新闻说一个程序员开发了微信聊天机器人陪女朋友聊天,感觉有兴趣,之前听说过WXPY,由于本人Python真的很菜,一直没有动手,受新闻启发开发了一个简单的基于Python微信机器人。有接口开发基础的可以直接粘我的代码,首先要注册一个百度云账号(不是那个百度云,是百度云计算)。如果没有相关知识,我把步骤放在下面。
先上最终版的代码(百度对话系统版):
# encoding:utf-8
import requests
import json
import random
from wxpy import *def getBaiDuAK():# client_id 为官网获取的AK, client_secret 为官网获取的SKhost = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=这是你百度AK&client_secret=这是你的SK'r = requests.get(host)return r.json()['access_token']def baiduApi(text):global access_tokenurl = 'https://aip.baidubce.com/rpc/2.0/unit/bot/chat?access_token=' + access_tokenquery = text#下面的log_id在真实应用中要自己生成,可是递增的数字log_id ='7758521'#下面的user_id在真实应用中要是自己业务中的真实用户id、设备号、ip地址等,方便在日志分析中分析定位问题user_id='222333'#下面要替换成自己的bot_id,是你的技能ID!!bot_id='60795'post_data = '{\"bot_session\":\"\",\"log_id\":\"'+log_id+'\",\"request\":{\"bernard_level\":1,\"client_session\":\"{\\\"client_results\\\":\\\"\\\", \\\"candidate_options\\\":[]}\",\"query\":\"' + query + '\",\"query_info\":{\"asr_candidates\":[],\"source\":\"KEYBOARD\",\"type\":\"TEXT\"},\"updates\":\"\",\"user_id\":\"'+user_id+'\"},\"bot_id\":'+bot_id+',\"version\":\"2.0\"}'print (json.loads(post_data))headers = {'Content-Type':'application/json'}r = requests.post(url, data=post_data.encode('utf-8'),headers=headers)print ()return r.json()['result']['response']['action_list'][random.randint(0,2)]['say']global access_token #在使用前初次声明
access_token =getBaiDuAK()
bot = Bot(cache_path=True)#登录缓存
#bot.file_helper.send('[奸笑][奸笑]')
print('欣欣AI已经启动')@bot.register()
def forward_message(msg):print('[接收]'+str(msg))if (msg.type!='Text'):ret = '[奸笑][奸笑]'else:ret = baiduApi(msg.text)print('[发送]'+str(ret))return retembed()
思路:
要开发微信聊天机器人bot我们需要能够获取到微信好友的消息并且自动回复,这些能够通过WXPY轻松实现。但是如何做到处理好友发来的消息确实是个头疼的问题,需要有自己的语料库。WXPY中原生支持了图灵机器人的调用方式,真的很简单,只要注册后获取Key就可以通过预置的函数调用接口。一会我会把这个方式的源码也附在下面,因为真的很简单,而且网上博客基本上都是这么写的,但是这种方法真的好坑,因为图灵机器人收费了一天只能免费用4条,想继续用就要手持身份证拍照上传(裸贷噢?)。于是我就开始找大厂的语料库(其实大部分都收费),终于找到了百度的Unit对话系统暂时免费。
WXPy开发:
本人使用了3.7.3的Python版本,首先引入WXPy包 wxpy官网
命令:pip install wxpy
该包的原理就是模拟微信网页版登陆,爬取对应的信息进行处理。各种基本操作就不赘述了,官网写的很详细了,注意的是一定要用微信小号开发,否则当同时处理过多消息时判定为机器人,可能会导致微信无法登陆微信网页版(新注册的微信号不能使用微信网页版)。图灵机器人真的很坑,只有前几条好使,不充钱或者认证,剩下的就会说“换个话题吧”。
图灵机器人版代码如下:
from wxpy import *
bot = Bot(cache_path=True)
# 搜索名称含有 "启梦项目组" 的群组
my_friend = bot.groups().search('启梦项目组')[0]
tuling = Tuling('你的图灵AK')
#my_friend = bot.friends()
# 发送文本给好友
my_friend.send('Hello WeChat!')
# 打印来自其他好友、群聊和公众号的消息
@bot.register()
def print_others(msg):print(msg)# 回复 my_friend 的消息 (优先匹配后注册的函数!)
@bot.register(my_friend)
def tuling_reply(msg):tuling.do_reply(msg) embed()
百度Unit对话系统:
链接:理解与交互技术UNIT
技能对话API文档:http://ai.baidu.com/docs#/UNIT-v2-API/top
首先进入链接:http://ai.baidu.com/unit/home,点击进入控制台,选择我的技能,添加一个闲聊技能(这个Unit系统其实不是这么用的,这个闲聊功能只时很小的一个模块,他主要时用来训练自己的语料库模型和制作对话机器人的)。将技能Id填入开篇代码的Bot_Id中
在百度云控制台中找到,理解与交互技术UNIT,开通后获取AK和SK,将AK和SK填入开篇的代码中,这样一个聊天机器人就大功告成了。
Python30行代码实现微信聊天机器人(基于WXPY+百度理解与交互技术UNIT)相关推荐
- 手把手教你用7行代码实现微信聊天机器人 -- Python wxpy
环境要求: Windows / Linux / Mac OS Python 3.4-3.6,以及 2.7 版本 wxpy安装 ## 使用国内源安装速度快 pip install -U wxpy -i ...
- python微信机器人_30行代码实现微信自动回复机器人
30行代码实现微信自动回复机器人 一.写在前面 今天下午又学到了itchat另一种有趣的玩法---微信自动回复机器人. 程序很简单仅仅三十行代码左右,实现了机器人自动与你的微信好友聊天,下面是我的机器 ...
- 10行代码实现微信群消息同步(wxpy)
目前,微信群成员的人数上限是500人.而现实中,有很多社群.校友群.同事群的成员数量已超过500人,只能分拆在不同的微信群里面.在聊天过程中,不同微信群的成员无法相互沟通. 去年,宏论工作室介绍了基于 ...
- 如何用 30 行代码实现微信自动回复机器人?
作者 | Ahab 责编 | 胡巍巍 写在前面 很多朋友对itchat非常感兴趣,近日又学到了itchat另一种有趣的玩法--微信自动回复机器人. 程序很简单仅仅三十行代码左右,实现了机器人自动与你的 ...
- python微信聊天机器人源码_8.【代码】微信聊天机器人(API的应用) - Python网络爬虫实战...
本文档仅作为视频学习过程中的参考 不可用于非法途径 ''' 编程目的:编写微信机器人 时间:2018-2-25 作者:刘宇 V:1.0 ''' import urllib.request import ...
- 【Python】uiautomation+openai构建基于chatGPT的微信聊天机器人
目录 前言 一.uiautomation是什么? 二.openai怎么使用? 三.使用步骤 1.前期准备 2.引入库 3.主程序 4.演示效果 总结 前言 人工ai对话技术最近火热,相信很多人会想到做 ...
- 基于ChatGPT实现微信聊天机器人
ChatGPT近期以强大的对话和信息整合能力风靡全网,可以写代码.改论文.讲故事,几乎无所不能,这让人不禁有个大胆的想法,能否用他的对话模型把我们的微信打造成一个智能机器人,可以在与好友对话中给出意想 ...
- 搭建属于自己的基于ChatGPT的微信聊天机器人(方法)
文章目录 1. GitHub开源项目 2. 前期准备 (1) 获取openAI API key 3. 准备部署环境 (1) 配置代理 (2) 配置python环境 4. 部署 (1) 修改配置文件 ( ...
- 基于图灵api实现微信聊天机器人
基于图灵api实现微信聊天机器人 尝试了一下最近很火的聊天机器人,记录下实现过程. 微信公众平台提供的接口很简单,先看看消息交互流程: 说的通俗一些,用户使用微信发送消息 -> 微信将数据发送给 ...
最新文章
- Javascript基础与面向对象基础~第四讲 Javascript中的类对象
- Curator: ZooKeeper的使用配方
- 机器学习-数据科学库(第一天)
- gnome mysql client_解决MySQLWorkbenchgnome-keyring-daemon错误的方法分享
- Build OpenVSwitch and OVN
- 【python记录】使用ip摄像头 vlc打开rtsp服务 python远程调用摄像头记录过程
- AT4353-[ARC101D]Robots and Exits【LIS】
- Angular模板高级使用
- java找到int需要char_Java2课后择题.doc
- python/selenium/chrome
- (⊙o⊙) 这个头条也坐不住了?
- gta4 l3环境优化补丁_【安全刻不容缓】快给你们的爱7打打补丁吧 俄罗斯大佬的持续更新补丁包来了...
- Empire C:Basic 4
- Spark2.2出现异常:ERROR SparkUI: Failed to bind SparkUI
- hadoop学习资源与路线图
- 基于python的电影推荐系统
- 基于深度学习的车型识别APP
- 数据包络分析-两阶段网络DEA(two stage network)
- 易支付PHP源码挖鱼网,最新易支付源码完整版 已pj全解密
- SQOOP学习笔记-报错怎么办?打就完了!