Leizhenpeng / feishu-chatgpt
- четверг, 23 марта 2023 г. в 00:13:53
🎒 飞书 ×(GPT-3.5 + DALL·E + Whisper)= 飞一般的工作体验 🚀 语音对话、角色扮演、多话题讨论、图片创作、表格分析、文档导出 🚀
飞书 ×(GPT-3.5 + DALL·E + Whisper)
git clone git@github.com: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 机器人来啦
git clone git@github.com: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
环境s.yaml
中的部署地区和部署秘钥edition: 1.0.0
name: feishuBot-chatGpt
access: "aliyun" # 修改自定义的秘钥别称
vars: # 全局变量
region: "cn-hongkong" # 修改云函数想要部署地区
cd ..
s deploy
windows
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
s.yaml
中的部署地区和部署秘钥edition: 1.0.0
name: feishuBot-chatGpt
access: "aliyun" # 修改自定义的秘钥别称
vars: # 全局变量
region: "cn-hongkong" # 修改云函数想要部署地区
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
cd ..
s deploy
更多详细介绍,参考仅需 1min,用 Serverless 部署基于 gin 的飞书机器人
Railway 是一家国外的 Serverless 平台,支持多种语言,可以一键将 Github 上的代码仓库部署到 Railway 平台,然后在 Railway 平台上配置环境变量即可。部署本项目的流程如下:
点击下方按钮即可创建一个对应的 Railway 项目,其会自动 Fork 本项目到你的 Github 账号下。
在打开的页面中,配置环境变量,每个变量的说明如下图所示:
填写完环境变量后,点击 Deploy 就完成了项目的部署。部署完成后还需获取对应的域名用于飞书机器人访问,如下图所示:
如果不确定自己部署是否成功,可以通过访问上述获取到的域名 (https://xxxxxxxx.railway.app/ping) 来查看是否返回了pong
,如果返回了pong
,说明部署成功。
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
把它填入飞书后台
直接在config.example.yml中配置好环境变量,然后运行下面的命令即可
# 构建镜像
docker compose build
# 启动服务
docker compose up -d
# 停止服务
docker compose down
事件回调地址: http://IP:9000/webhook/event 卡片回调地址: http://IP:9000/webhook/card
feishu-chatgpt
事件回调地址: http://IP:9000/webhook/event 卡片回调地址: http://IP:9000/webhook/card
应用功能-机器人
, 创建机器人事件订阅
板块填写。例如,
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
机器人进群
、 接收消息
、 消息已读
, 把他们后面所有的权限全部勾选。
进入权限管理界面,搜索图片
, 勾选获取与上传图片或文件资源
。
最终会添加下列回调事件
更多介绍,参考飞书上的小计算器: Go 机器人来啦
如需协助部署,或者其他定制服务,可联系下面的WeChat,支持发票~
遇到问题,可以加入飞书群沟通~
如果你觉得这个项目对你有帮助,可以请作者买本书~