基于python实现微信接入ChatGpt进行自动回复

  • 教程说明
  • 下载和使用python库
    • 如何下载python库
    • 如何使用python库
      • 导入python库
  • chatgpt部分
    • 申请openai的key
    • python调用chatgpt的简单示例
  • wxauto部分
    • wxauto简单示例
  • 整体实现
    • 整体示例代码

教程说明

1.机器人无法取代真人聊天,本教程仅用于学习,使用机器人和别人聊天本身就是对朋友的不尊重,请谨慎使用
2.本教程为了让大家更清晰地理解,让大家更方便进行自定义开发,本教程分为三大模块,每一模块对相关的功能和操作都进行单独的说明,并且教程最后将功能模块进行了合并总结,呈现整体效果
3.本教程对相关的基础操作只做了简单的说明,如果对python没有任何经验的新手朋友,需要根据本文档的引导进行自行搜索,本文档只对本文档主题进行详细说明,如果有什么建议,可以在评论区留言,欢迎各路大神批评斧正!
4.本教程只用于个人学习,如有疏漏,尽情谅解

下载和使用python库

1.wxauto,实现微信窗口消息检测
2.openai,获取chatgpt返回数据
3.time,实现操作延时,并且获取时间数据

如何下载python库

方法一:通过pip指令下载,前提是python已经加入环境变量,打开cmd输入以下指令
首先

//首先输入以下指令下载相关的库pip install 库名
//比如说下载wxauto库
pip install wxauto

方法二:(通过pycharm演示)

如何使用python库

导入python库


然后在代码中使用相关的库方法就可以了,由于篇幅有限,在这里就不详细赘述,请自行搜索

chatgpt部分

1.首先你需要有一个openai账号,才可以进行以下操作
2.由于openai在亚太地区无法使用,并且属于国外网站,所以包括本章节的第一部分:申请openai的key,以及第二部分:python调用chatgpt的简单示例,都需要"魔法上网"才行
3.申请的免费key只有5美元的调用额度

申请openai的key

1.进入官网:openai

2. 接下来我们点击 api 即可:

3. 查找自己账户的 key:
我们依次点击 Personal ,View API keys

4. 创建自己的 key:

python调用chatgpt的简单示例

该示例可以实现连续对话功能

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].textreturn 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部分

wxauto简单示例

# 首先,将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].textreturn 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 += 1else:print("正在检测中")else:num = 0context = ""

基于python实现微信接入ChatGpt进行自动回复相关推荐

  1. 基于python 开发 微信机器人自动回复 app

    基于python 开发 微信机器人自动回复 app # coding:utf-8 __author__ = "zhou" # create by zhou on 2020/3/3 ...

  2. 【毕业设计_课程设计】基于python的微信公众平台机器人的设计与实现

    文章目录 0 项目说明 项目介绍 项目工程 0 项目说明 基于python的微信公众平台机器人的设计与实现 提示:适合用于课程设计或毕业设计,工作量达标,源码开放 项目介绍 1.NGINX做负载均衡, ...

  3. 基于python的微信公众号开发教程_基于python的微信公众号开发教程

    应广大python学员的期盼,九宝老师精心制作的"基于python的微信公众号开发"视频教程即将上线. 该课程秉承九宝培训一贯的"简单.高效.快速"的讲课原则, ...

  4. 基于Python的微信朋友圈数据可视化分析之地点

    前提 朋友圈的相关数据请参照上一篇文章<基于Python的微信朋友圈数据可视化分析之个性签名>获取,本篇文章默认需要的数据已经下载保存至本地的 csv 文件中了. 将好友的地点按照省份进行 ...

  5. python微信好友分析_基于python实现微信好友数据分析(简单)

    一.功能介绍 本文主要介绍利用网页端微信获取数据,实现个人微信好友数据的获取,并进行一些简单的数据分析,功能包括: 1.爬取好友列表,显示好友昵称.性别和地域和签名, 文件保存为 xlsx 格式 2. ...

  6. python使用微信设置-Python使用微信公众号实现自动回复

    原标题:Python使用微信公众号实现自动回复 作者:睿江云计算 Python作为一门热门的编程语言,已经被很多编程爱好者所使用,下面我们就看看它是怎么与公众号的对接,并且实现一些回复文字,图片内容. ...

  7. 基于python的公众号课堂教学_基于Python的微信公众号数据挖掘分析

    基于Python的微信公众号数据挖掘分析 华南农业大学电子工程学院 王 建 黄宁香 [期刊名称]电子世界 [年(卷),期]2019(000)011 [总页数]3 运用Python网络爬虫技术对某时事类 ...

  8. 视频教程-基于python的微信公众号开发教程-微信开发

    基于python的微信公众号开发教程 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试(软考)--"信 ...

  9. python朋友圈数据分析_基于Python的微信朋友圈数据可视化分析之地点

    前提 朋友圈的相关数据请参照上一篇文章<基于Python的微信朋友圈数据可视化分析之个性签名>获取,本篇文章默认需要的数据已经下载保存至本地的 csv 文件中了. 将好友的地点按照省份进行 ...

最新文章

  1. JS复制内容到剪贴板
  2. 灼灼夏日 - 遥思故乡 - 赤子无相忘
  3. 美团外卖回应佣金争议;苹果回应戴口罩解锁 iPhone;新 Edge 浏览器明年将不再支持 Win7 | 极客头条...
  4. linux 20个系统监控工具
  5. 【洛谷 P4291】 [HAOI2008]排名系统(Splay,Trie)
  6. webui-popover 一个轻量级的jquery弹出层插件
  7. 揭秘ASP.NET 2.0之Page.Eval
  8. 01使用ILDasm.exe将可执行文件反编译成IL代码
  9. 项目中better-scroll的常用配置、插件介绍
  10. VMware Fusion网络配置相关原理
  11. 【车载IoT】国标《电动汽车远程服务与管理系统技术规范》:车载设备设计规范
  12. 多站点同服务器同IP网站架设(IIS)心得
  13. python中output使用_如何在Python中使用subprocess.check_output()?
  14. 微信小程序开发之小米商城
  15. 神仙项目,轻松上手了解前后端分离!
  16. 第四章第四题(几何:六边形面积)(Geometry: area of a hexagon)
  17. Crawlab(crawlab github)
  18. 【译】TcMalloc: Thread-Caching Malloc
  19. java工程师的工作述职报告,java程序员述职报告
  20. 阅读笔记 - Horizon Zero Dawn 广袤世界中的玩家漫游

热门文章

  1. Spark SQL 核心编程
  2. 开发者必知必会的 WebSocket 协议
  3. “多元化”通证经济模型:DAO的神经和血液
  4. 在Java层面(window和Linux系统)下的常用性能监控与调优工具的命令及操作
  5. 数据级的权限管理和功能级的权限管理的区别,不使用框架(shiro,springsecurity)做权限设计的思考
  6. 是技不如人而不是金融危机!
  7. Premiere Pro 2022
  8. UTD/GMT 本地时间
  9. SUSE(linux)下安装GCC
  10. R语言中不同类型的聚类方法比较