【AI大模型】:结合wxauto实现智能微信聊天机器人

【AI大模型】:结合wxauto实现智能微信聊天机器人

文章目录

在这里插入图片描述

🧐一、wxauto简介

wxauto 是一个基于 UIAutomation 的开源 Python 微信自动化库。Python 初学者也可以简单上手自动化微信操作。目前已实现很多日常的微信操作的自动化,如自动发送消息、自动添加好友、自动回复、自动获取聊天记录、图片、文件等功能,后续还会根据反馈更新更多功能。

wxauto的github链接https://github.com/cluic/wxauto【点击跳转】

🎯二、wxauto的主要功能

  • 消息发送:支持发送文字、图片、文件、@群好友、引用消息等功能
  • 聊天记录:可获取好友的聊天记录内容
  • 监听消息:实时获取指定监听好友(群)的新消息
  • 其他定制功能:根据需求定制自动化流程,满足各种特殊需求。

📦三、wxauto的安装与使用

1. wxauto的安装

安装 wxauto 非常简单,和其他第三方库一样在命令行输入以下命令即可:

pip install wxauto
pip install wxauto -i https://pypi.tuna.tsinghua.edu.cn/simple
换源安装

注意:目前wxauto只支持 Windows 10|11|Server2016+ 系统,苹果等电脑的系统并不支持,Python环境要求 Python:3.7+(不支持3.7.6和3.8.1)注意!!!Python版本不支持3.7.6和3.8.1微信版本默认分支为微信3.9.11.17版本,使用前请先检查自己电脑微信是否为该版本,版本不同可能由于UI问题导致某些功能无法正常调用。

注意:如果你的微信版本可以用的话,也不需要过多纠结这个。

2. wxauto的简单使用

注意:在运行代码前一定要确保PC微信客户端已经登陆。
【示例1】:基于wxauto发送消息
使用场景:可以重复发送一样的内容达到消息轰炸

from wxauto import* wx = WeChat() content ='hello world' who ='文件传输助手'for i inrange(15): wx.SendMsg(msg=content, who=who)
在这里插入图片描述

附带@好友的消息

from wxauto import* wx = WeChat() content ='hello world' who ='文件传输助手' name ='文件传输助手' wx.SendMsg(msg=content, who=who, at=name)# 要 @ 的人
在这里插入图片描述

发送图片/视频/文件消息SendFiles
参数说明:

参数名类型默认值说明
filepathstr 或 list/指定文件路径,单个文件str,多个文件list
whostrNone要发送给谁,默认则发送给当前打开的页面
from wxauto import* wx = WeChat() content ='hello world' who ='文件传输助手'file=[r'D:\软件\图片\荒.png',r'D:\C语言学习资料\高质量的C-C++编程.pdf'] wx.SendFiles(filepath=file, who=who)
在这里插入图片描述

聊天窗口消息获取

默认为当前聊天窗口

from wxauto import* wx = WeChat()# 获取当前聊天窗口消息 msgs = wx.GetAllMessage()# 输出消息内容for msg in msgs:if msg.type=='sys':print(f'【系统消息】{msg.content}')elif msg.type=='friend': sender = msg.sender_remark # 获取备注名print(f'{sender.rjust(20)}:{msg.content}')elif msg.type=='self':print(f'{msg.sender.ljust(20)}:{msg.content}')elif msg.type=='time':print(f'\n【时间消息】{msg.time}')elif msg.type=='recall':print(f'【撤回消息】{msg.content}')
在这里插入图片描述


另外LoadMoreMessage方法用于加载更多历史消息,配合GetAllMessage方法使用,实现获取更多历史消息。
注意:LoadMoreMessage方法加载更多历史消息时,需要保证当前聊天窗口有历史消息,否则没有效果,即触发一次“查看更多消息”。

from wxauto import WeChat wx = WeChat()# 加载更多历史消息 wx.LoadMoreMessage()# 获取当前聊天窗口消息 msgs = wx.GetAllMessage()# 消息处理逻辑代码。。。

微信添加好友
AddNewFriend方法用于发起好友申请。
注意:微信有一定的限制,如果频繁添加好友,可能会被限制添加好友的权限,请谨慎使用,切勿滥用!!!

