2024-03-11
分类:开发笔记
阅读(159) 评论(0)
![](https://img1.51tbox.com/static/2024-03-11/col/591e8dc5987e94326b2f1eea0670562d/9f02a5fc31b049e7b17960b7197435a9.jpg)
**本文基于网友间的相互学习,是一群搞机爱好者共同探索出来的成果,笔者稍加整理而来。**
在正式开始前,笔者先简单说说我们要做的这个东西到底是什么,以及能干什么和不能干什么。
* 是什么:就是使用一个开源项目+星火大模型(也可以是其他的)搭建一个机器人服务,这个服务可以对接WX(当然也可以对接其他的 IM 平台,大同小异)
* 能干什么:接入到 WX 后,你可以与机器人私聊处感情,也可以把它拉到群里一起嗨
* 不能干什么:大模型本质是没有智力的,不要相信所谓的智能机器人,你可以跟它胡侃,但如果你信他的话你就等着崩吧!
### 1️⃣ 准备工作
前文也提到过,我们是使用星火大模型来作为对话模型的,使用它完全是因为现在可以领免费大礼包,并不是因为它好。如果你舍得花钱,你完全可以去买其他的大模型产品,仅此而已。
所以,开始前你需要稍微准备一下:
* 建议准备一个WX小号,并且小号完成**实名认证**(如果没有小号的话,使用这个机器人的时候你就没办法在PC端使用WX)
* 到星火官网注册一个账号(某度直接搜讯飞星火就行)
* 完成实名认证(不是实时的,认证可能需要等一会才能完成)
* 完成实名认证后,购买免费包,个人可获得 200W 个 Token 额度,企业可以获得 500W个 Token 额度(目前来说,后续怎么样咱不知道)
* 创建一个应用,应用的类型建议选:应用-教育学习-专业知识,并复制**APPID、APISecret、APIKey**,如下图箭头所指:
![](https://img1.51tbox.com/static/2024-03-11/col/591e8dc5987e94326b2f1eea0670562d/65e09b3d1d6047e0b886fc25c8c668cd.jpg)
> 多说一嘴,如果你发现**APPID**是个纯数字,那么恭喜你走大运了,你的这个应用废了(不能正常使用)!!!就算你重新创建一个应用,也没有免费包了,你只能重新注册一个新账号。
### 2️⃣ 开始搭建
这个机器人是基于开源项目`chatgpt-on-wechat`搭建的,该项目非常火,支持源码部署和Docker部署。老规矩,笔者才不会去折腾本地环境呢!
**1、设置环境变量**
这里只准备了Docker部署方式,而且是docker-compose,直接复制yml中的内容,然后把相关环境变量的值改成你自己的就行了。compose.yml 的内容如下:
```
version: '3.9'
services:
wechat-bot:
image: zhayujie/chatgpt-on-wechat:latest
container_name: wechat-bot
network_mode: bridge
security_opt:
- seccomp:unconfined
environment:
TZ: Asia/Shanghai
MODEL: 'xunfei'
CHANNEL_TYPE: 'wx'
xunfei_app_id: "" # 讯飞应用ID
xunfei_api_key: "" # 讯飞 API key
xunfei_api_secret: "" # 讯飞 API secret
PROXY: ''
HOT_RELOAD: true
SINGLE_CHAT_PREFIX: '["bot", "@bot"]'
SINGLE_CHAT_REPLY_PREFIX: '"[bot] "'
GROUP_CHAT_PREFIX: '["bot"]'
GROUP_NAME_WHITE_LIST: '["ALL_GROUP"]'
GROUP_SPEECH_RECOGNITION: false
IMAGE_CREATE_PREFIX: '["画", "看", "找"]'
TEXT_TO_IMAGE: 'dall-e-3'
CONVERSATION_MAX_TOKENS: 5000
SPEECH_RECOGNITION: true
CHARACTER_DESC: '你是一个对话机器人精灵, 基于一个大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。'
SUBSCRIBE_MSG: '感谢您的关注!\n这里是机器人精灵,可以自由对话。\n支持语音对话。\n支持图片输入。\n支持图片输出,画字开头的消息将按要求创作图片。\n支持tool、角色扮演和文字冒险等丰富的插件。\n输入{trigger_prefix}#help 查看详细指令。'
EXPIRES_IN_SECONDS: 3600000
USE_GLOBAL_PLUGIN_CONFIG: 'True'
USE_LINKAI: false
```
> 环境变量说明,以下仅介绍需要修改的变量,其他保持不变即可。
* `MODEL: 'xunfei'`,表示使用讯飞星火大模型,还支持 gpt-4, gpt-4-turbo, wenxin, gpt-3.5-turbo, qwen等
* `CHANNEL_TYPE: 'wx'`,表示对接的平台是WX,还支持支持:wxy,terminal,wechatmp,wechatmp_service,wechatcom_app等
* `xunfei_app_id: ""`, 上文提到的创建的应用APPID
* `xunfei_api_key: ""` ,上文提到的创建的应用APIKey
* `xunfei_api_secret: ""`,上文提到的创建的应用APISecret
* `HOT_RELOAD: true`,是否开启热重载,建议开启
* `SINGLE_CHAT_PREFIX: '["bot", "@bot"]'`,私聊时触发机器人回复的唤醒词,以设置的词开头发送的消息,机器人就会回复
* `SINGLE_CHAT_REPLY_PREFIX: '"[bot] "'`,私聊时机器人回复时自动增加的前缀
* `GROUP_CHAT_PREFIX: '["bot"]'`,群聊时触发机器人回复的唤醒词,以设置的词开头发送的消息,机器人就会回复
* `GROUP_NAME_WHITE_LIST: '["ChatGPT测试群"]'`,开启自动回复的群名称列表,不限制的话就填"ALL_GROUP"
使用docker-compose启动容器:
```
docker-compose up -d
```
**2、扫码登录**
等待容器启动完成,使用下面命令查看容器的日志。
```
# wechat-bot改成你自己的容器名字
docker logs -f wechat-bot
```
打开docker日志就能看到登录微信的二维码了,拿出你的微信扫码登录即可。
![](https://img1.51tbox.com/static/2024-03-11/col/591e8dc5987e94326b2f1eea0670562d/dfdad5344a2b4771a4733a59c0d79ea2.jpg)
### 3️⃣ 嗨起来吧
小号登录以后,你就可以直接与机器人聊天了。
**1、私聊**
使用环境变量中设置的私聊唤醒词开头发送信息,就会触发机器人自动回复你。
![](https://img1.51tbox.com/static/2024-03-11/col/591e8dc5987e94326b2f1eea0670562d/ca813ba692ab49e6bbc9f4edeaeff8aa.jpg)
**2、群聊**
使用环境变量中设置的群聊唤醒词开头或直接@对方发送信息,就会触发机器人自动回复你。
![](https://img1.51tbox.com/static/2024-03-11/col/591e8dc5987e94326b2f1eea0670562d/097cf562cd134eeeb8eead033427a84b.jpg)
> 以上就是如何基于开源项目配合免费大模型礼包搭建一个WX机器人的简要过程,不算难,但略显繁琐,只要细心+耐心就能整出来,祝你成功。
> 原创不易,如果觉得此文对你有帮助,不妨点赞+收藏+关注,你的鼓励是我持续创作的动力!
![](https://img1.51tbox.com/static/2024-03-11/col/591e8dc5987e94326b2f1eea0670562d/89b360d1e44a423ea6a33754df39de24.jpg)
众生皆苦,唯有自渡!