借助AI大模型联动wxauto构建智能微信对话机器人

利用AI大模型与wxauto搭建智能微信对话机器人

文章目录

      • 🤔一、wxauto概览
    • 🎯二、wxauto的核心功能
    • 📦三、wxauto的安装与运用
      • 1. wxauto的安装
      • 2. wxauto的基础运用
      • 3. wxauto的消息对象
    • 💻四、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 in range(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
参数说明:

参数名 类型 默认值 说明
filepath str 或 list / 指定文件路径,单个文件用str,多个文件用list
who str None 要发送给谁,默认则发送给当前打开的页面
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的消息对象

这十分关键,结合大模型时会用到下述消息对象。
好友消息
在这里插入图片描述
支持属性

属性名 类型 说明
type str 消息类型,固定为friend
content str 消息内容
sender str 发送者
sender_remark str 发送者备注名
info list 原始消息信息,包含了消息的所有信息
control uiautomation.Control 该消息的uiautomation控件
id str 消息id
msgs = wx.GetAllMessage()
for msg in msgs:
    if msg.type == 'friend':  # 消息类型
        sender = msg.sender_remark  # 获取备注名
        print(f'{sender}:{msg.content}')

在这里插入图片描述

自己的消息
在这里插入图片描述
支持属性

属性名 类型 说明
type str 消息类型,固定为self
content str 消息内容
sender str 发送者
sender_remark str 发送者备注名
info list 原始消息信息,包含了消息的所有信息
control uiautomation.Control 该消息的uiautomation控件
id str 消息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


def get_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")


def main(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()
    while True:
        msgs = wx.GetAllMessage()
        if msgs:
            if msgs[-1].type == "friend":
                main(wx, msgs[-1].content)

在这里插入图片描述

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/13626.html

(0)
LomuLomu
上一篇 2025 年 9 月 18 日
下一篇 2025 年 9 月 18 日

相关推荐

  • PyCharm激活码免费领取|支持Mac和Windows系统激活!

    本教程适用于 IDEA、PyCharm、DataGrip、Goland 等,支持 Jetbrains 全家桶! 先放一张最新 PyCharm 成功激活到 2099 年的截图,爽到飞起! 下面我用图文方式,手把手带你把 PyCharm 激活到 2099 年。旧版本同样适用,Win / macOS / Linux 全平台通杀,成功率 100%! 嫌折腾?直接入手…

    PyCharm激活码 2025 年 9 月 18 日
    9900
  • IDEA激活码生成方式解析|附使用说明!

    声明:以下补丁与激活码均搜集自互联网,仅供个人学习研究,禁止商业用途。若条件允许,请支持正版 JetBrains! 先放一张“战绩图”:IDEA 2025.2.1 已顺利激活至 2099 年,稳得一批! 嫌折腾?官方正版全家桶低至 32 元/年,直接登录即用:https://panghu.hicxy.com/shop/?id=18 下面用图文方式,手把手带你…

    2025 年 10 月 2 日
    6900
  • CLion激活支持教育邮箱激活吗?

    申明:本教程 Clion 破解补丁、激活码均收集于网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除。若条件允许,希望大家购买正版 ! Clion是 JetBrains 推出的开发编辑器,功能强大,适用于 Windows、Mac 和 Linux 系统。本文将详细介绍如何通过破解补丁实现永久激活,解锁所有高级功能。 不管你是什么版本、什么操作系统。都给…

    2025 年 9 月 29 日
    9500
  • 最新idea激活码一键白嫖方法和2025破解教程

    免责声明:下文所涉及的 IntelliJ IDEA 破解补丁与激活码均搜集自互联网,仅供个人学习与研究之用,禁止任何商业用途。若条件允许,请支持正版!如有侵权,请联系笔者删除。 JetBrains 出品的 IntelliJ IDEA 是一款跨平台(Windows / macOS / Linux)全能 IDE。本文将以图文方式手把手演示如何利用破解补丁完成永久…

    IDEA破解教程 2025 年 11 月 9 日
    7100
  • 全新体验小白专用最新版goland激活码,最全破解教程

    免责声明:以下教程中提到的 GoLand 破解补丁与激活码均源自互联网公开分享,仅供个人学习研究,禁止任何商业用途。若条件允许,请支持正版,前往 JetBrains 官网购买授权。 GoLand 是 JetBrains 专为 Go 开发者打造的 IDE,跨平台支持 Windows、macOS 与 Linux。下文将以 2025.2 版本为例,手把手演示如何借…

    6天前
    2500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信