如您觉得以下步驟太過繁瑣,想直接體驗ChatGPT,請加微信聯繫:lifetravelling
第一個方法(第一個測試下來服務器網頁關閉就不能回覆,而且沒有回覆圖片功能,所以推薦第二個方法)
一、登陆OpenAI官网登录你的账号,获取API key
國內不開放,需有國外手機號支持。
二、Wechat-Chatgpt项目
https://github.com/fuergaosi233/wechat-chatgpt
三、开始配置服务器
服務器這裡選擇阿里雲輕量應用服務器,新加坡Ubuntu20.04, 24元/月。
安装Node环境
sudo apt update && sudo apt upgrade
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install nodejs
apt install git
git clone https://github.com/fuergaosi233/wechat-chatgpt
安装依赖并创建配置文件
# 切换到new-wechatgpt分支
git checkout new-wechatgpt
# 安装依赖
npm install
# 创建配置文件
cp config.yaml.example config.yaml
cp .env.example .env
vi .env
修改配置文件
.env内容如下:
CHAT_GPT_EMAIL=
CHAT_GPT_PASSWORD=
CHAT_GPT_RETRY_TIMES=
CHAT_PRIVATE_TRIGGER_KEYWORD=
OPENAI_PROXY=
NOPECHA_KEY=
CAPTCHA_TOKEN=
OPENAI_API_KEY=填写你的API_KEY
修改模型
打开文件:
cd wechat-chatgpt
vi node_modules/chatgpt/build/index.js
(73行)
修改模型为:
text-davinci-003
启动服务并扫码登录
npm run dev
第二個方法:
已实现特性
-
- 文本对话: 接收私聊及群组中的微信消息,使用ChatGPT生成回复内容,完成自动回复
-
- 规则定制化: 支持私聊中按指定规则触发自动回复,支持对群组设置自动回复白名单
-
- 多账号: 支持多微信账号同时运行
-
- 图片生成: 支持根据描述生成图片,并自动发送至个人聊天或群聊
-
- 上下文记忆: 支持多轮对话记忆,且为每个好友维护独立的上下会话
-
- 语音识别: 支持接收和处理语音消息,通过文字或语音回复
-
- 插件化: 支持个性化插件,提供角色扮演、文字冒险、与操作系统交互、访问网络数据等能力
Github地址: https://github.com/zhayujie/chatgpt-on-wechat
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) 克隆项目代码:
git clone https://github.com/zhayujie/chatgpt-on-wechat
cd chatgpt-on-wechat/
(2) 安装核心依赖 (必选):
能够使用
itchat
创建机器人,并具有文字交流功能所需的最小依赖集合。
pip3 install -r requirements.txt
(3) 拓展依赖 (可选,建议安装):
pip3 install -r requirements-optional.txt
如果某项依赖安装失败请注释掉对应的行再继续。
配置
配置文件的模板在根目录的config-template.json
中,需复制该模板创建最终生效的 config.json
文件:
cp config-template.json config.json
然后在config.json
中填入自定义配置,各配置项含义如下:
# 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
- 个人聊天中,需要以 “bot” 或 “@bot” 为开头的内容触发机器人,对应配置中的
-
- 群组聊天中,群名称需配置在
group_name_white_list
中才能开启群聊自动回复,默认只要被@就会触发机器人自动回复,另外群聊天中只要检测到以 “@bot” 开头的内容,同样会自动回复,这对应配置group_chat_prefix
- 群组聊天中,群名称需配置在
-
- 对于图像生成,在满足个人或群组触发条件外,还需要额外的关键词,对应配置
image_create_prefix
- 对于图像生成,在满足个人或群组触发条件外,还需要额外的关键词,对应配置
运行
1.如果是开发机本地调试,直接在项目根目录下执行:
python3 app.py
终端输出二维码后,使用微信进行扫码,当输出 “Start auto replying” 时表示自动回复程序已经成功运行了(注意:用于登录的微信需要在支付处已完成实名认证)。扫码登录后,就可以在微信手机端通过配置的关键词触发自动回复了。
2.如果是服务器部署,则使用nohup命令在后台运行:
touch nohup.out # 首次运行需要新建日志文件
nohup python3 app.py & tail -f nohup.out # 后台运行程序并输出日志
扫码登录后程序即可运行于服务器后台,此时可通过 ctrl+c
关闭日志,不会影响后台程序的运行。使用 ps -ef | grep app.py | grep -v grep
命令可查看运行于后台的进程,如果想要重新启动程序可以先 kill
掉对应的进程。日志关闭后如果想要再次查看只需输入 tail -f nohup.out
。
注:如果 扫码后手机提示登录验证需要等待5s,而终端的二维码再次刷新并提示
Log in time out, reloading QR code
,此时需参考此 issue 修改一行代码即可解决。
最後:如果忽然沒消息了怎麼辦?
重裝方法二