Web Wechat Bot

刚学的时候写的狗屎 以后不维护了 「Web Wechat Bot」是一个基于Wechaty、可通过网页远程登录管理、可接入讯飞星火、ChatGPT、通义千问等大语言模型的微信聊天机器人,使用微信网页版协议。你可以通过网页登录微信、设置回复规则、配置API接口等。 ## 🖥主要技术构成 **前端主要技术栈** - Vue3 - Vue-router - ElementPlus **后端主要技术栈** - Node.js - Express - Wechaty - SQLite3 - websocket ## 💡项目文件结构 ``` WebWechatBot ├─ API │ ├─ ChatGPT.js │ ├─ tongyi.js │ └─ xunfei.js ├─ db │ └─ data.db ├─ public │ ├─ css │ ├─ js │ └─ index.html ├─ wechat │ ├─ avatar │ └─ main.js ├─ app.js ├─ config.js ├─ LICENSE ├─ package.json ├─ README.md └─ router.js ``` ## 💽Setup 本项目可在 Linux、MacOS、Windows 等系统上运行(在Linux服务器上可实现长期运行、远程控制管理) 此仓库包含已经编译好的前端页面,可不做更改直接使用。如果你想对前端页面进行更改,请前往:[https://github.com/Pchen0/Web-Wechat-Bot-Dashboard](https://github.com/Pchen0/Web-Wechat-Bot-Dashboard)。 #### 0.安装Node.js Wechaty要求Node.js版本高于10,如果你还没有安装Node.js 或者你的版本低于10, 请参考下面的内容安装最新版本的Node.js: [Node.js官网](https://nodejs.org/en/download/package-manager/) ***Linux*** **使用包管理器安装Node.js** 大多数Linux发行版都附带有包管理器,如APT(Debian、Ubuntu)、YUM(Fedora、CentOS)、DNF(Fedora)、Pacman(Arch Linux)等。你可以使用这些包管理器来安装Node.js。 1. **更新软件包索引**(这一步在某些系统上可能不需要,但是最好还是先执行): ```bash sudo apt update ``` 2. **安装Node.js**: 对于Debian和Ubuntu系统,可以使用APT包管理器: ```bash sudo apt install nodejs ``` 对于其他Linux发行版,可以使用相应的包管理器来安装Node.js。下面提供了几种常见发行版的安装方式: CentOS/RHEL 1. 更新软件包索引: ```bash sudo yum update ``` 或者 ```bash sudo dnf update ``` 2. 安装Node.js: ```bash sudo yum install nodejs ``` 或者 ```bash sudo dnf install nodejs ``` 无论你使用哪种Linux发行版,通过包管理器安装Node.js通常是最简单、最可靠的方法。 3. **验证安装**: 安装完成后,你可以通过以下命令验证Node.js和npm(Node.js软件包管理器)是否已正确安装: ```bash node -v npm -v ``` 这将显示已安装的Node.js和npm的版本信息。 ***Windows*** 在Windows上安装Node.js最简单的方法是使用Node.js的Windows安装程序。 1. **下载安装程序**: 访问 [Node.js官网](https://nodejs.org/en/download/),下载适用于Windows的Node.js安装程序(.msi文件)。 2. **运行安装程序**: 打开下载的.msi文件以启动安装向导,并按照提示进行安装。你可以接受默认设置,也可以自定义安装选项。 3. **验证安装**: 安装完成后,打开命令提示符,然后输入以下命令来验证Node.js和npm是否已正确安装: ```bash node -v npm -v ``` 这将显示已安装的Node.js和npm的版本信息。 #### 1.克隆远程库 ``` git clone https://github.com/Pchen0/Web-Wechat-Bot.git ``` #### 2.安装依赖 首先进入项目目录 ``` cd Web-Wechat-Bot ``` 安装依赖 ``` npm install ``` #### 3.运行服务器 ``` node app.js ``` 运行之前可在config.js文件中修改项目运行的端口,记得在防火墙或安全组放行端口 ```js module.exports = { port: 8080 //默认在8080端口上运行 } ``` #### 4.配置 通过你的ip地址+端口号进入到机器人的管理界面,默认用户名为`admin`,密码`123456`。 你可在后文的配置填写一节中查看关于配置填写的详细介绍。 ![](./images/1.png) ![](./images/2.png) ## 📦配置填写 在API设置页面中填入你的接口地址、API Key、模型名称等,你可以自由选择讯飞星火、ChatGPT、通义千问等模型。 ### API接口设置填写说明 #### 讯飞星火 **官方文档:** [https://www.xfyun.cn/doc/spark/Web.html](https://www.xfyun.cn/doc/spark/Web.html) **API接口地址:** 3.5版本:ws://spark-api.xf-yun.com/v3.5/chat, 3.0版本:ws://spark-api.xf-yun.com/v3.1/chat, 2.0版本:ws://spark-api.xf-yun.com/v2.1/chat, 1.5版本:ws://spark-api.xf-yun.com/v1.1/chat, 讯飞助手的接口地址在助手创作中心获取。 **APIKEY、APISecret、APPID:**在讯飞开放平台创建应用后即可获取,注意不要混淆APIKEY和APISecret。 ![](./images/4.jpg) **模型版本:** 选择你所使用的模型版本,请与API接口地址对应的版本一致。 general指向V1.5版本; generalv2指向V2版本; generalv3指向V3版本; generalv3.5指向V3.5版本。 **最大token数:** 模型回答的tokens的最大长度。V1.5取值为[1,4096] V2.0、V3.0和V3.5取值为[1,8192],默认为2048。 **温度:** 核采样阈值。用于决定结果随机性,取值越高随机性越强即相同的问题得到的不同答案的可能性越高。取值范围 (0,1] ,默认值0.5。 #### ChatGPT **注:** 兼容openai接口的API可填入ChatGPT的配置中。 **官方文档:** [https://platform.openai.com/docs/](https://platform.openai.com/docs/) **APIKey:** 在控制台获取。你的APIKey格式应该为:sk-xxxxxxxxxxxxxxxxxxxx。 **app_code:** 该项专为一些兼容openai接口的平台设置,可忽略。 **模型名称:** 填写你想使用的模型的名称,如gpt-3.5-turbo。 **温度:** 核采样阈值。用于决定结果随机性,取值越高随机性越强即相同的问题得到的不同答案的可能性越高。取值范围 (0,1] ,默认值为0。如果设置为 0,模型将使用[对数概率](https://en.wikipedia.org/wiki/Log_probability)自动升高温度,直到达到特定阈值。 **最大token数:** 模型回答的tokens的最大长度。 **预设内容:** 填写你对机器人的设定和要求,填写越详细效果越好,但会增加token的使用量。 #### 通义千问 **API接口地址:** 如https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation **APIKey:** 请参考https://help.aliyun.com/zh/dashscope/developer-reference/activate-dashscope-and-create-an-api-key **温度:** 用于控制随机性和多样性的程度。取值范围:[0, 2),系统默认值0.85。 **模型名称:** 填写你所使用的模型名称,如qwen-turbo、qwen-max、qwen-max-longcontext等。 **最大token:** 用于限制模型生成token的数量,max_tokens设置的是生成上限,并不表示一定会生成这么多的token数量。其中qwen-turbo 最大值和默认值为1500, qwen-max、qwen-max-1201 、qwen-max-longcontext 和 qwen-plus最大值和默认值均为2000。 **预设内容:** 填写你对机器人的设定和要求,填写越详细效果越好,但会增加token的使用量。 ### WechatBot设置填写说明 **选择模型:** 选择你想使用的模型,支持讯飞星火、ChatGPT、通义千问。请预先在API接口设置页面填写好你的配置信息。 **自动回复前缀:**填写的文字会被加到机器人回复消息的最前面,可使用\n换行。能用于区分机器人和真人。群聊和私聊通用。 **自动回复后缀:** 填写的文字会被加到机器人回复消息的最后面,可使用\n换行。能用于区分机器人和真人。群聊和私聊通用。 **是否开启私聊自动回复:** 关闭后将不回复所有私聊消息。 **私聊黑名单:** 填写好友的微信昵称(不是备注),多个名称用英文逗号(,)分隔,系统不会回复被填入黑名单的好友的消息。 **群聊关键字回复:** 系统会自动回复含有关键词的群聊消息。多个关键词用英文逗号分隔。 **群聊白名单:** 当群聊白名单不为空时,机器人只会回复在白名单中的群聊消息;当群聊白名单为空时,机器人会回复所有群聊的消息。 **是否在被@时回复:** 开启后机器人会在自己被@后进行回复。 至此,本项目的搭建已接近尾声。进入微信登录页面,扫描二维码登录微信,登录成功后你的微信机器人就创建完成了。 ![](./images/3.png) 同时,你也可以进入对话测试页面与大语言模型进行对话,此页面使用的模型、前缀、后缀等与WechatBot设置中的相同。