前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开源项目将ChatGPT接入微信实现智能回复

开源项目将ChatGPT接入微信实现智能回复

作者头像
开源日记
发布2023-04-11 18:52:40
1.9K0
发布2023-04-11 18:52:40
举报
文章被收录于专栏:JVMGCJVMGC

ChatGPT 近期以强大的对话和信息整合能力风靡全网,可以写代码、改论文、讲故事,几乎无所不能,这让人不禁有个大胆的想法,能否用他的对话模型把我们的微信打造成一个智能机器人,可以在与好友对话中给出意想不到的回应,而且再也不用担心女朋友影响我们 ~打游戏~ 工作了。

本项目是基于 ChatGPT 的微信聊天机器人,通过 OpenAI 接口生成对话内容,使用 itchat 实现微信消息的接收和自动回复。

简介

已实现特性

  • [x]文本对话: 接收私聊及群组中的微信消息,使用 ChatGPT 生成回复内容,完成自动回复
  • [x]规则定制化: 支持私聊中按指定规则触发自动回复,支持对群组设置自动回复白名单
  • [x]多账号: 支持多微信账号同时运行
  • [x]图片生成: 支持根据描述生成图片,并自动发送至个人聊天或群聊

Github 地址:https://github.com/zhayujie/chatgpt-on-wechat

更新日志

2022.12.19: 引入 itchat-uos 替换 itchat,解决由于不能登录网页微信而无法使用的问题,且解决 Python3.9 的兼容问题

2022.12.18: 支持根据描述生成图片并发送,openai 版本需大于 0.25.0

2022.12.17: 原来的方案是从 ChatGPT 页面 获取 session_token,使用 revChatGPT 直接访问 web 接口,但随着 ChatGPT 接入 Cloudflare 人机验证,这一方案难以在服务器顺利运行。 所以目前使用的方案是调用 OpenAI 官方提供的 API,回复质量上基本接近于 ChatGPT 的内容,劣势是暂不支持有上下文记忆的对话,优势是稳定性和响应速度较好。

效果

个人聊天

群组聊天

图片生成

快速开始

准备

1. OpenAI 账号注册

前往 OpenAI 注册页面 创建账号,参考这篇教程可以通过虚拟手机号来接收验证码。创建完账号则前往 API 管理页面 创建一个 API Key 并保存下来,后面需要在项目中配置这个 key。

项目中使用的对话模型是 davinci,计费方式是每 1k 字 (包含请求和回复) 消耗

0.02,图片生成是每张消耗 0.016,账号创建有免费的 $18 额度,使用完可以更换邮箱重新注册。

2. 运行环境

支持 Linux、MacOS、Windows 系统(可在 Linux 服务器上长期运行),同时要求安装有 Python(版本需在 3.7.1~3.9.X 之间,Linux 环境建议使用 3.7.X)。

  1. 克隆项目代码:
代码语言:javascript
复制
git clone https://github.com/zhayujie/chatgpt-on-wechat
cd chatgpt-on-wechat/
  1. 安装所需核心依赖:
代码语言:javascript
复制
pip3 install itchat-uos==1.5.0.dev0
pip3 install openai==0.25.0

配置

配置文件的模板在根目录的config-template.json中,需复制该模板创建最终生效的 config.json 文件:

代码语言:javascript
复制
cp config-template.json config.json

然后在config.json中填入自定义配置,各配置项含义如下:

代码语言:javascript
复制
# config.json文件内容示例
{ 
  "open_ai_api_key": "YOUR API KEY"                           # 填入上面创建的 OpenAI API KEY
  "single_chat_prefix": ["bot", "@bot"],                      # 私聊时文本需要包含该前缀才能触发机器人回复
  "single_chat_reply_prefix": "[bot] ",                       # 私聊时自动回复的前缀,用于区分真人
  "group_chat_prefix": ["@bot"],                              # 群聊时包含该前缀则会触发机器人回复
  "group_name_white_list": ["ChatGPT测试群", "ChatGPT测试群2"], # 开启自动回复的群名称列表
  "image_create_prefix": ["画", "看", "找"]                    # 开启图片回复的前缀
}

配置说明:

  • 个人聊天中,需要以 "bot" 或 "@bot" 为开头的内容触发机器人,对应配置中的 single_chat_prefix;机器人回复的内容会以 "[bot]" 作为前缀, 以区分真人,对应的配置为 single_chat_reply_prefix
  • 群组聊天中,群名称需配置在 group_name_white_list 中才能开启群聊自动回复,默认只要被 @就会触发机器人自动回复,另外群聊天中只要检测到以 "@bot" 开头的内容,同样会自动回复,这对应配置 group_chat_prefix
  • 对于图像生成,在满足个人或群组触发条件外,还需要额外的关键词,对应配置 image_create_prefix
  • 关于 OpenAI 对话及图片接口的参数配置(内容自由度、回复字数限制、图片大小等),可以参考 对话接口 和 图像接口 文档直接在 代码 bot\openai\open_ai_bot.py 中进行调整。

运行

  • 1.如果是开发机本地调试,直接在项目根目录下执行:
代码语言:javascript
复制
python3 app.py

终端输出二维码后,使用微信进行扫码,当输出 "Start auto replying" 时表示自动回复程序已经成功运行了(注意:用于登录的微信需要在支付处已完成实名认证)。

  • 2.如果是服务器部署,则使用 nohup 命令在后台运行:
代码语言:javascript
复制
touch nohup.out                                   # 首次运行需要新建日志文件                     
nohup python3 app.py & tail -f nohup.out          # 后台运行程序并输出日志

同样在扫码后程序即可成功运行于服务器后台

地址:https://github.com/zhayujie/chatgpt-on-wechat

更多功能广大网友可以继续挖掘。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-03-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源日记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 已实现特性
  • 更新日志
  • 效果
  • 个人聊天
  • 群组聊天
  • 图片生成
  • 快速开始
    • 1. OpenAI 账号注册
      • 2. 运行环境
      • 配置
      • 运行
      相关产品与服务
      验证码
      腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档