【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

AI Agent 架构:基础组成模块深度解析

AI Agent 架构:基础组成模块深度解析

AI Agent 架构:基础组成模块深度解析 📝 本章学习目标:本章是入门认知部分,帮助零基础读者建立对AI Agent的初步认知。通过本章学习,你将全面掌握"AI Agent 架构:基础组成模块深度解析"这一核心主题。 一、引言:为什么这个话题如此重要 在AI Agent快速发展的今天,AI Agent 架构:基础组成模块深度解析已经成为每个开发者和研究者必须了解的核心知识。无论你是技术背景还是非技术背景,理解这一概念都将帮助你更好地把握AI时代的机遇。 1.1 背景与意义 💡 核心认知:AI Agent正在从"对话工具"进化为"执行引擎",能够主动完成任务、调用工具、与外部世界交互。这一变革正在深刻改变我们的工作和生活方式。 从2023年AutoGPT的横空出世,到如今百花齐放的Agent生态,短短一年多时间,执行式AI已经从概念走向落地。根据最新统计,

字节开源 DeerFlow 2.0——登顶 GitHub Trending 1,让 AI 可做任何事情

字节开源 DeerFlow 2.0——登顶 GitHub Trending 1,让 AI 可做任何事情

打开 deerflow 的官网,瞬间被首页的这段文字震撼到了,do anything with deerflow。让 agent 做任何事情,这让我同时想到了 openclaw 刚上线时场景。 字节跳动将 DeerFlow 彻底重写,发布 2.0 版本,并在发布当天登上 GitHub Trending 第一名。这不是一次功能迭代,而是一次从"深度研究框架"到"Super Agent 运行时基础设施"的彻底蜕变。 背景:从 v1 到 v2,发生了什么? DeerFlow(Deep Exploration and Efficient Research Flow)

一文读懂OpenRouter:全球AI模型的“超级接口”,很多免费模型

一文读懂OpenRouter:全球AI模型的“超级接口”,很多免费模型

在人工智能技术百花齐放的今天,开发者面临着一个“幸福的烦恼”:市面上有GPT-4、Claude、Gemini、Kimi、GLM等众多顶尖大模型,但每个平台都需要单独注册、管理API密钥、对接不同接口文档,极大地增加了开发成本与技术门槛。 OpenRouter的出现,正是为了解决这一痛点。它不仅是一个AI模型聚合平台,更被业界视为全球AI模型竞争的“风向标”。 1. 什么是OpenRouter? OpenRouter是一个开源的AI模型聚合平台,它像一个“超级接口”或“路由器”,将全球超过300个主流AI模型(来自400多个提供商)整合在一起,为开发者提供统一的API接口。 其核心价值在于: * 统一API接口:开发者只需使用一套API密钥,即可调用包括OpenAI、Anthropic、Google、以及中国头部厂商(如MiniMax、月之暗面、智谱AI)在内的所有模型,无需为每个模型单独适配接口。 * 智能路由与成本优化:平台支持智能路由,可自动匹配性价比最高的模型,或根据开发者需求手动切换。其采用纯按量付费模式,无月费或最低消费,价格通常与官方持平甚至更低。 * 零

2026年医疗AI的可信革命全栈实现(下)

2026年医疗AI的可信革命全栈实现(下)

9.3 向量索引构建示例 文档进入向量库前,应先清洗、切分、打标签、嵌入,再写入索引。以下示例展示一种最简流程,真实环境中可替换为Milvus或Qdrant SDK。 代码清单 9-2 文档切分与索引写入 from dataclasses import dataclass from typing import Iterable import hashlib @dataclass class Chunk:     chunk_id: str     text: str     metadata: dict def chunk_document(doc_id: str, title: str, text: str, source_type: str) ->