飞书部署 ChatGPT 机器人
项目开源地址:开源链接
机器人介绍及功能#
飞书 X(GPT-3.5+DALL・E+Whisper),实现办公智能助手。
功能:#
🗣 语音交流:私人直接与机器人畅所欲言
💬 多话题对话:支持私人和群聊多话题讨论,高效连贯
🖼 文本成图:支持文本成图和以图搜图
🛖 场景预设:内置丰富场景列表,一键切换 AI 角色
🎭 角色扮演:支持场景模式,增添讨论乐趣和创意
🔄 上下文保留:回复对话框即可继续同一话题讨论
⏰ 自动结束:超时自动结束对话,支持清除讨论历史
📝 富文本卡片:支持富文本卡片回复,信息更丰富多彩
👍 交互式反馈:即时获取机器人处理结果
🎰 余额查询:即时获取 token 消耗情况
🔙 历史回档:轻松回档历史对话,继续话题讨论 🚧
🔒 管理员模式:内置管理员模式,使用更安全可靠 🚧
🌐 多 token 负载均衡:优化生产级别的高频调用场景
↩️ ️支持反向代理:为不同地区的用户提供更快、更稳定的访问体验
📚 与飞书文档互动:成为企业员工的超级助手 🚧
🎥 话题内容秒转 PPT:让你的汇报从此变得更加简单 🚧
📊 表格分析:轻松导入飞书表格,提升数据分析效率 🚧
🍊 私有数据训练:利用公司产品信息对 GPT 二次训练,更好地满足客户个性化需求 🚧
项目特点#
🍏 对话基于 OpenAI-gpt-3.5-turbo 接口
🍎 通过 lark,将 ChatGPT 接入飞书和飞书国际版
🥒 支持 Serverless 云函数、本地环境、Docker、二进制安装包 等多种渠道部署
🍋 基于 goCache 内存键值对缓存
部署教程#
Open Ai#
这一步需要获取 Open Ai 的 api,之前讲过,不再赘述。
部署项目#
1.docker 部署#
docker run -d --restart=always --name feishu-chatgpt2 -p 9000:9000 -v /etc/localtime:/etc/localtim:ro \\ --env APP_ID=xxx \\ --env APP_SECRET=xxx \\ --env APP_ENCRYPT_KEY=xxx \\ --env APP_VERIFICATION_TOKEN=xxx \\ --env BOT_NAME=chatGpt \\ --env OPENAI_KEY="sk-xxx1,sk-xxx2,sk-xxx3" \\ --env API_URL=https://api.openai.com \\ --env HTTP_PROXY="" \\ dockerproxy.com/leizhenpeng/feishu-chatgpt:latest
注意
BOT_NAME
为飞书机器人名称,例如韵酱的猫娘P60 E 青春探索版
OPENAI_KEY
为 openai key,多个 key 用逗号分隔,例如sk-xxx1,sk-xxx2,sk-xxx3
HTTP_PROXY
为宿主机的 proxy 地址,例如http://host.docker.internal:7890
, 没有代理的话,可以不用设置API_URL
为 openai api 接口地址,例如https://api.openai.com
, 没有反向代理的话,可以不用设置
事件回调地址: http://IP:9000/webhook/event 卡片回调地址: http://IP:9000/webhook/card 二者稍后填入飞书后台即可
2.docker-compose 部署#
编辑 docker-compose.yaml,通过 environment 配置相应环境变量(或者通过 volumes 挂载相应配置文件),然后运行下面的命令即可
`# 构建镜像 docker compose build
启动服务
docker compose up -d
停止服务
docker compose down`
事件回调地址: http://IP:9000/webhook/event 卡片回调地址: http://IP:9000/webhook/card
3. 使用 Railway 部署#
直接去开源项目地址那里配置好环境变量部署就行了,我懒得写
Railway 是一家国外的 Serverless 平台,支持多种语言,可以一键将 Github 上的代码仓库部署到 Railway 平台,然后在 Railway 平台上配置环境变量即可。
该项目还支持本地部署,serverless 云函数部署和二进制安装包部署,但是我觉得有方便快捷的 docker 就够了。
飞书机器人配置#
总结:在飞书机器人后台的事件订阅
板块填写回调地址,在机器人
板块填写消息卡片的请求网址,最后设置机器人的权限即可。
1. 前往开发者平台创建应用,并获取到 APPID 和 Secret#
2. 前往应用功能 - 机器人,创建机器人#
3. 具体配置#
事件订阅从 cpolar、serverless 或 Railway 获得公网地址,在飞书机器人后台的事件订阅
板块填写。例如,http://xxxx.r6.cpolar.top 为 cpolar 暴露的公网地址,/webhook/event 为统一的应用路由,最终的回调地址为 http://xxxx.r6.cpolar.top/webhook/event** 卡片消息 ** 在飞书机器人后台的 机器人
板块,填写消息卡片请求网址。例如,http://xxxx.r6.cpolar.top 为 cpolar 暴露的公网地址,/webhook/card 为统一的应用路由,最终的消息卡片请求网址为 http://xxxx.r6.cpolar.top/webhook/card** 机器人权限 ** 在事件订阅板块,搜索三个词 机器人进群
、 接收消息
、 消息已读
, 把他们后面所有的权限全部勾选。 进入权限管理界面,搜索图片,勾选获取与上传图片或文件资源
, 最终会添加下列回调事件
im(获取与上传图片或文件资源)
im
im.group_at_msg (获取群组中所有消息)
im.group_at_msg(接收群聊中 @机器人消息事件)
im.p2p_msg (获取用户发给机器人的单聊消息)
im.p2p_msg(读取用户发给机器人的单聊消息)
im:message(获取用户在群组中 @机器人的消息)
im:chat(获取群组信息)
im(获取与更新群组信息)
发布#
机器人配置好之后发布机器人,等待管理员审批即可