快速开始
本节内容暂时不看各种复杂特性,首先提供一个能快速运行最小可用版本的指引,目标是能搭建起能在私聊和群聊中自动回复的聊天机器人。整个过程很简单,只需要 注册OpenAI 账号 和 运行程序 两步。
一、准备
项目默认使用 OpenAI接口 进行对话,需前往 OpenAI注册页面 创建账号,创建完账号则前往 API管理页面 创建一个 API Key 并保存下来,后面需要在项目中配置这个key。接口需要海外网络访问及绑定信用卡支付。
- 账号注册过程需要网络代理,如果openai页面显示 Access denied, 要看下你的代理地区是否在openai的服务范围内,不能是香港、澳门等地区。
- 项目使用的是 OpenAI 平台提供的 API,ChatGPT网页端 可以对话并不代表有api的使用额度,需要在 额度查询 页面查看是否有额度
注: 项目同时也支持使用 LinkAI 接口,国内及海外网络环境均可使用,可使用 文心、讯飞、GPT-3、GPT-4 等模型,支持 定制化知识库、联网搜索、MJ绘图、文档总结和对话等能力。修改配置即可一键切换,参考 LinkAI接入文档。
二、运行
代码仓库: https://github.com/zhayujie/chatgpt-on-wechat
1.方案对比
有4种运行程序的方式供你选择:
运行方式 | 需要的资源 | 优势 | 劣势 |
---|---|---|---|
Docker部署 | 服务器 + docker环境 | 不用关心python环境和依赖 | 插件配置稍麻烦 |
本地运行 | 个人机器 + 本地代理 + python环境 | 方便本地代码调试 | 不适合长时间稳定运行 |
服务器部署 | 服务器 + python环境 | 方便配置和源码修改、稳定运行 | 需要简单的linux基础 |
Railway部署 | 一个超过半年的github账号 | 一键部署 | 免费额度有限,插件等高级功能使用不便 |
注意: 除了railway,其他三种方式都需要保证能够访问openai接口,可以通过执行 ping api.openai.com
来判断网络是否可用,如果无法 ping通 则需要代理或国外服务器环境。
2.程序部署
- Docker部署
- 本地运行
- 服务器部署
- RailWay部署
使用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
是不起作用的。
本地开发环境支持 MacOS、Windows、Linux 系统,需要安装 python 环境,推荐的版本在 3.7.1 ~ 3.9.X 之间,可前往 官网 下载。
在命令行执行 python3 -V
,如果能显示正确的版本则表示安装成功。需要注意的是,python3 只是一个指向python解释器的引用,有可能在你的系统里这个别名是 "python" 或者 "python3.8",那么在后面你就需要用 "python" 或 "python3.8" 来代替 python3 运行程序。同样的,执行 pip3 -V
来确认已经成功安装包管理软件 pip。
(1) 下载源码
在命令行使用 git 克隆项目并进入目录:
git clone https://github.com/zhayujie/chatgpt-on-wechat
cd 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) 运行
一切准备就绪,可以启动程序了,直接在项目目录下执行:
python3 app.py
扫描输出的二维码即可完成登录。如果你使用的是 pycharm 等IDE,就更方便了,点击运行按钮就可以直接运行。
服务器部署支持各类 linux发行版 及 winserver,同样需要安装 python 环境,推荐的版本在 3.7.1 ~ 3.9.X 之间,可前往 官网 下载,相比在图形界面环境安装python,服务器还需要安装一些前置依赖,可以参考这两篇博文: ubuntu 和 centos。
在命令行执行 python3 -V
,如果能显示正确的版本则表示安装成功。需要注意的是,python3 只是一个指向python解释器的引用,有可能在你的系统里这个别名是 "python" 或者 "python3.8",那么在后面你就需要用 "python" 或 "python3.8" 来代替 python3 运行程序。同样的,执行 pip3 -V
来确认已经成功安装包管理软件 pip。
(1) 下载源码
在命令行使用 git 克隆项目并进入目录:
git clone https://github.com/zhayujie/chatgpt-on-wechat
cd 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 一键部署需要注册时间满半年的github账号,每月会提供5美金和最多500小时的免费额度。Railway部署仅适用于个人微信,暂不支持企业微信和公众号的部署,且插件配置不方便,适合快速体验。
首先进入 Railway,使用github进行登录,点击 "Deploy Now" 按钮,授权你的 github 账号,然后进行配置:
其中有两个配置是必填的,其他的暂时都可以暂时先用默认值,一个是 open_ai_api_key
, 这个正是我们上一步在官网注册的apiKey, group_name_white_list
则指定了哪些群聊需要开启自动回复,你可以配置为 ["ALL_GROUP"]
来开启所有群聊,其他配置参考 配置说明。
部署完成后,日志中会输出二维码,使用手机微信扫码登录,登录成功后你的账号就变成一个ChatGPT机器人了。
如果后续需要修改或添加配置,可在 Variables
中进行更新:
然后执行 "restart" 即可使配置生效:
三、使用
成功运行之后日志中会输出 "Start auto replying",这表示你用于扫码登录的账号已经变身为机器人了,让你的好友给你发消息 或在群聊@你 都会触发自动回复,效果如下图: