Skip to content

通过CZLOapi,部署ChatGPT到飞书(Docker)

声明✅

本项目基于
CZLOapi国内OPENAI代理服务,无须科学上网。
Docker
飞书开发平台
Github开源项目修改而来的Docker镜像(原项目:https://github.com/ConnectAI-E/Feishu-OpenAI)
支持的模型
gpt-3.5-turbo gpt-3.5-turbo-16k gpt-4-(需充值$5.0)
gpt-4-32k

演示

一、CZLOapi-获取 key

网址:https://oapi.czl.net

1. 注册与登录

现注册送$0.1的额度,约两万五千字。注册送约 500 汉字的额度,因为太少,所以显示余额为 0,实际是可以使用的

​​

2.获取 KEY,把生成的 key 粘贴出来保存

例子:sk-BdH2ECx9UeUmqI2j86B9E6C************

​​

二、飞书开发平台新建应用

网址:https://open.feishu.cn/app/

1.新建应用,保存 APPID 和 Secret

例子:cli_a41fe20b2539d00b、0kMAQp1c0ydxrBwkQHT7OgGMeHzXuuwr

​​

2.前往 应用功能-机器人​​, 创建机器人

​​​​

3.获取 Encrypt Key ​和 Verification Token

例子:

44xyLjvx1s94sfTCddS8xf4Iif2UrTwZ

DC4rdwPrXTjc3Je12dt75cmk3mTyoX1G

​​​​

三、部署 Docker 应用

1.获取 docker 镜像

​​​​

Nginx
docker pull woodchen/czlchat-feishu:<版本>

2.部署容器

环境变量

  1. BOT_NAME:上面添加的应用名称,在示例里是 testgpt
  2. APP_ID:上面第二步第 1 小步获取到的
  3. APP_SECRET:上面第二步第 1 小步获取到的
  4. OPENAI_KEY:上面第一步第 2 小步获取到的
  5. APP_ENCRYPT_KEY:上面第二步第 3 小步获取到的
  6. APP_VERIFICATION_TOKEN:上面第二步第 3 小步获取到的

端口

容器内端口为 9000,外部端口可自定义

命令部署

Nginx
docker run -d \
-e BOT_NAME=<BOT_NAME> \
-e APP_ID=<APP_ID> \
-e APP_SECRET=<APP_SECRET> \
-e OPENAI_KEY=<OPENAI_KEY> \
-e APP_ENCRYPT_KEY=<APP_ENCRYPT_KEY> \
-e APP_VERIFICATION_TOKEN=<APP_VERIFICATION_TOKEN> \
-p <外部端口>:9000 \
woodchen/czlchat-feishu:<版本>

可视化示例图

​​​​

3.反代以供访问

原理都相同,需要反代的接口为上面自定义的<外部端口>

群晖

​​

宝塔面板

  1. 新建站点,配置HTTPS证书
  2. 添加反向代理配置,保存即可 1688372224660.png​​

4.测试访问

访问地址为:https://访问地址/ping

访问显示应该为这样,如不对,请查看 docker 日志

​​​​

四、飞书开发平台添加调用地址并发布版本

1.添加事件订阅地址和卡片消息地址

事件订阅格式为:https://访问地址/webhook/event
卡片消息地址为:https://访问地址/webhook/card
如图所示地址,只是因为视频为测试地址,所以保存不成功

​​​​

2.添加权限和能力

在事件订阅板块,搜索三个词 机器人进群​、 接收消息​、 消息已读​, 把他们后面所有的权限全部勾选。进入权限管理界面,搜索 图片​, 勾选 获取与上传图片或文件资源​。 最终会添加下列回调事件:

  • im:resource(获取与上传图片或文件资源)
  • im:message
  • im:message.group_at_msg(获取群组中所有消息)
  • im:message.group_at_msg:readonly(接收群聊中 @ 机器人消息事件)
  • im:message.p2p_msg(获取用户发给机器人的单聊消息)
  • im:message.p2p_msg:readonly(读取用户发给机器人的单聊消息)
  • im:message:send_as_bot(获取用户在群组中 @ 机器人的消息)
  • im:chat:readonly(获取群组信息)
  • im:chat(获取与更新群组信息)

​​​​

3.创建版本并发布、审核应用

我这里开启了免审,不然一般会弹出一个审核按钮 进入管理后台审核​,点击进去审核通过就可以了

​​​​

五、截止这里,已经可以使用了

1.在机器人消息上点回复即可连续对话

​​​​

2.查看余额,此处为 CZLOapi 的余额

​​​​

3.清除上下文 /clear ​和更多功能

​​​​

补充

1.OPENAI 的模型说明

​​​​

​​​​

2.提交新模型需求,或希望前端可以修改模型

我也希望可以支持前端修改模型,由于能力问题无法实现,本项目源码在 https://github.com/woodchen-ink/CZLChat-Feishu,有条件可以去提交 pr。

3.GPT-4 模型说明

GPT-4 模型需要充值达 $5.0 才可以使用

4.图片生成说明

本系统只支持对话,不支持图片生成

5.流式输出和多话题对话