飞书部署 ChatGPT 机器人

346

项目开源地址:开源链接

机器人介绍及功能#

飞书 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(获取与更新群组信息)

发布#

机器人配置好之后发布机器人,等待管理员审批即可