![在这里插入图片描述](https://img-blog.csdnimg.cn/a85ff6bbfe8a48048acb400e0892f008.png#pic_center
项目地址:
作者:zhayujie。bot-on-anything:https://github.com/zhayujie/bot-on-anything
前置要求:
一台国外服务器(国内配置代理也可),注册一个企业微信!(如果是认证的企业微信,需要准备一个认证主体和企业认证主体一致的域名)
该项目是通过创建企业应用使用chatgpt,接入企业微信客服正在开发当中,如果有帮助到你,欢迎分享!请到bot-on-anything和chatgpt-on-wechat点个小星星!
自己搜索下载企业微信app,pc端,然后创建公司,不需要认证即可使用。
点击这里登录企业微信后台。然后点击我的企业,最下方有企业id:wwxxxxxx,记录下来。
然后点击应用管理,创建应用,设置应用的一些基本信息,下一步。
记录下Agentld、secret,点击下面接收消息里面的设置api接收。设置下面的参数,现在还保存不了,进行下一步:服务器运行应用
url:http://ip:8888/wechat #如果是已认证的企业微信,这里需要吧ip换成和企业主体相关的域名
EncodingAESKey #随机获取并记录下来。
Token #随机获取并记录下来。
按照GitHub作者的步骤,克隆代码到服务器运行,步骤参考这里,运行需要用到的指令如下(仅供参考,需根据自己情况修改):可能有帮助的服务器使用教程点这里
git clone https://github.com/zhayujie/bot-on-anything #从GitHub克隆代码
cd bot-on-anything/ #切换到项目目录
pip3 install -r requirements.txt #安装必须依赖,这里请注意是否有报错
cp config-template.json config.json #复制配置文件,下面参数配置在这文件里面修改后再运行应用
touch nohup.out #首次运行需要新建日志文件
nohup python3 app.py & tail -f nohup.out #在后台运行并输出日志,注意切换到项目所在目录运行,成功后可以ctrl+c关闭会话
#以下是其他可以使用的指令
pgrep -f app.py | xargs -I{} sh -c 'echo -n "Name: app.py, "; echo -n "ID: {}, "; readlink -f /proc/{}/cwd; ' #执行该指令输出所有名字为app.py的进程ID和该进程所在的目录,服务器运行多个该项目的时候方便查找对应的进程id
kill pid #杀死进程pid,然后重新运行应用
git pull #后续项目代码有更新,执行该命令拉取最新代码,重新运行应用
配置config.json
文件:设置openai
的api_key
,channel type
选择wechat_com
,设置wechat_com
的参数,参数配置如下,请复制模板配置文件后修改,不要粘贴复制!
"model": {
"type" : "chatgpt",
"openai": {
"api_key": "YOUR API KEY", #这里设置你的openai的api_key
"model": "gpt-3.5-turbo", # 模型名称,这里选择了gpt
"proxy": "", # 代理地址,如果是国外的可以访问openai的服务器不需要配置,
.... #其他参数参考项目的readme
}
"channel": {
"type": "wechat_com", #务必注意不要选错
"wechat_com": { #注意这里是在 wechat_com 里配置参数
"wechat_token": "MIllLa9", #刚刚随机生成的
"port": "8888" #默认端口,服务器需要放行该端口
"app_id": "YOUR APP ID", #上一步记录的Agentld
"app_secret": "t7ddkqL1111111111111nOFM-0m-OtU", #上一步获得的,会发送到企业微信对话框
"wechat_corp_id": "ww61111111403", #第一步里面的企业id,ww开头
"wechat_encoding_aes_key": "rrRnhf1zad11pwuw22", #刚刚随机生成的
}
}
上边的参数配置好之后,服务器运行该应用,然后在刚刚的企业微信管理后台设置api界面点击保存,成功之后会如下图所示!
然后在创建应用界面的开发者接口里,配置企业可信IP,为你的服务器IP!
到目前为止,如果没什么报错的话,那就是见证奇迹的时刻了,在企业微信搜你刚刚创建应用所有的名字,打开对话框,和他聊天吧!
对于不怎么使用企业微信的人来说,只能在企业微信app使用难免太鸡肋了,那么我们可以通过企业微信的微信插件接入到个人微信。
在企业微信管理后台,点击我的企业,左侧的微信插件,有一个邀请关注二维码,用个人微信扫码点击关注,然后验证手机号后就加入到该公司,即可找到刚刚创建的应用,点击即可使用,也可将该应用添加到桌面或者将该公司置顶来方便使用!
chatgpt-on-wechat项目已支持接入企业微信,该项目支持插件,可以实现基于chatgpt的更多功能,包括角色扮演、语音交流、天气日期查询、AI作图、图片修复、联网搜索等功能。实现效果可以参考这里的视频演示!
部署步骤和上边基于bot-on-anything的部署一致,只需稍作更改!可参考项目的帮助文档!
这里记下该项目config.json中有关企业微信配置的参数,方便自己查阅:
"channel_type": "wechatcom_app",
"wechatcom_corp_id": "", # 企业微信公司的corpID
"wechatcomapp_token": "", # 企业微信app的token
"wechatcomapp_port": 9898, # 企业微信app的服务端口, 不需要端口转发
"wechatcomapp_secret": "", # 企业微信app的secret
"wechatcomapp_agent_id": "", # 企业微信app的agent_id
"wechatcomapp_aes_key": "", # 企业微信app的aes_key
企业微信后台URL
填写格式改为http://url:port/wxcomapp
以下内容在项目各个插件的readme文件都可以找到,为方便不熟悉项目的人有个大概认知,稍作整理,所有配置文件模板都可在/plugin/PLUGIN_NAME
下面找到,请复制xxxx.json.template
为xxxx.json
后添加相应的配置项,不要粘贴复制这里的示例代码!
项目已经预置一些插件可在/plugin
目录下查看,如需安装其他插件参考以下两种方法
requirements.txt
中的依赖。Godcmd
插件,它是预置的管理员插件,能够让程序在运行时就能安装插件,它能够自动安装依赖。安装插件的命令是"#installp 仓库源记录的插件名/仓库地址"。这是管理员命令,认证方法在这里。
#enablep plugin_name
启用插件!目前chatgpt项目已支持的插件有以下几个:
复制config.json文件
,并修改其中password
的值为口令。在私聊中输入#auth 口令
进行管理员认证,#help
可以打印出管理员相关指令,进行配置重载、插件安装以及启禁用等:
#resume : 恢复服务
#stop : 暂停服务
#reconf : 重载配置(不包含插件配置)
#resetall : 重置所有会话
#scanp : 扫描插件目录是否有新插件
#plist : 打印当前插件列表
#setpri 插件名 优先级: 设置指定插件的优先级,越大越优先
#reloadp 插件名: 重载指定插件配置
#enablep 插件名: 启用指定插件
#disablep 插件名: 禁用指定插件
#installp 仓库地址或插件名: 安装指定插件
#uninstallp 插件名: 卸载指定插件
#updatep 插件名: 更新指定插件
#debug : 开启机器调试日志
自行导入词库到插件文件夹中的banwords.txt
,复制config.json.template
复为config.json
,并自行配置,示例如下:
{
"action": "replace", #replace:提问有敏感词,将以***代替并返回信息给用户,提示违规;ignor:为无视这条消息
"reply_filter": true, #是否对ChatGPT的回复也进行敏感词过滤,true为过滤
"reply_action": "replace" #如果开启了回复过滤,对回复的默认处理行为
}
能够处理chtgpt不能解决的几个问题:日期,天气,数学计算!
申请机器人:https://ai.baidu.com/unit/home#/home
申请api:https://console.bce.baidu.com/ai
{
"service_id": "S87005", #注意是你创建的机器人的id
"api_key": "xgASVQGwKLG2K",
"secret_key": "Gh8bICOkBCoq"
}
本插件用于将画图请求转发给replicate
api。
api申请:https://replicate.com/
安装:https://github.com/zhayujie/chatgpt-on-wechat/issues/770
使用:https://github.com/lanvent/plugin_replicate
调用格式示例:
<画图触发词><关键词1> <关键词2> ... <关键词n>:
画 open:a beautiful girl,long hair,skirt #画是画图触发词,open是关键词,冒号后是prompt,使用英文
关键词去config.json文件里面看,有open、sd、横板、竖版、二次元、修复等
支持以自然语言实现对聊天记录的总结,认证管理员后执行#installp summary
安装
$ 总结最近20条消息
$ 总结3小时内的消息
一个能让chatgpt联网,搜索,数字运算的插件,将赋予强大且丰富的扩展能力。使用该插件需在机器人回复你的前提下,在对话内容前加$tool;仅输入$tool将返回tool插件帮助信息,用于测试插件是否加载成功
使用说明:https://github.com/goldfishh/chatgpt-on-wechat/blob/master/plugins/tool/README.md
api申请:https://github.com/goldfishh/chatgpt-tool-hub/blob/master/docs/apply_optional_tool.md
config.json配置示例(后续如有改动,请参考最新代码的配置模板):
{
"tools": ["python", "url-get", "terminal", "meteo-weather", "wikipedia", "bing-search", "wolfram-alpha", "morning-news"], #这里加入工具的名称
"kwargs": {
"top_k_results": 2,
"no_default": false,
"model_name": "gpt-3.5-turbo",
"news_api_key": "538c9027bd650fd28281",
"bing_subscription_key": "4871f4395dacb71321b26ec",
"wolfram_alpha_appid": "QPU8LH",
"morning_news_api_key": "5w1kjNh9VugBQlUc"
} #这里加入工具对应的api_key
}
主要用来匹配关键词进行回复,主要用于公众号配置当中,在config.json中配置关键词和关键词匹配到后回复的内容:
{
"keyword": {
"cursor": "https://www.cursor.so/",
"桌面日历": "http://download3.desktopcal.com/desktopcal_rcmd_166894.exe"
}
}
玩地牢游戏的聊天插件,无需配置,直接使用即可
角色扮演插件,会话窗口使用帮助指令即可查看相关功能,无需配置,可自定义角色!
新人入群自动欢迎和拍一拍响应!
基于chatgpt-on-WeChat项目:https://github.com/zhayujie/chatgpt-on-wechat
通过railway我们不需要购买服务器或者配置代理,准备以下东西即可以部署chatgpt到我们的企业微信:
准备相关参数:可参考前边的部分来获取相关参数
"openai-api-key":"" #openai账号生成api-key
"wechatcom_corp_id": "", # 企业微信公司的corpID
"wechatcomapp_token": "", # 企业微信app的token
"wechatcomapp_secret": "", # 企业微信app的secret
"wechatcomapp_agent_id": "", # 企业微信app的agent_id
"wechatcomapp_aes_key": "", # 企业微信app的aes_key
获取后停留在api设置界面,待下面填入url后再点击保存!
点击这里进入railway(前提已登录railway):
点击页面的deplay now;
然后在下图中相应的位置填入准备工作中记录的对应的参数值,默认的参数值不用修改;
等待部署成功,然后在settings里面复制域名链接:
根据上一步复制的链接,在企业微信后台应用api设置界面填入下边格式的url(根据自己情况修改xxx.railway.app这部分内容):
https://chatgpt-on-wechat-production-549d.up.railway.app/wxcomapp
然后点击保存,如果没有问题会显示保存成功,如显示回调不通过,请自行检查相关参数是否正确。
最后我们给该企业应用发送一条消息,这时候还不能正常回复,我们点击Deployments,再点击view logs,最后点击Deploy Logs。
我们会发现有错误信息,在错误信息里面找到ip信息,然后在企业微信后台把这个ip加入到可信ip设置里面:
最后我们就可以使用该企业应用啦!