ChatGPT 串接到 Discord - 團隊協作好助理
2023年3月19日
ChatGPT 是由 OpenAI 開發的一個強大的語言模型,本篇文章教你如何串接 Discord Bot ,協助團隊在工作上更加高效並促進溝通與協作。使 ChatGPT 發揮出最大的功效,進一步提升工作效率和團隊協作能力。本篇文章可以在不寫任何的程式碼狀況下完成,當然要做客製化的話僅需微調參數即可。
專案介紹
如果在串接過程中遇到問題,可以在 ChatGPT-Discord-Bot 的 Issues 中回報,我們會定期在那邊回覆問題
先附上本次專案的開源程式碼:ChatGPT-Discord-Bot,在 Discord 裡的每個頻道中導入 ChatGPT Bot,只要在輸入框輸入 /chat
就會 有一個 /chat message
的關鍵字自動帶入,直接輸入文字即可與 ChatGPT 互動,此外,這邊也順便把 DALL·E 2 模型串接完,因此可以利用 /imagine prompt
就能夠透過文字生成圖片,如下圖所示:
安裝步驟
取得 Token
OpenAI Token
在 OpenAI 平台中註冊/登入帳號 → 首次註冊需要填寫基本資訊
右上方有一個頭像,點入後選擇
View API keys
點選中間的
Create new secret key
⚠️ 每隻 API 有免費額度,也有其限制,詳情請看 OpenAI Pricing
Discord Token
創建機器人:
進入左方
Applications
點擊右上方
New Application
並輸入 Bot 的名稱 > 確認後進入新頁面。點擊左方
Bot
點擊右方
Add Bot
Token 在上方選擇
View Token
或已申請過則會是Reset Token
的按鈕。下方
MESSAGE CONTENT INTENT
需打開按下
Save Change
設定 OAuth 2
- 點擊左欄
OAuth2
- 點擊左欄
URL Generator
- 右欄
SCOPES
選擇bot
、右欄下方BOT PERMISSIONS
選擇Administrator
{' '} - 複製最下方網址到瀏覽器中
- 選擇欲加入的伺服器
- 按下
繼續
>授權
- 點擊左欄
專案設置
Fork Github 專案
註冊/登入 GitHub
點選
Star
支持開發者點選
Fork
複製全部的程式碼到自己的倉庫
部署(免費空間)
進入 replit
點選
Sign Up
直接用Github
帳號登入並授權 -> 按下Skip
跳過初始化設定進入後中間主頁的部分點選
Create
-> 跳出框,點選右上角Import from Github
若尚未加入 Github 倉庫,則點選連結
Connect GitHub to import your private repos.
-> 勾選Only select repositories
-> 選擇ChatGPT-Discord-Bot
回到第四步,此時
Github URL
可以選擇ChatGPT-Discord-Bot
專案 -> 點擊Import from Github
。
專案執行
環境變數設定
接續上一步
Import
完成後在Replit
的專案管理頁面左下方Tools
點擊Secrets
。右方按下
Got it
後,即可新增環境變數,需新增:- OpenAI API Token:
- key:
OPENAI_API
- value:
[由上方步驟一取得] sk-FoXXXX
- key:
- 欲選擇的模型:
- key:
OPENAI_MODEL_ENGINE
- value:
gpt-3.5-turbo
- key:
- ChatGPT 要讓助理扮演的角色詞(目前官方無釋出更多的使用方法,由玩家自行測試)
- key:
SYSTEM_MESSAGE
- value:
You are a helpful assistant.
- key:
- Discord Token:
- key:
DISCORD_TOKEN
- value:
[由上方步驟一取得] MTA3NXXX
- key:
- OpenAI API Token:
開始執行
點擊上方的
Run
成功後右邊畫面會顯示
Hello. I am alive!
,並將畫面中上方的網址複製下來,下一步驟會用到⚠️ 若一小時內沒有任何請求,則程式會中斷,因此需要下步驟
CronJob 定時發送請求
註冊/登入 cron-job.org
進入後面板右上方選擇
CREATE CRONJOB
Title
輸入ChatGPT-Discord-Bot
,網址輸入上一步驟的網址下方則每
5 分鐘
打一次按下
CREATE
指令
指令 | 說明 |
---|---|
/chat | 在輸入框直接輸入 /chat 會後綴 message 直接輸入文字,即可調用 ChatGPT 模型。 |
/reset | ChatGPT 會記住前十次的問答紀錄,調用此指令則會清除。 |
/imagine | 在輸入框輸入 /imagine 會後綴 prompt 直接輸入文字,會調用 DALL·E 2 模型,即可生成圖像。 |
Q&A
如何看 Log 檔?
在 Replit 專案中左側有一個
logs
,在專案當中的 logger 會記錄在其中,可以自行添加 logger 在其中。如何調整 DALL·E 2 輸出的圖片大小?
修改
/src/models/OpenAIModel
裡的image_size
即可。