Awesome
ChatGPT For ChatBot Feishu
快速将 ChatGPT 接入飞书,基于 OpenAI 官方接口,作为私人工作助理或者企业员工助理
预览
功能支持
核心
- 支持文本生成
- 支持图片生成
扩展
- 支持长对话,自动联系上下文
- 支持私人对话
- 支持群聊
- 支持 @ 机器人回复
- 也支持命令(
/chatgpt
)触发,格式:/chatgpt 你的问题
- 支持自定义 OpenAI 模型
- 支持自定义语言(请查看高级配置)
- 支持自定义上下文(请查看高级配置)
- 支持 Docker
- 支持配置启动反向代理
- 支持二次开发,快速接入企业现有应用
- Go 开发框架
- Go-Zoox
- Gin
- Echo
- Go-Zero
- Go 开发框架
高级指令
- 模型
- 获取当前会话模型:
/model
- 设置当前会话模型【需管理员】:
/model <model>
,例如设置 GPT-4/model gpt-4
- 获取当前会话模型:
项目特点
- 基于 OpenAI GPT3 接口,使用 ChatGPT Client
- 通过 ChatBot-Feishu 将 ChatGPT 接入飞书
- 支持 本地环境、Docker 多种渠道部署
部署方案
一键部署(推荐)
# 基于服务端管理框架 Zmicro,自动安装缺失依赖,使用 Zmicro Service,底层容器使用 Docker
# 执行下面脚本,并按提示操作,填写飞书 APP ID/Secret 和 OpenAI API Key
# 更多用法,注意看提示
$ curl -fsSL https://raw.githubusercontent.com/zmicro-design/service-chatgpt-for-chatbot-feishu/master/install -o /tmp/install.sh && bash /tmp/install
.sh
二进制
# 安装服务器管理框架 Zmicro
$ curl -o- https://raw.githubusercontent.com/zcorky/zmicro/master/install | bash
# 安装 chatgpt-for-chatbot-feishu
$ zmicro package install chatgpt-for-chatbot-feishu
# 准备环境飞书 APP ID/Secret 和 OpenAI API Key
$ export APP_ID=<YOUR_FEISHU_APP_ID>
$ export APP_SECRET=<YOUR_FEISHU_APP_SECRET>
$ export OPENAI_API_KEY=<YOUR_OPENAI_API_KEY>
# 运行
$ zmicro chatgpt-for-chatbot-feishu
Docker Compose
# docker-compose.yaml
services:
chatgpt-for-chatbot-feishu:
image: whatwewant/chatgpt-for-chatbot-feishu:latest
platform: linux/amd64
ports:
- 8080:8080
environment:
APP_ID: "<YOUR_FEISHU_APP_ID>"
APP_SECRET: "<YOUR_FEISHU_APP_SECRET>"
OPENAI_API_KEY: "<YOUR_OPENAI_API_KEY>"
# 启动
$ docker-compose up -d
高级环境配置(可选)
API_PATH
: 自定义 WebHook 路径ENCRYPT_KEY
: 飞书事件密钥VERIFICATION_TOKEN
: 飞书 Challenge 校验 TokenSITE_URL
: 自定义域名地址OPENAI_MODEL
: 自定义 OpenAI 模型FEISHU_BASE_URI
: 私有部署飞书地址CHATGPT_CONTEXT_MESSAGE
: 自定义上下文消息CHATGPT_LANGUAGE
: 自定义机器人初始语言,默认是英文,如需中文(ZH_CN)TUNNEL_ENABLE
: 启用 NgrokTUNNEL_TYPE
: 指定隧道类型,可选项:ngrok | cpolarAUTH_TOKEN
: 付费用户 Auth TokenSUBDOMAIN
: 指定固定子域名LOGS_DIR
: 自定义日志目录ADMIN_EMAIL
: 管理员企业邮箱OFFLINE_MESSAGE
:离线自动回复内容
飞书应用配置和 OpenAI 相关步骤
新人推荐先看飞书开放平台文档: 飞书如何开发企业自建应用
-
S1. 获取 OpenAI 的 API Key
-
S2. 创建 飞书 机器人
- 前往开发者平台创建应用,并获取到 AppID 和 AppSecret
- 前往
添加应用能力
=>机器人
, 创建机器人 - 从cpolar或者serverless获得公网地址,在飞书机器人后台的
事件订阅
板块填写。例如,http://xxxx.r6.cpolar.top
为cpolar暴露的公网地址- 事件默认 API 路径是:
/
, 支持自定义路径,例如设置环境变量API_PATH
为/webhook/event
- 最终的回调地址为
http://xxxx.r6.cpolar.top/
- 前往
事件订阅
添加下列回调事件- 接收群消息:
im.message.receive_v1
- 消息撤回:
im.message.recalled_v1
- 机器人进群:
im.chat.member.bot.added_v1
- 机器人被移出群:
im.chat.member.bot.deleted_v1
- 接收群消息:
- 前往
权限管理
添加以下权限- 获取与发送单聊、群组消息:
im:message
- 以应用的身份发消息:
im:message:send_as_bot
- 获取用户发给机器人的单聊消息:
im:message.p2p_msg
- 读取用户发给机器人的单聊消息:
im:message.p2p_msg:readonly
- 获取群组中所有消息:
im:message.group_msg
- 获取用户在群组中@机器人的消息:
im:message.group_at_msg
- 接收群聊中@机器人消息事件:
im:message.group_at_msg:readonly
- 获取与更新群组信息:
im:chat
- 获取群组信息:
im:chat:readonly
- [可选] 获取用户信息(如果设置管理员 ADMIN_EMAIL 则必须):
contact:contact:readonly_as_app
- 获取与发送单聊、群组消息:
-
S3. 发布版本,等待企业管理员审核通过
更多飞书配置可参考 Leizhenpeng/feishu-chatGpt、bestony/ChatGPT-Feishu 文档
更多交流
可以创建 Issue 或者加微信,备注来自:ChatGPT-For-ChatBot-Feishu,加入微信群沟通
<p align="center"> <img src="./docs/assets/images/wechat.qrcode.jpeg" alt="" width="300" /> <img src="./docs/assets/images/wechat.group.qrcode.jpeg" alt="" width="300" /> </p>相关资源
-
go-zoox/gzchatgpt - ChatGPT CLI Demo
-
transitive-bullshit/chatgpt-api - 一个 Node.js 实现的 ChatGPT Client SDK
-
Leizhenpeng/feishu-chatGpt - 在飞书上与ChatGPT随时对话
-
bestony/ChatGPT-Feishu - 给飞书准备的 ChatGPT 机器人
-
ChatGPT Client - 一个 Go 语言实现的 ChatGPT Client SDK
-
ChatBot Feishu - 一个 Go 语言实现的飞书机器人框架
-
Feishu SDK - 一个 Go 语言实现的飞书 SDK
-
OpenAI Client - 一个 Go 语言实现的 OpenAI Client SDK
-
Zmicro - 一个原生 Shell 实现的、强大的跨平台服务器管理框架,快速开发各种 CLI 插件、服务以及包管理等
-
Zmicro Service | Chatgpt-for-ChatBot-Feishu - ChatGPT-for-ChatBot-Feishu 的 zmicro service 实现
-
Zmicro Package | Chatgpt-for-ChatBot-Feishu - ChatGPT-for-ChatBot-Feishu 的 zmicro package 实现
更新日志
-
2023.02.25 支持设置管理员,用于执行命令,环境变量:
ADMIN_ENV
-
2023.02.25 支持自定义离线自动回复内容,环境变量:
OFFLINE_MESSAGE
-
2023.02.25 内置上线(/online)、下线(/offline)命令
-
2023.02.23 修复 CI Docker Image Tag latest
-
2023.02.23 事件支持 encrypt key (#31)
-
2023.02.23 Challenge 支持 verification token (#31)
-
2023.02.24 支持命令模式,为角色扮演命令做好准备 (#29)
-
2023.02.23 修复飞书由于网络原因会重发消息,应该可以从 chatbot 端忽略已经重复的消息 (#28)
-
2023.02.23 支持自定义上下文,使用 env CHATGPT_CONTEXT_MESSAGE (#22)
-
2023.02.23 支持自定义初始语言,如果不指定,默认是英文,使用 env CHATGPT_LANGUAGE (#22)
-
2023.02.22 修复从零开始创建机器人的时候需要飞书 Challenge 但是启动服务需要开通机器人,从而造成死循环,无法启动服务
-
2023.02.22 支持私有部署的飞书 (#17)
-
2023.02.22 支持自定义 OpenAI 模型 (#16)
-
2023.02.20 内置支持 tunnel,目前支持 cpolar,ngrok,一键部署版本支持通过
zmicro service upgrade chatgpt-for-chatbot-feishu
快速升级,按提示操作即可,使用更加简单
LICENSE
MIT © whatwewant