Skip to content

🎒飞书 ×(GPT-3.5 + DALL·E + Whisper)= 飞一般的工作体验 🚀 语音对话、角色扮演、多话题讨论、图片创作、表格分析、文档导出 🚀

License

Notifications You must be signed in to change notification settings

Genening/feishu-chatgpt

This branch is 163 commits behind ConnectAI-E/feishu-openai:master.

Folders and files

NameName
Last commit message
Last commit date
Mar 28, 2023
Mar 28, 2023
Mar 14, 2023
Mar 9, 2023
Mar 28, 2023
Mar 26, 2023
Mar 26, 2023
Mar 28, 2023
Mar 14, 2023

Repository files navigation

📷 点击展开完整功能截图

语音对话 角色扮演 角色列表 文字成图 图片变体 余额查询 帮助菜单


飞书 ×(GPT-3.5 + DALL·E + Whisper)

🚀 Feishu OpenAI 🚀

👻 机器人功能

🗣 语音交流:私人直接与机器人畅所欲言

💬 多话题对话:支持私人和群聊多话题讨论,高效连贯

🖼 文本成图:支持文本成图和以图搜图

🛖 场景预设:内置丰富场景列表,一键切换AI角色

🎭 角色扮演:支持场景模式,增添讨论乐趣和创意

🔄 上下文保留:回复对话框即可继续同一话题讨论

⏰ 自动结束:超时自动结束对话,支持清除讨论历史

📝 富文本卡片:支持富文本卡片回复,信息更丰富多彩

👍 交互式反馈:即时获取机器人处理结果

🎰 余额查询:即时获取token消耗情况

🔙 历史回档:轻松回档历史对话,继续话题讨论 🚧

🔒 管理员模式:内置管理员模式,使用更安全可靠 🚧

🌐 多token负载均衡:优化生产级别的高频调用场景

↩️ 支持反向代理:为不同地区的用户提供更快、更稳定的访问体验

📚 与飞书文档互动:成为企业员工的超级助手 🚧

🎥 话题内容秒转PPT:让你的汇报从此变得更加简单 🚧

📊 表格分析:轻松导入飞书表格,提升数据分析效率 🚧

🍊 私有数据训练:利用公司产品信息对GPT二次训练,更好地满足客户个性化需求 🚧

🌟 项目特点

项目部署

有关飞书的配置文件说明,➡︎ 点击查看
本地部署
git clone [email protected]:Leizhenpeng/feishu-chatgpt.git
cd feishu-chatgpt/code

如果你的服务器没有公网 IP,可以使用反向代理的方式

飞书的服务器在国内对 ngrok 的访问速度很慢,所以推荐使用一些国内的反向代理服务商

# 配置config.yaml
mv config.example.yaml config.yaml

//测试部署
go run main.go
cpolar http 9000

//正式部署
nohup cpolar http 9000 -log=stdout &

//查看服务器状态
https://dashboard.cpolar.com/status

// 下线服务
ps -ef | grep cpolar
kill -9 PID

更多详细介绍,参考飞书上的小计算器: Go 机器人来啦


serverless云函数(阿里云等)部署
git clone [email protected]:Leizhenpeng/feishu-chatgpt.git
cd feishu-chatgpt/code

安装severless工具

# 配置config.yaml
mv config.example.yaml config.yaml
# 安装severless cli
npm install @serverless-devs/s -g

安装完成后,请根据您本地环境,根据下面教程部署severless

  • 本地 linux/mac os 环境
  1. 修改s.yaml中的部署地区和部署秘钥
edition: 1.0.0
name: feishuBot-chatGpt
access: "aliyun" #  修改自定义的秘钥别称

vars: # 全局变量
region: "cn-hongkong" # 修改云函数想要部署地区

  1. 一键部署
cd ..
s deploy
  • 本地windows
  1. 首先打开本地cmd命令提示符工具,运行go env检查你电脑上 go 环境变量设置, 确认以下变量和值
set GO111MODULE=on
set GOARCH=amd64
set GOOS=linux
set CGO_ENABLED=0

如果值不正确,比如您电脑上为set GOOS=windows, 请运行以下命令设置GOOS变量值

go env -w GOOS=linux
  1. 修改s.yaml中的部署地区和部署秘钥
edition: 1.0.0
name: feishuBot-chatGpt
access: "aliyun" #  修改自定义的秘钥别称

