chatgpt-on-wechat:微信公众号AI自动回复
前言
这段时间闲得无聊于是就到处找github项目,终于让我找到一个能够使用在微信公众号上面的项目,名为chatgpt-on-wechat,它是基于GPT3.5/GPT4.0/Claude/文心一言/讯飞星火/LinkAI等AI平台的一款能够支持个人微信、公众号、企业微信、飞书部署,能处理文本、语音和图片,访问操作系统和互联网和支持基于知识库定制的专属机器人。
功能
多端部署: 可接入 微信公众号、企业微信应用、钉钉、飞书
基础对话: 私聊及群聊的消息智能回复,支持多轮会话上下文记忆,支持 GPT-3, GPT-3.5, GPT-4, 文心一言模型
语音识别: 可识别语音消息,通过文字或语音回复,支持 azure, baidu, google, openai 等多种语音模型
图片生成: 支持图片生成 和 图生图(如照片修复),可选择 Dell-E, stable diffusion, replicate, Midjourney 模型
丰富插件: 支持个性化插件扩展,已实现多角色切换、文字冒险、敏感词过滤、聊天记录总结等插件
Tool工具: 与操作系统和互联网交互,支持最新信息搜索、数学计算、天气和资讯查询、网页总结,基于 chatgpt-tool-hub 实现
知识库: 通过上传知识库文件自定义专属机器人,可作为数字分身、领域知识库、智能客服使用,基于 LinkAI 实现
部署方式
运行方式 | 需要的资源 | 优势 | 劣势 |
---|---|---|---|
Docker部署 | 服务器 + docker环境 | 不用关心python环境和依赖 | 插件配置稍麻烦 |
本地运行 | 个人机器 + 本地代理 + python环境 | 方便本地代码调试 | 不适合长时间稳定运行 |
服务器部署 | 服务器 + python环境 | 方便配置和源码修改、稳定运行 | 需要简单的linux基础 |
Railway部署 | 一个超过半年的github账号 | 一键部署 | 免费额度有限,插件等高级功能使用不便 |
docker
和服务器
,暂不支持本地
和Railway
部署教程
本教程只适用于服务器部署,其他部署请看项目文档-程序部署
可以公众号搜索:新锐博客
进行体验,欢迎大家关注哟!~
1.准备一个微信公众号(订阅号),一台linux服务器
2.前往讯飞星火认知大模型
进行注册以及实名认证,可以免费购买一年两百万的Token数。
3.记下APPID、APISecret、APIKey
的值,后面需要用到。(请妥善保存这些值,不可变更,请勿泄露。)
4.检查你的服务器是否安装了python 3.7.1~3.9.X
,推荐3.8。如果安装了请跳过5-6步骤。
5.安装python环境,打开finalshell
等连接工具,按照以下命令逐步进行
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel
#安装依赖包
yum install wget
#安装wget
wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgz
#下载源码包
tar -zxvf Python-3.8.1.tgz
#解压压缩包
cd Python-3.8.1
#进入文件夹
./configure prefix=/usr/local/python3
#配置安装位置
make && make install
#安装make
6.配置软链接
sudo rm /usr/bin/python3
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3
#添加python3的软链接
7.进入宝塔创建站点,然后在站点设置的 反向代理 进行添加你所需要映射的端口,写法为:127.0.0.1:端口号(记住这个端口号)
8.在FinalShell
上,进入该站点的根目录处,也就是刚刚创建的网站目录,比如:/www/wwwroot/ai
。接着逐步执行下方内容。
cd /www/wwwroot/ai
#进入站点根目录
git clone https://github.com/zhayujie/chatgpt-on-wechat
#拉取项目源码
pip3 install --upgrade pip
#更新下pip版本
9.进入后拉取项目代码,再到宝塔的站点文件处将拉取到的 chatgpt-on-wechat
文件夹内所有的文件移动到站点的根目录。
10.按照如下命令进行
pip3 install -r requirements.txt
pip3 install -r requirements-optional.txt
#安装依赖
11.登录微信公众号,找到设置与开发里的基本配置
选项,进行开通后,会得到开发者的 AppID
和 AppSecret
,请牢记AppSecret
(只出现一次之后需要重置才会再次看到)以便后续使用。
12.在宝塔内,站点根目录处新建 config.json
文件,配置好下边的东西,放进去。
{
"open_ai_api_key": "没用,但是别删",
"model": "xunfei",
"xunfei_app_id": "星火APPID",
"xunfei_api_secret": "星火APISecret",
"xunfei_api_key": "星火APIKey",
"channel_type": "wechatmp",
"wechatmp_app_id": "公众号开发者AppID" ,
"wechatmp_app_secret": "公众号开发者AppSecret" ,
"wechatmp_aes_key": "",
"wechatmp_token": "meuicat",
"wechatmp_port": 2170,
"proxy": "",
"hot_reload": false,
"single_chat_prefix": [""],
"single_chat_reply_prefix": "🤖 MeuiCat Ai:nn",
"image_create_prefix": [
"画",
"看",
"找"
],
"speech_recognition": false,
"group_speech_recognition": false,
"voice_reply_voice": false,
"conversation_max_tokens": 2500,
"expires_in_seconds": 3600,
"character_desc": "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。",
"temperature": 0.8,
"top_p": 1,
"subscribe_msg": "哈喽~你终于来啦~n这里是新锐博客~n本公众号已接入Ai对话功能,注意文明发言哦~nn谢谢你长得好看,又关注我呀~n祝你天天开心~",
"use_linkai": false,
"linkai_api_key": "",
"linkai_app_code": ""
}
类型 | 释义 |
---|---|
model | 我这使用的是讯飞的星火大模型 xunfei ,可配置为:gpt-3.5-turbo 、gpt-3.5-turbo-16k 、gpt-4 、wenxin 、xunfei |
channel_type | 订阅号填:wechatmp ;而服务号则填:wechatmp_service ,但是要确保开通了客服接口 |
wechatmp_token | 设置一个你自己的秘钥,必须为英文或数字,长度为3-32字符。后面需要用到。 |
wechatmp_port | 此处填写第七步所填写的端口号,在不冲突的前提下,任意数值皆可,但注意需要在安全策略放行改端口。 |
13.当然,你也可以在 config.json 配置多个模型以便切换。
"open_ai_api_key": "",
#chatgtp
"baidu_wenxin_api_key": "",
"baidu_wenxin_secret_key": "",
#文心一言
14.在站点目录下执行以下命令启动运行。
touch nohup.out
nohup python3 app.py & tail -f nohup.out
#运行成功后,可以 Ctrl+C 退出日志
15.正常运行后,来到微信公众号后台的基本配置
选项,将你的服务器公网地址填进IP白名单
内。
16.接着在服务器配置
处修改配置,依次填写URL、Token、EncodingAESKey
,消息加解密方式
选择明文,提交即可。
类型 | 释义 |
---|---|
URL | 如果绑定了域名,那此处就为:你的域名/wx;如果没有绑定域名,则为:https://你的公网ip/wx。 |
Token | 此处填写第十二步 wechatmp_token 的值。 |
EncodingAESKey | 点击随机生成即可。 |
17.至此部署完成,可以开始尝试使用AI自动回复了。
进阶教程
当修改了config.json
时,也可以在公众号里进行管理身份认证直接进行重载配置、切换模型等操作。
具体命令可用#help
进行查看和操作。
管理认证
1.在公众号内进行发言,在日志处可以看到用户身份id,复制下来。
2.打开宝塔,进入[站点根目录]/plugins/godcmd/config.json
文件,进行配置身份和密钥。
{
"password": "你的密钥",
"admin_users": ["用户身份id"]
}
3.关闭进程后,重新运行。
ps -ef | grep app.py | grep -v grep
#查看进程id
kill -9 进程id
#关闭进程
nohup python3 app.py & tail -f nohup.out
#重新运行项目
部分命令
类型 | 释义 | 用法 |
---|---|---|
help | 帮助文档。 | #help 或 #help 插件名 |
auth | 管理身份验证。 | #auth 密钥 |
reconf | 重载配置,修改完配置后可以通过命令进行重载。 | #reconf |
model | 查看或切换模型 | #model 可查看当前模型和模型列表;#model 模型名称 可切换使用该模型。 |
plist | 查看插件状态 | #plist 查看插件开启状态。 |
enablep | 开启插件 | #enablep 插件名 开启指定插件。 |
关键词
1.打开宝塔,进入 [站点根目录]/plugins/keyword/config.json
文件,进行配置。
{
"keywords": {
"hello": "Hello, Welcome to Xinrui.",
"新锐博客": "我是一款基于星火大模型3.0的智能回复助手,这是我的开发者:莫忘,以及他的博客:新锐博客(xrbk.cn),你可以直接给我发送你想知道的问题,我相信能给到你满意的答复!"
}
}
2.关闭进程后,重新运行。
3.对话框先输入#auth 密钥
(上面管理认证中提到的密钥),然后等待返回认证成功,再输入#enablep keyword
开启插件