本文最后更新于 2023-09-10,该文章更新时间较久,如有变动或失误地方请留言或自行查找。

之前,我通过 VS Code 插件调用 ChatGPT API 密钥实现便捷对话(点此查看原文),但是还不够方便,所以又折腾了一个更方便的办法,通过搭建 ChatGPT 微信机器人,来实现二十四小时、随时随地与 ChatGPT 对话。

未标题-1.webp

 

一、效果预览

比如,我是一名中学生李华,需要给XXX写一篇英语作文,这对 AI 来说简直毫无困难,中学生简直狂喜,从此爱上写作文了,有木有😂

1676535625709.webp

或者是说,有一段代码我看不懂了,可以通过 ChatGPT 对代码进行详细的分析,从而明白代码的作用。

1676535906194.webp

总之,玩法还是很多,虽然针对中文语义下的体验还有待提升,但大部分场景下还是能比较愉快的玩耍,下面,我详细介绍 ChatGPT 微信机器人的搭建方法,看完以后,你也可以拥有属于自己的“专属”机器人。

二、搭建 ChatGPT 微信机器人

1.准备条件

在搭建机器人之前,我们需要准备以下必要条件:

  • 服务器1台(或者电脑也可以)

  • ChatGPT API 密钥

  • 运行程序(下方有下载链接)

  • 安装 Python 的运行环境(支持 Linux、MacOS、Windows 系统(可在Linux服务器上长期运行),建议Python版本在 3.7.1~3.9.X 之间,3.10及以上版本在 MacOS 可用,其他系统上不确定能否正常运行。)

 

2.安装机器人

(1)下载项目代码

如果你还有未安装 python ,请到官网https://www.python.org/)下载安装。

接下来,我们需要在服务器(或电脑上)对微信机器程序进行安装,通过git 将程序从远程拉下来,并打开程序所在文件夹。

git clone https://github.com/zhayujie/chatgpt-on-wechat
cd chatgpt-on-wechat/

如下图所示,在执行上方两行命令后,在服务器 root 目录下回有一个 chatgpt-on-wechat 文件夹,里面便是机器运行程序。

1676536960547.webp

 

(2)安装核心依赖文件

在进入** chatgpt-on-wechat** 后,通过执行下方命令,对机器人所需的核心依赖文件进行安装。

pip3 install itchat-uos==1.5.0.dev0
pip3 install --upgrade openai

注:itchat-uos使用指定版本1.5.0.dev0,openai使用最新版本,需高于0.25.0。

 

(3)创建配置文件

因为我们克隆的项目根目录缺乏配置文件 config.json ,但在项目文件 config-template.json 有相应的配置文件模板,我们需要将配置文件复制一份过来。

cp config-template.json config.json

下面是配置文件的注释,可以根据自己的需求对配置文件进行修改。默认需要开启指定群聊生效,以及回复内容有“bot”标识。

然后在第一行的位置填写你的ChatGPT API 密钥。

# 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": ["画", "看", "找"],                   # 开启图片回复的前缀
  "conversation_max_tokens": 1000,                            # 支持上下文记忆的最多字符数
  "character_desc": "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。"  # 人格描述
}

下面是我自己的配置文件,默认开启所有群聊生效,回复去消息去掉了“bot”标识,更多配置说明请访问原项目查看,地址:https://github.com/zhayujie/chatgpt-on-wechat

{
  "open_ai_api_key":"YOUR API KEY",
  "single_chat_prefix": [""],
  "single_chat_reply_prefix": "",
  "group_chat_prefix": ["@bot"],
  "group_name_white_list": ["ALL_GROUP"],
  "image_create_prefix": ["画", "看", "找"],
  "conversation_max_tokens": 1000,
  "character_desc": "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。"
}

 

(4)修改二维码过期时间

由于该项目默认二维码刷新时间较短,而且微信登录风控检测,需要等待5秒才能操作,所以无论你的手速有多快,都无法完成登录操作,所以这里需要对项目登录代码做一个修改。

首先我们通过命令查找一下项目安装目录:

pip3 show itchat-uos

1676538115695.webp

在返回信息里,Location: /usr/local/lib/python3.6/site-packages就是文件安装路径。

所以完整的源码路径应该为 /usr/local/lib/python3.7/site-packages/itchat/components/login.py

根据上述代码打开对应路径,并找到 login.py文件,在 while not isLoggedIn 循环前加上一个sleep(15), 代码在第59行。

sleep(15) 就是登录二维码15秒后刷新的意思,当然,你也可以改成20秒、30秒,都可以。

(5)运行机器人

a.本地运行

如果你是在自己电脑上进行本地部署,那么直接在根目录执行下方命令即可。

python3 app.py
b.服务器部署

如果你和我一样,是在服务器端部署的机器人,通过执行 nohup 命令,让程序在后台运行,即可解放双手,让微信机器人24小时响应。

touch nohup.out                                   # 首次运行需要新建日志文件                     
nohup python3 app.py & tail -f nohup.out          # 在后台运行程序并通过日志输出二维码

(6)使用说明

完成以上操作后,你就拥有了自己的专属微信机器人,私聊可以直接对话,群内艾特机器人并提问即可,如果你使用的是默认配置文件,请将对应的群名称添加在配置文件内。

本文内容基于 github 开源项目实现,该项目基于ChatGPT的微信聊天机器人,通过 OpenAI 接口生成对话内容,使用 itchat 实现微信消息的接收和自动回复。已实现的特性如下:

  • 文本对话: 接收私聊及群组中的微信消息,使用ChatGPT生成回复内容,完成自动回复

  • 规则定制化: 支持私聊中按指定规则触发自动回复,支持对群组设置自动回复白名单

  • 多账号: 支持多微信账号同时运行

  • 图片生成: 支持根据描述生成图片,并自动发送至个人聊天或群聊

  • 上下文记忆:支持多轮对话记忆,且为每个好友维护独立的上下会话

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

 

三、常见问题&注意事项

1.风险问题

通过服务器部署机器人会涉及异地登录,且大量消息请求具有潜在的账号封禁风险,所以请自备微信小号进行部署,不建议使用工作、生活主账号作为机器人。

2.ChatGPT API

ChatGPT API需要自行解决,具体方法可参考我上一篇内容介绍(点此查看),需要注意的是 API 请求一定的次数限制,所以公开的镜像站、同类体验页面均有此限制,所以随时会失效。

最后,我将自己部署的机器人拉了一个体验群,有需要的小伙伴可以进群体验,需要说明的是:

  • 该功能随时会失效

  • 该群仅用作体验 ChatGPT 机器人,后续会解散

  • 无法加群请后台私信

  • 进群后请自行开启群聊免打扰功能

 

16091676539504_.pic.webp