vars: # 全局变量
  region: "cn-hongkong" #  修改云函数想要部署地区

  1. 修改s.yaml中的pre-deploy, 去除第二步run前面的环变量改置部分
  pre-deploy:
        - run: go mod tidy
          path: ./code
        - run: go build -o
            target/main main.go  # 删除GO111MODULE=on GOOS=linux GOARCH=amd64 CGO_ENABLED=0
          path: ./code

  1. 一键部署
cd ..
s deploy

更多详细介绍,参考仅需 1min,用 Serverless 部署基于 gin 的飞书机器人

使用 Railway 平台一键部署

Railway 是一家国外的 Serverless 平台,支持多种语言,可以一键将 Github 上的代码仓库部署到 Railway 平台,然后在 Railway 平台上配置环境变量即可。部署本项目的流程如下:

1. 生成 Railway 项目

点击下方按钮即可创建一个对应的 Railway 项目,其会自动 Fork 本项目到你的 Github 账号下。

Deploy on Railway

2. 配置环境变量

在打开的页面中,配置环境变量,每个变量的说明如下图所示:

Railway 环境变量

3. 部署项目

填写完环境变量后,点击 Deploy 就完成了项目的部署。部署完成后还需获取对应的域名用于飞书机器人访问,如下图所示:

Railway 域名

如果不确定自己部署是否成功,可以通过访问上述获取到的域名 (https://xxxxxxxx.railway.app/ping) 来查看是否返回了pong ,如果返回了pong,说明部署成功。

docker部署
docker build -t feishu-chatgpt:latest .
docker run -d --name feishu-chatgpt -p 9000:9000 \
--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="" \
feishu-chatgpt:latest

注意:

  • BOT_NAME 为飞书机器人名称,例如 chatGpt
  • 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, 没有反向代理的话,可以不用设置

小白简易化 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

事件回调地址: http://IP:9000/webhook/event 卡片回调地址: http://IP:9000/webhook/card

把它填入飞书后台

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

二进制安装包部署
  1. 进入release 页面 下载对应的安装包
  2. 解压安装包,修改 config.example.yml 中配置信息,另存为 config.yaml
  3. 目录下添加文件 role_list.yaml,自定义角色,可以从这里获取:链接
  4. 运行程序入口文件 feishu-chatgpt

事件回调地址: http://IP:9000/webhook/event 卡片回调地址: http://IP:9000/webhook/card

详细配置步骤

📸 点击展开飞书机器人配置的分步截图指导

  • 获取 OpenAI 的 KEY
  • 创建 飞书 机器人
    1. 前往开发者平台创建应用,并获取到 APPID 和 Secret
    2. 前往应用功能-机器人, 创建机器人
    3. 从 cpolar、serverless 或 Railway 获得公网地址,在飞书机器人后台的 事件订阅 板块填写。例如,
      • http://xxxx.r6.cpolar.top为 cpolar 暴露的公网地址
      • /webhook/event为统一的应用路由
      • 最终的回调地址为 http://xxxx.r6.cpolar.top/webhook/event
    4. 在飞书机器人后台的 机器人 板块,填写消息卡片请求网址。例如,
      • http://xxxx.r6.cpolar.top为 cpolar 暴露的公网地址
      • /webhook/card为统一的应用路由
      • 最终的消息卡片请求网址为 http://xxxx.r6.cpolar.top/webhook/card
    5. 在事件订阅板块,搜索三个词机器人进群接收消息消息已读, 把他们后面所有的权限全部勾选。 进入权限管理界面,搜索图片, 勾选获取与上传图片或文件资源。 最终会添加下列回调事件
      • 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(获取与更新群组信息)
  1. 发布版本,等待企业管理员审核通过

更多介绍,参考飞书上的小计算器: Go 机器人来啦

更多交流

如需协助部署,或者其他定制服务,可联系下面的WeChat,支持发票~

遇到问题,可以加入飞书群沟通~

交朋友 或者 鼓励一下

如果你觉得这个项目对你有帮助,可以请作者买本书~

😚 谢谢你啦 😚

About

🎒飞书 ×(GPT-3.5 + DALL·E + Whisper)= 飞一般的工作体验 🚀 语音对话、角色扮演、多话题讨论、图片创作、表格分析、文档导出 🚀

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 99.5%
  • Dockerfile 0.5%