Foreword

基于企业微信搭建一个ChatGPT服务,比较巧妙的是刚好这个GPT是不想公开的,又想限制权限,又怕被滥用,在企微里使用刚刚好。最好这个服务还是不需要我去专门找VPS,解锁ChatGPT等服务的IP,也不用管国内能不能正常访问。

chatgpt-on-wechat

主要是基于以下项目

https://github.com/zhayujie/chatgpt-on-wechat

Wechat robot based on ChatGPT, which using OpenAI api and itchat library. 使用ChatGPT搭建微信聊天机器人,基于GPT3.5/4.0 API实现,支持个人微信、公众号、企业微信部署,能处理文本、语音和图片,访问操作系统和互联网。

官方的说明文档还是有点迷,有些地方说的很模糊,两种方法混在一起,试了好几次才成功

https://github.com/zhayujie/chatgpt-on-wechat/blob/master/channel/wechatcom/README.md

这里重新总结一下我的流程

使用railway搭建

首先需要有企业微信,并且拥有最高的管理权限,分级管理员是不行的,就是要企业创建者才行。没有的话可以自己新建一个企业。

企微后台

通过创建人扫码,进入企微后台管理界面

https://work.weixin.qq.com/

开始收集信息:

进入我的企业->企业信息,记住企业ID

进入应用管理, 在自建区创建应用来创建企业自建应用,上传应用logo,填写应用名称等,创建应用后进入应用详情页面,记住AgentIdSecret

Secret需要创建者号登录企微后查看系统发送的密钥

设置应用的可见范围,哪些人可以使用

查看刚才创建的应用详情,在接收消息处,启用API接口,并进入编辑

进入这个页面以后,可以先生成一个TokenEncodingAESKey并且记住,暂时先别关闭,切去其他操作

Openai

进入openai获取api key,记下KEY

https://platform.openai.com/account/api-keys

Railway

Railway免费用户有5刀的额度,并且每月可以使用500小时

进入Deploy on Railway

需要填写的参数如下

将刚才收集到的信息全都填进去,然后Deploy即可,等待服务启动

一般这会不会报错,启动以后可以在Settings中看到对应的web

也可以自定义域名,填好域名以后,他会自动提示你CName填什么的,修改即可

回到企微

完成了部署以后回到企微,继续填写刚才的接收消息服务器配置

将URL填入刚才启动分配得到的URl并加上wxcomapp,如下

https://xxxxx.up.railway.app/wxcomapp

然后点击保存,如果URL等有问题,会提示回调出错的

  • 虽然说没有认证的企业不能用域名,但是我实测是可以的
  • 虽然说可以用http,但是实测只要用http必然报错,只能用https

回调测试

企微有一个回调测试,不通过的话,这个app无法使用的,上面的接收信息设置也就无法保存,可以通过官方测试接口查看

https://open.work.weixin.qq.com/wwopen/devtool/interface/combine

可以看到成功的回调必须能正常返回你输入的EchoStr,会失败的都是提示失败或者没有返回的

企业可信IP

先去APP,随便发一个消息,然后去Railway查看log

可以看到报了一个错,然后有提示IP是来自哪里的,需要将这个IP添加到企业可信IP中

添加完成以后,就可以正常使用了,理论上也不会有报错的情况了。

  • 注意这个IP每次重启Railway的服务的时候会变,需要重新设置

正常使用

最后给到所有人权限,就能在工作台里直接使用了

缺点

目前看到的缺点是这种提问以后是看不到像ChatGPT那样,动态一点点进行回复的,要等一会才有回复(就算服务挂了,可能短时间看不出来)

其次上下文就是你问过的所有东西了,没办法清空或者更换上下文空间。

重启需要重新添加可信IP

GPT3比起3.5和4还是逊色太多了

Summary

默认的OpenAI拿到的key,其实是GPT3的接口,而3.5和4的接口都需要额外申请,并且还不一定能过,所以总体上是不如ChatGPT的

  • ChatGPT plus和OpenAI的API Key 是两个东西,二者互相独立,并不是说买了plus就能有对应的API了

申请链接在这里,我的过了一个多月了还是没反应。

https://openai.com/waitlist/gpt-4-api

当然如果有更高级的API或者由此进行二次开发,还是不错的,可以很容易的结合起来

Quote

https://github.com/zhayujie/chatgpt-on-wechat

https://github.com/zhayujie/chatgpt-on-wechat/blob/master/channel/wechatcom/README.md

https://open.work.weixin.qq.com/wwopen/devtool/interface/combine

https://github.com/zhayujie/chatgpt-on-wechat/issues/1017

https://github.com/zhayujie/chatgpt-on-wechat/issues/1093