首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

基于wxauto的AI微信聊天助手

后端 3.9KB 16 需要积分: 1
立即下载

资源介绍:

基于wxauto的AI微信聊天助手
import time from wxauto import WeChat # wxauto Version: 3.9.11.17.4 from AIUtil import ZhipuAIUtil from Logger import LoggerClass from datetime import datetime """ 自动监听并用AI分析两人的对话 """ class WeChatWindow: def __init__(self, n=1, lens=5, api_key="55f67457af44ddaf5f53ab6dcd50b89d.KRnAjz8uOMaiJPbL", question="", wait_for_oppo=1): self.lens = lens self.wx = WeChat() self.currentWindow = [] self.msg5 = [] self.loggerClass = LoggerClass(datetime.now().date().strftime('%Y-%m-%d') + ".log") self.aiUtil = ZhipuAIUtil(api_key=api_key) self.wait_for_oppo = wait_for_oppo self.question = question self.cycle = n self.update_current_window() # 启动时获取当前聊天记录 def update_current_window(self): # 获取当前聊天窗口消息 msgs = self.wx.GetAllMessage(savevoice=True) self.currentWindow = [] for msg in msgs: if msg.type == 'friend' or msg.type == 'self': self.currentWindow.append(msg.sender + ": " + msg.content) self.msg5 = self.currentWindow[-self.lens:] self.log(".\n".join(self.currentWindow)) # def chat_with(self, who): #默认监听当前窗口,不指定对象 # self.wx.ChatWith(who) # self.update_current_window() def print_last_messages(self): print("=" * 100) print("捕捉到当前5条消息: ") for i in self.msg5: print(i.encode('gbk', 'ignore').decode('gbk')) print() def print_AI_messages(self): strs = ' '.join(self.msg5) ans = self.aiUtil.get_answer(strs + self.question) print("智谱AI:") print(ans.encode('gbk', 'ignore').decode('gbk')) def listen_for_new_messages(self): i = 0 lastMsg5 = self.msg5 while True: # 获取下一条新消息 msgs = self.wx.GetNextNewMessage(savevoice=True) for msgList in msgs.values(): for item in msgList: # if item[0] != 'SYS': if item[0] != 'SYS' and item[1] != '[动画表情]' and item[1] != '[图片]': # 不计入表情包和图片 self.currentWindow.append(item[0] + ": " + item[1]) self.msg5 = self.currentWindow[-self.lens:] if self.msg5 != lastMsg5: self.log(self.currentWindow[-1]) lastMsg5 = self.msg5 self.print_last_messages() i += 1 if i % self.cycle == 0: # 每隔cycle个消息AI分析一次 if self.wait_for_oppo == 1: if not self.currentWindow[-1].startswith('Self'): # 只要最后一条消息不是自己的(是别人的),就调用AI回答 self.print_AI_messages() else: self.print_AI_messages() time.sleep(0.5) def log(self, msg): self.loggerClass.log_message(msg.encode('gbk', 'ignore').decode('gbk')) if __name__ == '__main__': chat_window = WeChatWindow(n=1, # 每发1次监听一次 lens=5, # 监听最近5个对话 api_key="55f67457af44ddaf5f53ab6dcd50b89d.KRnAjz8uOMaiJPbL", # 连接国内大模型智谱清言密钥 question="以上是一段对话,请你站在Self的角度并且模仿Self的语气(Self是年轻人),替他回复,给出一个参考回答就可以了,请你反驳对面", wait_for_oppo=1) chat_window.print_last_messages() chat_window.print_AI_messages() chat_window.listen_for_new_messages()

资源文件列表:

WeixinChatRobot.zip 大约有4个文件
  1. AIUtil.py 1.38KB
  2. Logger.py 1.69KB
  3. Read.md 563B
  4. WeChatListener.py 3.78KB
0评论
提交 加载更多评论
其他资源 高一学生eeid账号.zip
高一学生eeid账号.zip
CNGBdb上传数据不完全指北示例表格
CNGBdb上传数据不完全指北示例表格
Java FX多窗口编程
核心点:在MainClass初始化窗口时,将MainClass的引用传给相应窗口的控制器。之后在每个窗口的控制器中通过MainClass的引用完成从窗口的打开以及主从窗口的通信。
vue前端项目框架vue前端项目框架vue前端项目框架
vue前端项目框架
unity游戏资源提取工具AssetStudio多语言版
AssetStudio(简称AS)是一款Github上的开源软件,可以解包未加密的资源数据 具体来讲,用于2d手游提取立绘是它最常用的功能.。 github开源地址:https://github.com/zhangjiequan/AssetStudio 基于https://github.com/SiMaLaoShi/AssetStudio_Tuanjie修改的汉化版,添加了多语言支持
stm32f103基于LL库实现CT1712温度传感器的控制
stm32f103基于LL库实现CT1712温度传感器的控制
Java FX 数据绑定demo
将变化的数据统一抽象为IntegerProperty与圆和进度条进行数据绑定,然后add 和sub只管更改IntergerProperty(),最后实现通过addButon和subButton来控制圆和进度条
STM32F407移植FreeRTOS 202212.01版
本文使用的是优信电子的STM32F407VGT6开发板,开发环境KeilV5.38。使用优信电子提供的库函数例程-例3 串口实验作为模板,包含串口1初始化和串口发送、接收功能,以便于验证移植后功能。