from wxauto import* wx = WeChat() keywords ='s15576806087'# 对方的微信号、手机号、QQ号 addmsg ='你好,我是xxxx'# 添加好友的消息 remark ='备注名字'# 备注名,没有则不用设置 tags =['朋友','同事']# 标签列表# 发起好友申请 wx.AddNewFriend(keywords, addmsg=addmsg, remark=remark, tags=tags)
在这里插入图片描述

获取好友信息

from wxauto import WeChat wx = WeChat() friend_infos = wx.GetAllFriends()# 获取好友信息print(friend_infos)
3. wxauto的消息对象

这个很重要,下面结合大模型时会用到以下的消息对象。
好友消息

在这里插入图片描述


支持属性

属性名类型说明
typestr消息类型,固定为friend
contentstr消息内容
senderstr发送者
sender_remarkstr发送者备注名
infolist原始消息信息,包含了消息的所有信息
controluiautomation.Control该消息的uiautomation控件
idstr消息id
msgs = wx.GetAllMessage()for msg in msgs:if msg.type=='friend':# 消息类型 sender = msg.sender_remark # 获取备注名print(f'{sender}:{msg.content}')
在这里插入图片描述

自己的消息

在这里插入图片描述


支持属性

属性名类型说明
typestr消息类型,固定为self
contentstr消息内容
senderstr发送者
sender_remarkstr发送者备注名
infolist原始消息信息,包含了消息的所有信息
controluiautomation.Control该消息的uiautomation控件
idstr消息id
msgs = wx.GetAllMessage()for msg in msgs:if msg.type=='self':# 消息类型print(f'{msg.sender}:{msg.content}')
在这里插入图片描述

💻四、wxauto结合大模型实现简单的聊天机器人

这里选用的是百度的千帆大模型,首先登陆进去之后点击模型广场,随便选一个免费的就行。

在这里插入图片描述


选择好模型之后,点进去,点击那个开通付费【免费的,不要钱,放心点击】,提交订单就开通成功啦。

在这里插入图片描述
在这里插入图片描述


返回到主页,点击应用接入,记住这里的API KeySecret Key,点击创建应用。

在这里插入图片描述


填写好应用名称和应用描述(随便填一下就好了),点击确定。

在这里插入图片描述


返回主页,点击模型广场,点击你之前选择的模型,点击API文档。

在这里插入图片描述


往下翻找到对应的请求示例的Python代码,复制那段代码。

在这里插入图片描述


复制好代码后,将你对应的API KeySecret Key给添加上去。

在这里插入图片描述


运行一下代码可以看到,result就是大模型根据我们的问题给出的结果,现在我们只需要将content改成微信中好友发送过来的消息作为问题给大模型,然后将大模型给出的结果中的result提取出来作为内容发送给好友,这样,一个简单的微信聊天机器人就完成了。

在这里插入图片描述

🎧五、完整代码

import requests import json from wxauto import WeChat defget_access_token():""" 使用 API Key,Secret Key 获取access_token,替换下列示例中的应用API Key、应用Secret Key """ url ="https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[应用API Key]&client_secret=[应用Secret Key]" payload = json.dumps("") headers ={'Content-Type':'application/json','Accept':'application/json'} response = requests.request("POST", url, headers=headers, data=payload)return response.json().get("access_token")defmain(wx1, msg1): url ="https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ernie-speed-128k?access_token="+ get_access_token() payload = json.dumps({"messages":[{"role":"user","content": msg1 }]}) headers ={'Content-Type':'application/json'} response = requests.request("POST", url, headers=headers, data=payload) json_result = json.loads(response.text)print(json_result)# print(response.text) wx.SendMsg(msg=json_result['result']+"--此内容为AI生成", who="你要发送的人")if __name__ =='__main__': wx = WeChat()whileTrue: msgs = wx.GetAllMessage()if msgs:if msgs[-1].type=="friend": main(wx, msgs[-1].content)
在这里插入图片描述

Read more

腾讯QQ官方炸场!OpenClaw一键建5个机器人,个人号直接上手|实战教程

