赞
踩
1.机器人无法取代真人聊天,本教程仅用于学习,使用机器人和别人聊天本身就是对朋友的不尊重,请谨慎使用
2.本教程为了让大家更清晰地理解,让大家更方便进行自定义开发,本教程分为三大模块,每一模块对相关的功能和操作都进行单独的说明,并且教程最后将功能模块进行了合并总结,呈现整体效果
3.本教程对相关的基础操作只做了简单的说明,如果对python没有任何经验的新手朋友,需要根据本文档的引导进行自行搜索,本文档只对本文档主题进行详细说明,如果有什么建议,可以在评论区留言,欢迎各路大神批评斧正!
4.本教程只用于个人学习,如有疏漏,尽情谅解
1.wxauto,实现微信窗口消息检测
2.openai,获取chatgpt返回数据
3.time,实现操作延时,并且获取时间数据
方法一:通过pip指令下载,前提是python已经加入环境变量,打开cmd输入以下指令
首先
//首先输入以下指令下载相关的库
pip install 库名
//比如说下载wxauto库
pip install wxauto
方法二:(通过pycharm演示)
然后在代码中使用相关的库方法就可以了,由于篇幅有限,在这里就不详细赘述,请自行搜索
1.首先你需要有一个openai账号,才可以进行以下操作
2.由于openai在亚太地区无法使用,并且属于国外网站,所以包括本章节的第一部分:申请openai的key,以及第二部分:python调用chatgpt的简单示例,都需要"魔法上网"才行
3.申请的免费key只有5美元的调用额度
1.进入官网:openai
2. 接下来我们点击 api 即可:
3. 查找自己账户的 key:
我们依次点击 Personal ,View API keys
4. 创建自己的 key:
该示例可以实现连续对话功能
import openai # 初始化 OpenAI API 客户端 openai.api_key = "你的openai key" # 定义一个函数生成 ChatGPT 的回复 def generate_response(prompt): # 调用 OpenAI API 生成回复 completions = openai.Completion.create( engine="text-davinci-003", # 指定使用的引擎名称 prompt=prompt, # API 请求的提示信息 max_tokens=1024, # API 响应的最大令牌数 n=1, # API 请求的完成数 stop=None, # API 响应的终止标志 temperature=0.5, # API 请求的温度参数 ) # 从 API 响应中取得回复 message = completions.choices[0].text return message # 初始化一个变量来存储对话上下文 context = "" # 开始一个死循环来接受用户输入 while True: # 提示用户输入信息 user_input = input("你:") # 如果用户输入结束命令,退出循环 if user_input in ["结束", "退出", "end", "exit"]: break # 把用户输入信息添加到对话上下文中 context = context + user_input + "\n" # 调用 generate_response() 函数生成回复 response = generate_response(context) # 显示 ChatGPT 的回复 print("ChatGPT:" + response) # 把 ChatGPT 的回复添加到对话上下文中 context = context + response + "\n"
# 首先,将wxauto模块导入到我们的代码块中。 from wxauto import * # 初始化我们已经登录的客户端对象WeChat。 wx_cli = WeChat() # 获取当前的客户端的联系人列表。 wx_cli.GetSessionList() # 输出当前所在的聊天窗口的信息。 messages = wx_cli.GetAllMessage for message in messages: print('%s : %s' % (messages[0], messages[1])) # 获取到当前的聊天信息,还可以获取更多,使用LoadMoreMessage函数就可以实现。 wx_cli.LoadMoreMessage() more_messages = wx_cli.GetAllMessage for more_message in more_messages: print('%s : %s' % (more_message[0], more_message[1]))
将openai库与wxauto库进行整合开发,实现了微信接入ChatGpt进行自动回复的功能
from wxauto import * import time import pyautogui import pyperclip import openai # 获取当前微信客户端 wx = WeChat() num = 0 # 获取会话列表 wx.GetSessionList() openai.api_key = "你申请的openai key" ############################### # 1、获取默认窗口聊天信息 ############################### # 定义一个函数生成 ChatGPT 的回复 def generate_response(prompt): # 调用 OpenAI API 生成回复 completions = openai.Completion.create( engine="text-davinci-003", # 指定使用的引擎名称 prompt=prompt, # API 请求的提示信息 max_tokens=1024, # API 响应的最大令牌数 n=1, # API 请求的完成数 stop=None, # API 响应的终止标志 temperature=0.5, # API 请求的温度参数 ) # 从 API 响应中取得回复 message = completions.choices[0].text return message # 初始化一个变量来存储对话上下文 context = "请用中文回复" # def data(newdata): # urldata = "https://api.ownth*ink.com/bot?appid=e94dc1b1833a7f57ceeeb593bddccd87&userid=1&spoken=" + newdata # sess = requests.get(urldata) # answer = sess.text # answer = json.loads(answer) # return answer["data"]["info"]["text"] # def get_default_window_messages(context): # if __name__ == '__main__': while True: if num < 10: # 默认是微信窗口当前选中的窗口 # 输出当前聊天窗口聊天消息 msgs = WeChat() if msgs.GetLastMessage[0] != "二流摄影爱好者": print("检测到新消息") # 提示用户输入信息 # 如果用户输入结束命令,退出循环 # if user_input in ["结束", "退出", "end", "exit"]: # break # 把用户输入信息添加到对话上下文中 context = context + msgs.GetLastMessage[1] + "\n" # 调用 generate_response() 函数生成回复 response = generate_response(context) # 显示 ChatGPT 的回复 print("ChatGPT:" + response) # 把 ChatGPT 的回复添加到对话上下文中 context = context + response + "\n" print(msgs.GetLastMessage[0], msgs.GetLastMessage[1]) # pyperclip.copy(response) # pyautogui.hotkey('ctrl', 'v') # time.sleep(10) # 延迟时间,模拟真人回复 wx.SendMsg(response) # pyautogui.hotkey('enter') num += 1 else: print("正在检测中") else: num = 0 context = ""
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。