飛書部署 ChatGPT 機器人#
date: 2023 年 4 月 7 日
slug: 21
status: 發佈
tags: 技術
type: 文章
專案開源地址:開源鏈接
機器人介紹及功能#
飛書 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(獲取與更新群組信息)
發布#
機器人配置好之後發布機器人,等待管理員審批即可