前言
在2023年,Chat GPT成为了热门话题,许多人都想要拥有一个属于自己的聊天机器人。本文将手把手教大家搭建自己的聊天机器人,支持微信、企业微信、公众号、飞书接入,支持群聊。
本项目为 Github 开源项目 chatgpt-on-wechat ,目前将近20k stars!
效果如下图所示:
项目文档的部署方式有四种:Docker部署、本地运行、源码部署、RailWay 部署。
本文选择使用 Docker 进行部署,并接入个人微信,非常简单。
本文不涉及企微、公众号等接入,需要的话可以看官方的文档
准备工作
部署一个聊天机器人需要准备:
一台服务器
openai API Key
一个实名过的微信小号(最好是小号,因为想要一个微信号成为机器人,相当于一直在电脑端登录着,自己就不能再使用电脑登陆,否则运行在 chatgpt-on-wechat 上的微信号会被挤下去)
使用 Docker Compose 部署
安装 Docker
如果有旧版本 Docker,想重新安装,需要先卸载
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
安装相关依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
添加 Docker 软件源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
国内服务器可以使用阿里镜像源:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装 Docker
sudo yum install -y docker-ce
启动 Docker 服务
sudo systemctl start docker
设置开启自动启动 Docker 服务
sudo systemctl enable docker
测试是否安装成功,安装成功会显示详细信息
docker version
安装 Docker Compose
执行以下命令下载 Docker Compose 的二进制文件:
sudo curl -SL https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
测试是否安装成功
docker-compose --version
下载 docker-compose.yml 文件
# 创建目录,路径按需修改
mkdir -p /opt/chatgpt-on-wechat
cd /opt/chatgpt-on-wechat/
# 下载 docker-compose.yml 文件
wget https://open-1317903499.cos.ap-guangzhou.myqcloud.com/docker-compose.yml
修改 docker-compose.yml 文件
具体配置项说明可以参考项目文档:https://docs.link-ai.tech/cow/quick-start/config
这里提供我自己的 yml 文件供大家参考。
version: '2.0'
services:
chatgpt-on-wechat:
image: zhayujie/chatgpt-on-wechat
container_name: chatgpt-on-wechat
security_opt:
- seccomp:unconfined
environment:
OPEN_AI_API_KEY: 'sk-xxxxxxxxxxxxxxxxxxxxxxxxx' # 按需修改API Key
OPEN_AI_API_BASE: 'https://api.openai.com/v1' # 按需修改URL
MODEL: 'gpt-3.5-turbo'
PROXY: ''
SINGLE_CHAT_PREFIX: '["bot", "@bot"]'
SINGLE_CHAT_REPLY_PREFIX: '"[bot] "'
GROUP_CHAT_PREFIX: '["@bot"]'
GROUP_NAME_WHITE_LIST: '["ALL_GROUP"]'
IMAGE_CREATE_PREFIX: '["画", "看", "找"]'
CONVERSATION_MAX_TOKENS: 1000
SPEECH_RECOGNITION: 'False'
CHARACTER_DESC: '你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。'
EXPIRES_IN_SECONDS: 3600
USE_GLOBAL_PLUGIN_CONFIG: 'True'
USE_LINKAI: 'False'
LINKAI_API_KEY: ''
LINKAI_APP_CODE: ''
部分配置说明:
OPEN_AI_API_KEY
:填入自己的 openai API Key
OPEN_AI_API_BASE
是https://api.openai.com/v1
的话需要保证服务器能科学上网,否则应该使用中转接口。SINGLE_CHAT_PREFIX
:私聊机器人时,唤醒机器人的前缀。也就是说,需要使用bot 你是谁?
或@bot 你是谁
,才会触发机器人回复。SINGLE_CHAT_REPLY_PREFIX
:机器人私聊回复的前缀。机器人的回复会加上[bot]
前缀,与真人区分开。GROUP_NAME_WHITE_LIST
:群聊白名单,在白名单中的群,才会触发机器人。如果是所有群聊都可以,则使用["ALL_GROUP"]
,否则应该是:["群名称1", "群名称2"]
目前我主要修改的配置就这些,其余配置按需修改,可以参考文档。
启动容器
执行以下命令,启动容器:
cd /opt/chatgpt-on-webchat/
docker-compose up -d
查看日志:
docker-compose logs -f
日志中会出现二维码,使用准备好的微信小号扫码登陆。
小号需要实名认证,否则登录会报错
出现 Start auto replying
即代表部署完成,可以发送消息测试。
小技巧
如何退出手机微信小号,而登录在 chatgpt-on-wechat 的微信不自动退出?
我部署完成后遇到一个问题:
登录的时候,手机先登录上微信小号,然后扫描日志中的二维码登录(相当于chatgpt-on-wechat是电脑端),微信号在 chatgpt-on-wechat 登录上之后,我手机上小号肯定是会退出的,因为这不是我的常用号。
但是手机一退出小号微信,chatgpt-on-wechat 上的也会被自动退出 (微信这个机制就很奇葩),如何保证手机退出微信后,chatgpt-on-wechat 上的微信不会退出呢?
解决方法也很简单,就是在手机退出登录的时候,先把 WIFI 和 数据流量 都关闭,在无网络的环境下,点击退出登录,等系统转圈,一会就会退出成功,但此时 chatgpt-on-wechat 上登录的微信是不会被自动退出的。
为什么要使用微信小号?
很简单,因为登录在 chatgpt-on-wechat 上的微信,等同于登录在电脑端。 如果你的个人微信,想作为机器人,那么就需要登录在 chatgpt-on-wechat 上。如果你又需要使用电脑微信的时候,chatgpt-on-wechat 上的微信肯定会被挤下去呀!
评论区