引言:

前几天看到新闻说一个程序员开发了微信聊天机器人陪女朋友聊天,感觉有兴趣,之前听说过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)相关推荐

  1. 手把手教你用7行代码实现微信聊天机器人 -- Python wxpy

    环境要求: Windows / Linux / Mac OS Python 3.4-3.6,以及 2.7 版本 wxpy安装 ## 使用国内源安装速度快 pip install -U wxpy -i ...

  2. python微信机器人_30行代码实现微信自动回复机器人

    30行代码实现微信自动回复机器人 一.写在前面 今天下午又学到了itchat另一种有趣的玩法---微信自动回复机器人. 程序很简单仅仅三十行代码左右,实现了机器人自动与你的微信好友聊天,下面是我的机器 ...

  3. 10行代码实现微信群消息同步(wxpy)

    目前,微信群成员的人数上限是500人.而现实中,有很多社群.校友群.同事群的成员数量已超过500人,只能分拆在不同的微信群里面.在聊天过程中,不同微信群的成员无法相互沟通. 去年,宏论工作室介绍了基于 ...

  4. 如何用 30 行代码实现微信自动回复机器人?

    作者 | Ahab 责编 | 胡巍巍 写在前面 很多朋友对itchat非常感兴趣,近日又学到了itchat另一种有趣的玩法--微信自动回复机器人. 程序很简单仅仅三十行代码左右,实现了机器人自动与你的 ...

  5. python微信聊天机器人源码_8.【代码】微信聊天机器人(API的应用) - Python网络爬虫实战...

    本文档仅作为视频学习过程中的参考 不可用于非法途径 ''' 编程目的:编写微信机器人 时间:2018-2-25 作者:刘宇 V:1.0 ''' import urllib.request import ...

  6. 【Python】uiautomation+openai构建基于chatGPT的微信聊天机器人

    目录 前言 一.uiautomation是什么? 二.openai怎么使用? 三.使用步骤 1.前期准备 2.引入库 3.主程序 4.演示效果 总结 前言 人工ai对话技术最近火热,相信很多人会想到做 ...

  7. 基于ChatGPT实现微信聊天机器人

    ChatGPT近期以强大的对话和信息整合能力风靡全网,可以写代码.改论文.讲故事,几乎无所不能,这让人不禁有个大胆的想法,能否用他的对话模型把我们的微信打造成一个智能机器人,可以在与好友对话中给出意想 ...

  8. 搭建属于自己的基于ChatGPT的微信聊天机器人(方法)

    文章目录 1. GitHub开源项目 2. 前期准备 (1) 获取openAI API key 3. 准备部署环境 (1) 配置代理 (2) 配置python环境 4. 部署 (1) 修改配置文件 ( ...

  9. 基于图灵api实现微信聊天机器人

    基于图灵api实现微信聊天机器人 尝试了一下最近很火的聊天机器人,记录下实现过程. 微信公众平台提供的接口很简单,先看看消息交互流程: 说的通俗一些,用户使用微信发送消息 -> 微信将数据发送给 ...

最新文章

  1. Javascript基础与面向对象基础~第四讲 Javascript中的类对象
  2. Curator: ZooKeeper的使用配方
  3. 机器学习-数据科学库(第一天)
  4. gnome mysql client_解决MySQLWorkbenchgnome-keyring-daemon错误的方法分享
  5. Build OpenVSwitch and OVN
  6. 【python记录】使用ip摄像头 vlc打开rtsp服务 python远程调用摄像头记录过程
  7. AT4353-[ARC101D]Robots and Exits【LIS】
  8. Angular模板高级使用
  9. java找到int需要char_Java2课后择题.doc
  10. python/selenium/chrome
  11. (⊙o⊙) 这个头条也坐不住了?
  12. gta4 l3环境优化补丁_【安全刻不容缓】快给你们的爱7打打补丁吧 俄罗斯大佬的持续更新补丁包来了...
  13. Empire C:Basic 4
  14. Spark2.2出现异常:ERROR SparkUI: Failed to bind SparkUI
  15. hadoop学习资源与路线图
  16. 基于python的电影推荐系统
  17. 基于深度学习的车型识别APP
  18. 数据包络分析-两阶段网络DEA(two stage network)
  19. 易支付PHP源码挖鱼网,最新易支付源码完整版 已pj全解密
  20. SQOOP学习笔记-报错怎么办?打就完了!

热门文章

  1. android 充电,在Android中加入充电指示
  2. ansible安装mysql 8.0.0.20
  3. MOVE J and MOVE L
  4. 蒋炜航:敏捷开发的实战经验
  5. 【P1】Jmeter 准备工作
  6. 【开发工具】AR原型的浏览器扩展
  7. python爬虫之XPATH(爬取糗事百科、扇贝单词、网易云)
  8. 项目部署到阿里云无法发送邮件问题
  9. 多款漂亮的Flash时钟
  10. latex数学公式编辑——代码大全(图片)