大家好, 我是来自重庆的越山,AI破局俱乐部合伙人, 前外企大数据专家, 持续深耕AI应用落地,专注于AI智能体。
本篇扣子Coze案例来自于我们最近出的“AI智能体从入门到变现”专栏,一周时间已超2800订阅,感兴趣的小伙伴可在文末订阅。
小册陪伴群里有个 AI助理,每次有人进群,它都会发一句欢迎语,你要是艾特它(@AI助理)并提问,它也会回答你。 这个AI助理的微信号,这时就是登陆为微信机器人,后端对接了AI,可以是Coze bot,也可以是其它智能体或AI对话服务。
扣子Coze机器人可以发布到微信小程序 ,微信公众号等,但更多人希望能将Coze bot接入个人微信,今天就讲讲怎么实现。
注意:腾讯个人微信没有官方的公开接口,接入第三方服务。所有个人微信机器人都有封号的风险,类似银行都有倒闭的风险一样。本文只作技术实现讲解,请合法合规使用。
微信机器人实现方式有很多种,本着小白也能上手,最简单,风险相对更小的原则,本文将介绍利用Docker部署ChatGPT-on-Wechat (CoW)和Coze2OpenAI的方式,实现将Coze Bot接入到微信群聊中。
前置准备
一台可联网的电脑上安装Docker。
名词解释:Docker就是软件的集装箱,或者是快递盒。它把一个应用程序和它需要的所有东西打包在一起。这个"包"可以在任何装有Docker的电脑上运行。不用担心环境不同带来的问题。简而言之,Docker让软件的传输和使用变得像收发快递一样简单方便。
Windows上安装Docker步骤:
1. 下载Docker Desktop
从Docker官网 (https://docs.docker.com/engine/install/) 下载对应平台(Linux, Windows, Mac) 安装包。
如果你的网络不能访问Docker官网,也可以从百度网盘下载 链接: https://pan.baidu.com/s/1yAUMCcWpXZlCajR_YSnA8A?pwd=43uv 提取码: 43uv
2. 安装Docker Desktop
1. 双击 Docker Desktop Installer.exe 运行安装程序。
2. 当出现提示时,确保在 Configuration 页面上选择 Use WSL 2而不是 Hyper-V 选项,这取决于您对后端的选择。
3. 如果您的系统只支持这两个选项中的一个,您将无法选择使用哪个后端。
4. 按照安装向导上的说明授权安装程序并继续安装。
5. 安装成功后,选择 Close 以完成安装过程。
6. 如果管理员帐户与用户帐户不同,则必须将该用户添加到 docker-users 组。以管理员身份运行计算机管理,并导航到本地用户和组 > 组 > docker-Users。右击可将用户添加到组中。签出并重新签入以使更改生效。
3. 启动Docker Desktop
安装完成后,您可以通过桌面快捷方式或在开始菜单中搜索“Docker Desktop”来启动Docker。
4. 配置镜像加速器(可选)
为了提高Docker的下载速度,您可以配置镜像加速器。在Docker Desktop的设置-Docker Engine中,添加以下镜像源:
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
]
完成这些步骤后,您就可以在Windows上使用Docker了。
参考
https://www.runoob.com/docker/windows-docker-install.html。
Linux服务器上安装Docker步骤
你也可以在一台Linux服务器上运行微信机器人。
既然开始使用Linux服务器了,相信你可以通过阅读官方文档来安装Docker了。
参考 https://docs.docker.com/engine/install/ubuntu/
或者更简单的方式,运行以下命令,静待安装完毕
curl -sSL https://get.daocloud.io/docker | sh
扣子Coze上的准备
获取Coze bot ID
在个人空间创建或打开一个 bot,记录下bot_id。
在编排页面上,地址栏最后的那一串 7 开头的数字,这就是 bot_id。
这里我简单创建了一个模仿星爷的bot,提示词是
你是喜剧大师周星星,像周星驰那样,善于运用夸张表情、幽默语言及独特肢体动作,展现丰富内在情感与深刻社会讽刺意味。
Coze bo和发布为API
点右上角“发布”,选择发布平台,勾选下面的“Bot as API”。
如果此选项是未授权,则点击右侧的“授权”,按提示进行操作。
添加个人访问令牌
点上面页面中的“配置”,或访问 https://www.coze.cn/open/oauth/pats, 点“添加新令牌”。
填完信息后,点“确定”,复制并记录下这里出现的令牌,以pat开头的一长串字符。
关掉此页面后就再也不能查看此令牌了。 如果忘记或者不再使用此令牌,可将其删除。
总之,我们要将bot发布为API,并记录下bot_id和个人令牌 (Access Token), 后面配置微信机器人时需要。
下载微信机器人软件包
下载docker-compose.yaml文件到Windows桌面。
下载地址
http://defaultbucket0.oss-cn-beijing.aliyuncs.com/webupload/docker-compose.yaml
也可以复制以下内容,打开记事本,粘贴并保存到桌面,文件名docker-compose.yaml
注意,请修改下面这几处的值
OPEN_AI_API_KEY: 填前面生成的Coze个人令牌, pat开头的那一串字符。
GROUP_CHAT_PREFIX:填你将要设置为机器人的微信在群里的昵称,比如@越山助手。 这表示群里人有艾特它的话,它才会回复。
BOT_ID: 填前面保存的Coze bot ID, 7开头的那一串数字。
SINGLE_CHAT_PREFIX: 设置触发机器人回复的聊天前缀。如果像下面代码中设置为空的话,则私聊的每条对话都会回复;
GROUP_CHAT_PREFIX: 设置群聊中触发机器人回复的聊天前缀。一般是登陆微信的昵称,这样的效果是群聊中只有@你的消息机器人才会回复。
GROUP_NAME_WHITE_LIST: 设置机器人在哪些群聊中会回复。如果是ALL_GROUP,则是所有群聊中都要回复。
至于其它变量的说明,可以参阅CoW项目文档 https://github.com/zhayujie/chatgpt-on-wechat
version: "1"
services:
cow:
image: zhayujie/chatgpt-on-wechat
container_name: cow
restart: always
security_opt:
- seccomp:unconfined
environment:
OPEN_AI_API_KEY: "pat_xxx" # 这里填写你的 Coze API 令牌
MODEL: "" # 这里留空即可
OPEN_AI_API_BASE: "http://coze2openai:3000/v1" # 这里直接用这个地址就可以了
SINGLE_CHAT_PREFIX: '[""]'
SINGLE_CHAT_REPLY_PREFIX: ''
GROUP_CHAT_PREFIX: '["@越山助手"]'
GROUP_NAME_WHITE_LIST: '["ALL_GROUP","测试群"]' ## ALL_GROUP表示所有群都可回复,测试群表示只在测试群会回复
IMAGE_CREATE_PREFIX: '["56XXXX"]'
CONVERSATION_MAX_TOKENS: 1000
SPEECH_RECOGNITION: "False"
CHARACTER_DESC: "你是基于大语言模型的AI智能助手,旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。"
EXPIRES_IN_SECONDS: 3600
USE_GLOBAL_PLUGIN_CONFIG: "False"
USE_LINKAI: "False"
DEBUG: "False"
coze2openai:
image: yahasun/coze2openai:latest
container_name: coze2openai
restart: always
environment:
- BOT_ID=7402465989432115254 # 这里填写你的 Coze AI Bot 的 Bot ID
- COZE_API_BASE=api.coze.cn # 国外版就填 'api.coze.com',国内版就填 'api.coze.cn'
按Win+R键,在跳出的框中输入cmd, 然后回车,打开命令行窗口。
然后运行以下两条命令。它会拉取所需要的docker 镜像 (运行微信机器人需要的软件包)。
cd Desktop
docker compose pull
运行以下命令,查看已拉取到本地的docker 镜像。
docker images|findstr chatgpt
启动微信机器人
启动微信机器人就简单了,一条命令将docker 容器跑起来。在docker-compose.yaml所在的目录,也就是桌面路径下,运行以下命令,很快启动完成。
docker compose up -d
运行以下命令,查看CoW 容器的日志,里面有二维码。用你想设置为机器人的微信号扫码登陆。
docker logs -f cow ##查看日志
当看到类似的提示时,表示微信机器人已就绪。
Wechat login success, user_id: @39cxxx, nickname: <微信昵称>
命令行窗口可以关闭,或者按Ctrl + C, 退出日志查看。
我们来测试一下,微信机器人有正常回复。
群聊里艾特它也会给反应。
你也可在Docker Desktop软件管理界面上查看容器日志(扫码),点开cow容器,就能看到运行日志。
如果配置变量更改了,要重启,可先停止,再启动,需要重新扫码登陆。
docker compose down ##停止
docker compose up -d ##启动
docker logs -f cow
微信机器人的插件
CoW项目支持一些预置插件,比如多角色切换、文字冒险、敏感词过滤、聊天记录总结、文档总结和对话、联网搜索等插件。比如群聊里新人加入,机器人会主动打招呼,就是用到了hello 插件。
hello 插件默认是开启的,如果要关闭,可以发送消息 #disablep hello 。 这类管理命令,需要先验证管理员身份,而管理员口令可以从启动日志中查看。
保存日志到log.txt文件中
docker logs cow > log.txt
在log.txt文件中找“临时口令”:
[INFO][2024-08-14 07:21:37][godcmd.py:194] - [Godcmd] 因未设置口令,本次的临时口令为3258。
然后通过管理员命令#auth 3258,#disablep hello来禁用 hello 插件。
写在最后
本文用到的两个开源项目:
CoW: https://github.com/zhayujie/chatgpt-on-wechat
Coze2Openai: https://github.com/fatwang2/coze2openai
注意:
PC端和机器人登陆是互斥的,只能同时登陆一处。
是否会封号,主要跟使用行为和内容有关。比如大量加人,大量发消息骚扰用户,发送违规内容容易封。
限于篇幅,讲得比较简单,关键还是要动手去做。在实践中学,不断优化和完善。欢迎多交流!可加v yahai00
在我们的智能体实战营中,有专门的课程讲解基于微信机器人的社群运营。