ChatGPT 串接到 Discord - 團隊協作好助理

2023年3月19日

ChatGPT 教學專書
不僅教你 ChatGPT 指令,更帶你實作出創新應用!前往了解

ChatGPT 是由 OpenAI 開發的一個強大的語言模型,本篇文章教你如何串接 Discord Bot ,協助團隊在工作上更加高效並促進溝通與協作。使 ChatGPT 發揮出最大的功效,進一步提升工作效率和團隊協作能力。本篇文章可以在不寫任何的程式碼狀況下完成,當然要做客製化的話僅需微調參數即可。

專案介紹

如果在串接過程中遇到問題,可以在 ChatGPT-Discord-Bot 的 Issues 中回報,我們會定期在那邊回覆問題

先附上本次專案的開源程式碼:ChatGPT-Discord-Bot,在 Discord 裡的每個頻道中導入 ChatGPT Bot,只要在輸入框輸入  /chat  就會 有一個  /chat message  的關鍵字自動帶入,直接輸入文字即可與 ChatGPT 互動,此外,這邊也順便把 DALL·E 2 模型串接完,因此可以利用 /imagine prompt 就能夠透過文字生成圖片,如下圖所示:

ChatGPT DALL·E2 Demo
ChatGPT DALL·E2 Demo

安裝步驟

取得 Token

  1. OpenAI Token

    1. OpenAI 平台中註冊/登入帳號 → 首次註冊需要填寫基本資訊

    2. 右上方有一個頭像,點入後選擇  View API keys

      Get OpenAI Token Step1 and Step2
      Get OpenAI Token Step1 and Step2
    3. 點選中間的  Create new secret key

      Get OpenAI Token Step3
      Get OpenAI Token Step3
      Get OpenAI Token Step4
      Get OpenAI Token Step4

    ⚠️ 每隻 API 有免費額度,也有其限制,詳情請看  OpenAI Pricing

  2. Discord Token

    1. 登入  Discord Developer

    2. 創建機器人:

      • 進入左方  Applications

      • 點擊右上方  New Application  並輸入 Bot 的名稱 > 確認後進入新頁面。

        Get Discord Token Step 1
        Get Discord Token Step 1
        Get OpenAI Token Step 2
        Get OpenAI Token Step 2
      • 點擊左方  Bot

      • 點擊右方  Add Bot

        Get OpenAI Token Step 3
        Get OpenAI Token Step 3
        Get OpenAI Token Step 4
        Get OpenAI Token Step 4
      • Token 在上方選擇  View Token  或已申請過則會是  Reset Token  的按鈕。

        Get OpenAI Token Step 5 and Step 6
        Get OpenAI Token Step 5 and Step 6
      • 下方  MESSAGE CONTENT INTENT  需打開

      • 按下  Save Change

        Get OpenAI Token Step 7 and Step 8
        Get OpenAI Token Step 7 and Step 8
    3. 設定 OAuth 2

      • 點擊左欄  OAuth2
      • 點擊左欄  URL Generator
      • 右欄  SCOPES  選擇  bot、右欄下方  BOT PERMISSIONS  選擇  Administrator {' '}
        Get OpenAI Token Step 9, Step 10 and Step 11
        Get OpenAI Token Step 9, Step 10 and Step 11
        Get OpenAI Token Step 12
        Get OpenAI Token Step 12
      • 複製最下方網址到瀏覽器中
      • 選擇欲加入的伺服器
        Get OpenAI Token Step 13 and Step 14
        Get OpenAI Token Step 13 and Step 14)
      • 按下  繼續 > 授權

專案設置

  1. Fork Github 專案

    1. 註冊/登入  GitHub

    2. 進入ChatGPT-Discord-Bot

    3. 點選  Star  支持開發者

    4. 點選  Fork  複製全部的程式碼到自己的倉庫

      Fork Github Repository Step 1
      Fork Github Repository Step 1
      Fork Github Repository Step 2
      Fork Github Repository Step 2
  2. 部署(免費空間)

    1. 進入  replit

    2. 點選  Sign Up  直接用  Github  帳號登入並授權 -> 按下  Skip  跳過初始化設定

    3. 進入後中間主頁的部分點選  Create -> 跳出框,點選右上角  Import from Github

      Replit Deploy Step 1
      Replit Deploy Step 1
    4. 若尚未加入 Github 倉庫,則點選連結  Connect GitHub to import your private repos. -> 勾選  Only select repositories -> 選擇  ChatGPT-Discord-Bot

      Replit Deploy Step 2
      Replit Deploy Step 2
      Replit Deploy Step 3
      Replit Deploy Step 3
    5. 回到第四步,此時  Github URL  可以選擇  ChatGPT-Discord-Bot  專案 -> 點擊  Import from Github

      Replit Deploy Step 4
      Replit Deploy Step 4

專案執行

  1. 環境變數設定

    1. 接續上一步  Import  完成後在  Replit  的專案管理頁面左下方  Tools  點擊  Secrets

    2. 右方按下  Got it  後,即可新增環境變數,需新增:

      • OpenAI API Token:
        • key: OPENAI_API
        • value: [由上方步驟一取得] sk-FoXXXX
      • 欲選擇的模型:
        • key: OPENAI_MODEL_ENGINE
        • value: gpt-3.5-turbo
      • ChatGPT 要讓助理扮演的角色詞(目前官方無釋出更多的使用方法,由玩家自行測試)
        • key: SYSTEM_MESSAGE
        • value: You are a helpful assistant.
      • Discord Token:
        • key: DISCORD_TOKEN
        • value: [由上方步驟一取得] MTA3NXXX
      Replit Set Environment Variable
      Replit Set Environment Variable
  2. 開始執行

    1. 點擊上方的  Run

    2. 成功後右邊畫面會顯示  Hello. I am alive!,並將畫面中上方的網址複製下來,下一步驟會用到

      Replit Run
      Replit Run

      ⚠️ 若一小時內沒有任何請求,則程式會中斷,因此需要下步驟

  3. CronJob 定時發送請求

    1. 註冊/登入  cron-job.org

    2. 進入後面板右上方選擇  CREATE CRONJOB

      CronJob Step 1
      CronJob Step 1
    3. Title  輸入  ChatGPT-Discord-Bot,網址輸入上一步驟的網址

    4. 下方則每  5 分鐘  打一次

    5. 按下  CREATE

      CronJob Step 2
      CronJob Step 2

指令

指令說明
/chat在輸入框直接輸入  /chat  會後綴  message  直接輸入文字,即可調用 ChatGPT 模型。
/resetChatGPT 會記住前十次的問答紀錄,調用此指令則會清除。
/imagine在輸入框輸入  /imagine  會後綴  prompt  直接輸入文字,會調用 DALL·E 2 模型,即可生成圖像。

Q&A

  1. 如何看 Log 檔?

    在 Replit 專案中左側有一個 logs ,在專案當中的 logger 會記錄在其中,可以自行添加 logger 在其中。

  2. 如何調整 DALL·E 2 輸出的圖片大小?

    修改 /src/models/OpenAIModel 裡的 image_size 即可。

🧵 如果你想收到最即時的內容更新,可以在 FacebookInstagram 上追蹤我們