腾讯QQ官方炸场!OpenClaw一键建5个机器人,个人号直接上手|实战教程

文章目录 * 前言 * 一、OpenClaw是个啥?你的"数字长工" * 二、为什么说这次QQ"炸场"了? * 三、实操环节:从0到1,手把手养出你的AI小弟 * 3.1 在QQ开放平台"造人" * 3.2 给机器人找个"肉身"(部署OpenClaw) * 方案A:云服务器一键部署(推荐新手) * 方案B:宝塔面板可视化安装(适合有服务器的站长) * 方案C:本地Docker部署(适合极客) * 3.3 关键的"认亲"三步走 * 3.4 加好友,

By Ne0inhk

Jetson Orin NX + Fast-LIO2自主无人机完整部署方案

Jetson Orin NX + Fast-LIO2自主无人机完整部署方案 🚀 本文完整介绍如何在Jetson Orin NX上构建一套完整的自主飞行四旋翼无人机系统,包括实时SLAM定位、自主路径规划和动态避障。 预计阅读时间: 15分钟 📑 文章目录 * 一、系统概述 * 二、硬件配置 * 三、软件架构 * 四、环境配置 * 五、关键模块部署 * 六、系统集成 * 七、常见问题 * 八、参考资源 一、系统概述 1.1 项目背景 在自主无人机领域,实现高精度定位和自主飞行一直是重要研究课题。本项目结合最新的SLAM算法(Fast-LIO2)、高效的路径规划和实时避障,在Jetson Orin NX这个边缘计算平台上实现了完整的自主飞行系统。 1.2 核心特性 ✨ 实时SLAM定位 - Fast-LIO2算法,100Hz频率,<2%

By Ne0inhk

OpenArm开源机械臂:颠覆传统协作机器人研发范式的低成本解决方案

OpenArm开源机械臂:颠覆传统协作机器人研发范式的低成本解决方案 【免费下载链接】openarmOpenArm v0.1 项目地址: https://gitcode.com/GitHub_Trending/op/openarm 开源机械臂技术正彻底改变协作机器人领域的研发模式。OpenArm作为一款7自由度双机械臂平台,不仅提供完整的硬件设计方案,更构建了从底层控制到上层应用的全栈软件生态,为科研机构和企业打造了真正意义上的低成本研发平台。 痛点解析:传统机械臂研发的3大致命瓶颈 传统工业机械臂系统长期被高昂成本和封闭生态所困扰,成为限制机器人技术创新的主要障碍。 1. 成本壁垒难以突破 商业协作机器人单臂价格普遍超过10万元,完整双臂系统成本更是高达30万元以上,让多数研究团队望而却步。 2. 技术封闭扼杀创新 主流厂商通过私有协议和专利壁垒严格限制底层访问,研究者无法修改控制算法或扩展硬件功能,只能在预设框架内"戴着镣铐跳舞"。 3. 部署流程复杂冗长 传统系统平均需要3-4周的安装调试周期,涉及复杂的环境配置和专业培训,极大降低了研发迭代效率。 核心突破:

By Ne0inhk
基于 LangChain 实现数据库问答机器人

基于 LangChain 实现数据库问答机器人

基于 LangChain 实现数据库问答机器人 * 一、简介 * 二、应用场景 * 三、实战案例 * 1、需求说明 * 2、实现思路 * 3、对应源码 一、简介 在 Retrieval 或者 ReACT 的一些场景中,常常需要数据库与人工智能结合。而 LangChain 本身就封装了许多相关的内容,在其官方文档-SQL 能力中,也有非常好的示例。 二、应用场景 在未出现人工智能,如果想要完成数据查询与数据分析的工作,则需要相关人员有相应的数据库的功底,而在 LangChain 结合大语言模型的过程中,应对这些问题则相当轻松——写清晰的提示词即可。 * 生成将基于自然语言问题运行的查询。 在传统的工作流程中,如果想要在数据库中搜索一些信息,那么就必须要掌握相应的数据库技术,比如 SQL 语句查询等,但是其本身有很高的学习成本。如果能用自然语言代替这个过程,则任何人都无需学习 SQL

By Ne0inhk