ChatGPT-on-WeChat介绍
打造微信AI超级助手,我们需要借助ChatGPT-on-WeChat来实现。
ChatGPT-on-WeChat (CoW) 项目是一个基于ChatGPT技术构建的智能聊天机器人,该项目利用了GPT3.5/4.0 API以及itchat框架,支持在个人微信、微信公众号和企业微信上部署。CoW 能够生成文本、语音和图片,并且能够访问操作系统和互联网,提供丰富的互动体验。
该项目的最新版本具备以下功能:
-
多端部署:支持接入个人微信、微信公众号、企业微信应用,增强了项目的适用范围和灵活性。
-
基础对话:实现了私聊及群聊的消息智能回复功能,支持多轮会话的上下文记忆,以及GPT-3, GPT-3.5, GPT-4, 文心一言模型等多种语言模型。
-
语音识别:可以识别语音消息,并通过文字或语音回复,支持多种语音模型如azure, baidu, google, openai等。
-
图片生成:支持图片生成和图生图(如照片修复),可使用Dell-E, stable diffusion, replicate, Midjourney等多种模型。
-
丰富插件:提供个性化插件扩展功能,包括多角色切换、文字冒险游戏、敏感词过滤、聊天记录总结等插件,增加了项目的可玩性和实用性。
-
Tool工具:支持与操作系统和互联网的交互,能进行最新信息搜索、数学计算、天气和资讯查询、网页总结等操作,基于chatgpt-tool-hub实现。
-
知识库:允许用户通过上传知识库文件来自定义专属的机器人,可以用作数字分身、领域知识库或智能客服,基于LinkAI技术实现。
一、Python环境推荐
官方推荐的python版本为 3.7.1 ~ 3.9.X 之间,太高或者太低,均可能出现问题,我一开始就是版本太高,程序运行过程中出现异常。
安装教程我就不写了,网上有很多。
二、获取API
1.使用ChatGPT API
使用ChatGPT API,这个前提是你的ChatGPT API有余额
查询账号是否有余额:https://platform.openai.com/account/usage
查询账号api_key地址:https://platform.openai.com/api-keys
如果之前没有创建过,手动创建一个就可以,api_key是sk开头的这个
默认情况下,我们只需要修改model、open_ai_api_key、proxy三个属性就可以
2.使用LinkAI官方提供的应用
进入控制台
创建应用
填写完应用名称和描述一键生成
这里我选择了轻应用,如果你想把自己的资料投喂给机器人可以使用知识库应用。
创建完可以进行修改调试,应用code在后面配置config.json时需要。
在插件配置这块,可以根据自己需求来选择相应的插件进行配置。
可以在我的账户查看余额
在应用接入里面创建Api Key,这个在后面配置config.json时需要
三、运行chatgpt-on-wechat程序
config.json配置:
默认配置说明
我们在后面创建应用详情页,可以得到应用code;在应用接入页面,得到api key。
使用linkai:
在config.json配置里,将use_linkai后面的false改为true,然后将api_key和app_code填写好,保存就可以了
"use_linkai": true,
"linkai_api_key": "",
"linkai_app_code": ""
四种方式部署
Docker部署:
使用docker部署无需下载源码和安装依赖,只需要拉取镜像并根据 docker-compose.yml 配置文件启动容器即可。
前提是安装好 docker
及 docker-compose
,安装成功的表现是执行 docker -v
和 docker compose version
(或 docker-compose version) 可以查看到版本号,可前往 docker官网 进行下载。
(1) 配置 docker-compose.yml
执行以下命令下载 docker-compose.yml
:
wget https://open-1317903499.cos.ap-guangzhou.myqcloud.com/docker-compose.yml
接着打开文件,修改或添加所需的配置,如 OPEN_AI_API_KEY
和 GROUP_NAME_WHITE_LIST
等必填配置。
(2) 启动容器
在 docker-compose.yml 所在目录下执行以下命令启动容器:
sudo docker-compose up -d
运行 sudo docker ps 能查看到 NAMES 为 chatgpt-on-wechat
的容器即表示运行成功。
提示
如果 docker-compose 是 1.X 版本 则需要执行 sudo docker-compose up -d 来启动容器
该命令会自动去 docker hub拉取 latest 版本的镜像,latest 镜像会在每次项目 release 新的版本时生成
最后运行以下命令可查看容器运行日志,扫描日志中的二维码即可完成登录:
sudo docker logs -f chatgpt-on-wechat
(3) 停止容器
执行以下命令可以关闭服务:
sudo docker-compose down
注意:如果修改了 docker-compose.yml
中的配置,需要关闭容器后再重新启动才能生效,只执行 docker restart
是不起作用的。
本地运行
(1) 下载源码
在命令行使用 git 克隆项目:
git clone https://github.com/zhayujie/chatgpt-on-wechatcd chatgpt-on-wechat/
进入项目目录
cd 项目目录
进入后,我们分两次执行以下指令
(2) 安装依赖
我们分两次执行以下指令
pip3 install -r requirements.txt # 必选依赖
pip3 install -r requirements-optional.txt # 可选依赖,语音、tool插件等功能需要
(3) 配置
复制项目中的模板文件 config-template.json
,来生成最终起效果的配置文件config.json
,你可以通过执行以下命令完成:
cp config-template.json config.json
然后打开 config.json
文件,添加所需配置。
(4) 运行
一切准备就绪,可以启动程序了,直接在项目目录下执行:
python3 app.py
扫描输出的二维码即可完成登录。如果你使用的是 pycharm 等IDE,就更方便了,点击运行按钮就可以直接运行。
服务器部署
(1) 下载源码
在命令行使用 git 克隆项目并进入目录:
git clone https://github.com/zhayujie/chatgpt-on-wechatcd chatgpt-on-wechat/
(2) 安装依赖
pip3 install -r requirements.txt # 必选依赖
pip3 install -r requirements-optional.txt # 可选依赖,语音、tool插件等功能需要
(3) 配置
复制项目中的模板文件 config-template.json
,来生成最终起效果的配置文件config.json
,你可以通过执行以下命令完成:
cp config-template.json config.json
然后打开 config.json
文件,添加所需配置。
(4) 运行程序
使用nohup命令在后台运行程序,即使断开ssh连接也能保持运行:
touch nohup.out # 首次运行需要新建日志文件
nohup python3 app.py & tail -f nohup.out # 在后台运行程序并通过日志输出二维码
扫码登录后程序即可运行于服务器后台,此时可通过 ctrl+c 关闭日志,不会影响后台程序的运行。在日志关闭后如果想要再次打开只需输入 tail -f nohup.out
。
(5) 停止程序
如果想要关闭程序可以 执行 kill -9 <pid>
来完成,执行以下命令可以查看当前进程的 pid:
ps -ef | grep app.py | grep -v grep
Railway部署
Railway 一键部署需要注册时间满半年的github账号,每月会提供5美金和最多500小时的免费额度。Railway部署仅适用于个人微信,暂不支持企业微信和公众号的部署,且插件配置不方便,适合快速体验。
(1)授权Github账户
首先进入 Railway,使用github进行登录,点击 “Deploy Now” 按钮,授权你的 github 账号,然后进行配置:
其中有两个配置是必填的,其他的暂时都可以暂时先用默认值,一个是 open_ai_api_key
, 这个正是我们上一步在官网注册的apiKey, group_name_white_list
则指定了哪些群聊需要开启自动回复,你可以配置为 ["ALL_GROUP"]
来开启所有群聊。
(2)部署
部署完成后,日志中会输出二维码,使用手机微信扫码登录,登录成功后你的账号就变成一个ChatGPT机器人了。
(3)配置修改
如果后续需要修改或添加配置,可在 Variables
中进行更新:
然后执行 “restart” 即可使配置生效:
四、玩转插件
该项目受到用户和开发者的广泛欢迎,开发者为其贡献了许多实用插件。
安装插件前,请仔细阅读插件说明,并根据需要修改配置文件。插件和相应的配置模板可在对应的插件目录下找到。
安装方法:
项目已经预置一些插件可在/plugins/目录下查看,如需安装其他插件参考以下两种方法
-
手动安装:请将下载的插件文件解压至“plugins”目录下的专属子文件夹中,确保插件代码位于plugins/PLUGIN_NAME/路径下。程序启动时,将自动扫描并加载目录结构正确的插件。同时,别忘了安装子文件夹内requirements.txt指定的必要依赖,以确保插件正常运行。。
-
使用管理插件:通过使用Godcmd插件,这个内置的管理员工具允许您在程序运行时安装其他插件,并自动处理所需的依赖安装。使用“#installp 插件名/仓库地址”的命令来安装插件,这是一项专为管理员设计的功能,需要通过特定的认证方法进行验证。无论是安装已记录在仓库中的插件,还是直接从指定的GitHub仓库地址安装,Godcmd都提供了灵活的安装选项。
认证方法:
将config.json.template复制为config.json,并修改其中password的值为口令。
如果没有设置命令,在命令行日志中会打印出本次的临时口令,请注意观察,打印格式如下。
[INFO][2023-04-06 23:53:47][godcmd.py:165] - [Godcmd] 因未设置口令,本次的临时口令为0971。
在私聊中可使用#auth指令,输入口令进行管理员认证。更多详细指令请输入#help查看帮助文档:
#auth <口令> - 管理员认证,仅可在私聊时认证。 #help - 输出帮助文档,是否是管理员和是否是在群聊中会影响帮助文档的输出内容。
安装插件后,执行#scanp命令可扫描并加载新插件,或重启程序以自动识别。
同时,使用#enablep plugin_name命令激活插件。
项目启动时,自动在plugins/
目录下生成一个plugins.json
文件,反映了插件的启用状态。
若需启用未激活的插件,直接编辑该文件或通过命令行激活。配置错误导致插件禁用时,需在修正后将plugins.json中对应的“enabled”标记为“true”并重启项目以应用更改。
介绍我常用的插件目录
godcmd(管理员插件)
首先,在plugin/godcmd目录下,复制config.json.template文件为config.json,并设置其中的password值为您的自定义口令,例如12345。随后,在私聊环境中输入#auth 12345以进行管理员验证。验证成功后,发送#help命令会列出所有管理员操作指令,包括配置重载、插件安装以及插件的启用与禁用操作。
如果没有设置管理员口令,应用启动会生成一个临时口令,如下图所示:
临时口令验证:
注意:对于“admin_users”字段的设置,当使用个人微信时不需填写,因为个人微信的ID在每次重启后可能会更改。若是企业微信或公众号,您可以通过发送#id命令来获取用户ID,然后将获取到的ID填入此字段以完成配置。
summary(总结插件)
支持以自然语言实现对聊天记录的总结,认证管理员后执行#installp summary
安装
$ 总结最近20条消息
$ 总结3小时内的消息
tool(强大工具集):
插件为ChatGPT赋予了联网、搜索和数字运算的能力,极大地扩展了其功能。要使用此插件,只需在机器人的回复前加上$tool即可;也可以通过此命令返回tool插件的帮助信息,帮助检测插件是否成功加载。更详细的使用说明和API申请方法,以及config.json的配置示例,请参考项目的GitHub页面。
使用说明:https://github.com/goldfishh/chatgpt-on-wechat/blob/master/plugins/tool/README.md
api申请:https://github.com/goldfishh/chatgpt-tool-hub/blob/master/docs/apply_optional_tool.md
config.json配置示例(后续如有改动,请参考最新代码的配置模板):
timetask(定时任务插件)
简介:一款支持自定义定时任务的chatgpt-on-wechat插件,支持自定义时间、轮询周期、自定义时间,包含动态添加任务、取消任务、查看任务列表等功能,一款定时任务系统的插件。(稳定性待优化)
地址:https://github.com/haikerapples/timetask
安装:
-
#auth 口令 认证管理员
-
#installp https://github.com/haikerapples/timetask.git 安装插件,会自动安装依赖
-
到插件目录更改config.json文件的配置
-
#scanp 扫码新插件
-
#enablep timetask 启用该插件
使用说明,请查看插件作者仓库readme说明。
还有更多插件我就不一一介绍啦,等你去发现。
利用ChatGPT-on-WeChat打造的微信AI助手,能够通过集成多种插件来实现丰富和多样的功能,从而极大地扩展了微信的应用场景。这种方式为用户提供了个性化的服务,增强了用户体验,同时也为开发者打开了创新应用的大门。
需要注意的是,避免过于频繁的尝试,以免面临封号风险。万一不慎被封,按照简单的解封步骤邀请好友帮助即可轻松解决。