引言:
现在的不管的是国内或者是国外聊天的AI都非常的多,回复也非常的智能。那么大家有没有想过我们是否可以将我们日常使用非常多的微信接入AI呢。下面我讲下如何将微信接入AI,让微信可以自动回复别人的消息
环境准备
- Windows微信电脑版
- 安装Python 3.X任意版本
- WxAuto:自动化操作Windows版微信的Python库
- 通义千问 (Qwen): 阿里云开发的人工智能语言模型
1.什么是 wxAuto?
wxauto是一个用于Windows版本微信客户端(非网页版)自动化的开源Python库, 可以通过这个库实现微信的各种自动化操作,使用下面指令可安装:
pip install wxauto
2.获取通义千问API密钥:
注册并登录阿里云账号,获取通义千问API的访问密钥,可以从阿里云获取,官网地址是:
代码实现自动回复
1. 获取微信窗口,获取指定人的最新消息
- 获取微信窗口:
# 导入
from wxauto import WeChat
# 获取微信窗口对象
wx = WeChat()
- 设置需要监听的微信好友列表,就是你需要自动回复的人的列表,获取用户发的消息:
listen_list = [
'张三',
'李四'
]
for i in listen_list:
wx.AddListenChat(who=i, savepic=True)
wait = 1 # 设置1秒查看一次是否有新消息
while True:
msgs = wx.GetListenMessage()
for chat in msgs:
who = chat.who # 获取聊天窗口名(人或群名)
one_msgs = msgs.get(chat)
time.sleep(wait)
2.接入通义千问AI,实现自动回复
- 编写一个函数,传入获取到的微信消息,调用AI获取消息回复
class WeChatBot(wxauto.WeChatBot):
def __init__(self):
super().__init__()
self.api_key = "YOUR_API_KEY"
self.base_url = "https://api.example.com/qwen/v1/chat/completions"
def on_message(self, message):
# 获取消息内容
content = message.content
# 调用通义千问API
headers = {
"Authorization": f"Bearer {self.api_key}",
"Content-Type": "application/json"
}
data = {
"model": "qwen",
"messages": [{"role": "user", "content": content}]
}
response = requests.post(self.base_url, headers=headers, json=data)
# 解析回复
reply_content = response.json()["choices"][0]["message"]["content"]
3.将两部分代码整合,实现自动回复
# 导入
from wxauto import WeChat
import requests
# 获取微信窗口对象
wx = WeChat()
class WeChatBot(wxauto.WeChatBot):
def __init__(self):
super().__init__()
self.api_key = "YOUR_API_KEY"
self.base_url = "https://api.example.com/qwen/v1/chat/completions"
def on_message(self, message):
# 获取消息内容
content = message.content
# 调用通义千问API
headers = {
"Authorization": f"Bearer {self.api_key}",
"Content-Type": "application/json"
}
data = {
"model": "qwen",
"messages": [{"role": "user", "content": content}]
}
response = requests.post(self.base_url, headers=headers, json=data)
# 解析回复
reply_content = response.json()["choices"][0]["message"]["content"]
listen_list = [
'张三',
'李四'
]
wx = WeChatBot()
for i in listen_list:
wx.AddListenChat(who=i, savepic=True)
wait = 1 # 设置1秒查看一次是否有新消息
while True:
msgs = wx.GetListenMessage()
for chat in msgs:
who = chat.who # 获取聊天窗口名(人或群名)
one_msgs = msgs.get(chat)
res = wx.on_message(one_masgs) #获取到AI的回复
chat.SendMsg(res) #自动回复消息
time.sleep(wait)