赞
踩
最近无聊做了个自动回复脚本
- import openai
-
- def chatgpt(question):
- openai.api_key = "在这里填入你的API-key"
-
-
- response = openai.Completion.create(
- model="gpt-3.5-turbo-instruct",
- prompt=question,
- temperature=1, #模型回答的自由程度
- max_tokens=2000, #一次能输出的最大字数,但并不一一对应
- top_p=1,
- frequency_penalty=0,
- presence_penalty=0
- )
- #提取回答
- answer = response.choices[0].text
-
- return answer
这里先定义了一个chatgpt()函数用于调用官方api接口。这里使用的是3.5的模型。API-key可以在官网上获取。每注册一个账号官方会赠送5美元的api接口调度费(大概可以用几千次吧),api密钥在账号里可以找。
- from uiautomation import WindowControl
-
-
- def weixin_reply():
- #绑定微信主窗口
- wx = WindowControl(Name='微信',) # 窗口的名称被设置为'微信',表示该对象将尝试找到一个标题为'微信'的窗口
- print("已绑定成功")
-
-
-
- wx.SwitchToThisWindow() #使窗口 wx 切换到前台,显示在其他窗口之上
-
- hw = wx.ListControl(Name='会话') # 该对象将尝试找到一个具有名称'会话'的列表控件,以供操作
- # 什么是列表控件:列表控件(List Control)是一种常见的图形用户界面(GUI)元素,通常用于显示和管理一系列项目、数据、或选项。列表控件可以在各种桌面应用程序和操作系统中找到,用于展示信息、提供选择、或支持导航等功能。
-
- # df = pd.read_csv('回复数据.csv', encoding='gb18030')
- while True:
- # TextControl 是 uiautomation 库中的一个类,用于表示文本控件,它可以用于获取或修改文本内容
- we = hw.TextControl(searchDepth=4) #只读取左侧聊天会话框的前4个
-
- # 死循环维持,没有超时报错
- while not we.Exists(0):
- pass
-
- if we.Name: # 存在未读消息(Name表示消息的内容,不为None就继续运行)
- we.Click(simulateMove=False) # 点击未读消息
- print("点击成功")
- last_msg = wx.ListControl(Name='消息').GetChildren()[-1].Name
- # 创建了一个新的 ListControl 对象,用于查找名为'消息'的列表控件。
- # .GetChildren() 方法获取'消息'列表控件的子控件,即消息列表中的各个消息项
- # [-1] 表示选择最后一个消息项,然后通过 .Name 获取该消息项的名称,即最后一条消息
- print('last_msg:',last_msg)
-
- last_msg="请用中文回答:"+last_msg
- print("last_msg",last_msg)
- msg =chatgpt(last_msg)
-
- wx.SendKeys(msg, waitTime=0)
- print('成功输入')
- wx.SendKeys('{Enter}', waitTime=0)
- print('成功发送')
-
- if __name__=="__main__":
- weixin_reply()
接下来是用微软开发的uiautomation库进行模拟用户点击图形界面的操作。
整个脚本分成两个板块。一个函数用来调用GPT的API接口。另一个模块用来搜寻微信里联系人的未读取消息。然后把消息发给GPT处理。再把反馈回来的消息自动输入。 代码里的每一步都有print检测是否成功运行。
用的时候记得要一点魔法的哈。
1.0版本还不是很稳定,测试问题反馈如下:
1.在读取联系人未读消息方面存在bug,常常会读取非指定的联系人对话
2.出现多次读取同一条未读消息的bug,可能是GPT响应时间过久,频繁接受消息导致反应混乱
3.自己发的消息有时也会被当成未读消息
4.无法实现连续相关的回复
5.存在闪退概率
以上问题会在2.0版本里得到修复
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。