「Web Wechat Bot」是一个基于Wechaty、可通过网页远程登录管理、可接入讯飞星火、ChatGPT、通义千问等大语言模型的微信聊天机器人,使用微信网页版协议。你可以通过网页登录微信、设置回复规则、配置API接口等。

Pchen0 d49d24e97a UPDATE "README.md" 5 months ago
API 0b7063feb7 修复了一些bug 11 months ago
db 0b7063feb7 修复了一些bug 11 months ago
images d5d6d988fe update README.md 11 months ago
public 0b7063feb7 修复了一些bug 11 months ago
wechat 0b7063feb7 修复了一些bug 11 months ago
LICENSE 6f7fad27d4 add LICENSE. 11 months ago
README.md d49d24e97a UPDATE "README.md" 5 months ago
app.js 891a419692 提升安全性 11 months ago
config.js ad198d0d36 Update config.js 11 months ago
package.json 891a419692 提升安全性 11 months ago
router.js 0b7063feb7 修复了一些bug 11 months ago

README.md

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

0.安装Node.js

Wechaty要求Node.js版本高于10,如果你还没有安装Node.js 或者你的版本低于10, 请参考下面的内容安装最新版本的Node.js:

Node.js官网

Linux

使用包管理器安装Node.js

大多数Linux发行版都附带有包管理器,如APT(Debian、Ubuntu)、YUM(Fedora、CentOS)、DNF(Fedora)、Pacman(Arch Linux)等。你可以使用这些包管理器来安装Node.js。

  1. 更新软件包索引(这一步在某些系统上可能不需要,但是最好还是先执行):

    sudo apt update
    
  2. 安装Node.js

对于Debian和Ubuntu系统,可以使用APT包管理器:

   sudo apt install nodejs

对于其他Linux发行版,可以使用相应的包管理器来安装Node.js。下面提供了几种常见发行版的安装方式:

CentOS/RHEL

  1. 更新软件包索引:

       sudo yum update
    

    或者

       sudo dnf update
    
  2. 安装Node.js:

       sudo yum install nodejs
    

    或者

       sudo dnf install nodejs
    

无论你使用哪种Linux发行版,通过包管理器安装Node.js通常是最简单、最可靠的方法。

  1. 验证安装

安装完成后,你可以通过以下命令验证Node.js和npm(Node.js软件包管理器)是否已正确安装:

   node -v
   npm -v

这将显示已安装的Node.js和npm的版本信息。

Windows

在Windows上安装Node.js最简单的方法是使用Node.js的Windows安装程序。

  1. 下载安装程序

访问 Node.js官网,下载适用于Windows的Node.js安装程序(.msi文件)。

  1. 运行安装程序

打开下载的.msi文件以启动安装向导,并按照提示进行安装。你可以接受默认设置,也可以自定义安装选项。

  1. 验证安装

安装完成后,打开命令提示符,然后输入以下命令来验证Node.js和npm是否已正确安装:

   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文件中修改项目运行的端口,记得在防火墙或安全组放行端口

module.exports = {
    port: 8080	//默认在8080端口上运行
}

4.配置

通过你的ip地址+端口号进入到机器人的管理界面,默认用户名为admin,密码123456

你可在后文的配置填写一节中查看关于配置填写的详细介绍。

📦配置填写

在API设置页面中填入你的接口地址、API Key、模型名称等,你可以自由选择讯飞星火、ChatGPT、通义千问等模型。

API接口设置填写说明

讯飞星火

官方文档: 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。

模型版本: 选择你所使用的模型版本,请与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/

APIKey: 在控制台获取。你的APIKey格式应该为:sk-xxxxxxxxxxxxxxxxxxxx。

app_code: 该项专为一些兼容openai接口的平台设置,可忽略。

模型名称: 填写你想使用的模型的名称,如gpt-3.5-turbo。

温度: 核采样阈值。用于决定结果随机性,取值越高随机性越强即相同的问题得到的不同答案的可能性越高。取值范围 (0,1] ,默认值为0。如果设置为 0,模型将使用对数概率自动升高温度,直到达到特定阈值。

最大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换行。能用于区分机器人和真人。群聊和私聊通用。

是否开启私聊自动回复: 关闭后将不回复所有私聊消息。

私聊黑名单: 填写好友的微信昵称(不是备注),多个名称用英文逗号(,)分隔,系统不会回复被填入黑名单的好友的消息。

群聊关键字回复: 系统会自动回复含有关键词的群聊消息。多个关键词用英文逗号分隔。

群聊白名单: 当群聊白名单不为空时,机器人只会回复在白名单中的群聊消息;当群聊白名单为空时,机器人会回复所有群聊的消息。

是否在被@时回复: 开启后机器人会在自己被@后进行回复。

至此,本项目的搭建已接近尾声。进入微信登录页面,扫描二维码登录微信,登录成功后你的微信机器人就创建完成了。

同时,你也可以进入对话测试页面与大语言模型进行对话,此页面使用的模型、前缀、后缀等与WechatBot设置中的相同。