lapis

lapis

理解以真实为本,但真实本身不会自动呈现

飛書はChatGPTロボットを展開します。

飛書部署 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(獲取與更新群組信息)

發布#

機器人配置好之後發布機器人,等待管理員審批即可

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。