【 NLP 】使用 Discord 與 Azure OpenAI ChatGPT 建立 AI 問答機器人 ( Node.js )

【 NLP 】使用 Discord 與 Azure OpenAI ChatGPT 建立 AI 問答機器人 ( Node.js )
Photo by Loïc Mermilliod / Unsplash

內容

  • 前置準備作業
  • 檔案結構
  • 建立 Azure OpenAI ChatGPT
  • 建立 Discord 伺服器
  • 取得 Discord Bot Token
  • API 格式
  • 修改與執行 Bot 程式
  • 測試與驗證

前置準備作業

檔案結構

.
├── .env
├── .env-Sample
├── README.md
├── Service
│   └── azureOpenAI.js
├── index.js
├── node_modules
├── package-lock.json
└── package.json

建立 Azure OpenAI ChatGPT

Step 1. 建立 Azure OpenAI Service

  • 於搜尋框輸入 Azure OpenAI > 點選 Static Web Apps 的搜尋結果

---2023-04-13---1.37.02


Step 2. 點選左上角 + Create 按鈕

---2023-04-13---1.40.01


Step 3. 輸入相關資訊

  • 請依欄位要求進行輸入

---2023-04-13---1.42.02

  • 輸入完成後點選 Next

---2023-04-13---1.46.42

  • 點選 Next

---2023-04-13---1.45.12

  • 確認資訊後點選 Create

---2023-04-13---1.47.45

  • 建立過程中

---2023-04-13---1.48.28

  • 建立完成,點選 Go to resource

---2023-04-13---1.54.04


Step 4. 建立部署模型

  • 點選左側的 Model deployments > 再點選 Manage Deployments

---2023-05-29---10.37.43

  • 點選左側的 部署 > 再點選上方的 + 建立新部署

---2023-05-29---10.39.43

  • 輸入相關資訊
    • 選取模型 欄位請選擇 gpt-35-turbo
    • 部署名稱 欄位請輸入唯一且可識別的名稱,本範例使用 gpt-35-turbo
    • 以上欄位輸入完成後點選 建立

---2023-05-29---10.42.14

---2023-05-29---10.42.46

  • 建立完成

---2023-05-29---10.43.59


Step 5. 取得 Key 與 Endpoint

  • 點選左側的 Keys and Endpoint 取得 KEY 1Endpoint ( 之後程式會用到 )

---2023-05-29---10.44.54

建立 Discord 伺服器

Step 1. 登入到 Discord


Step 2. 建立伺服器

  • 點選左下角的 +

---2023-05-29---11.11.29

  • 點選 建立自已的

---2023-05-29---11.24.19

  • 點選 跳過這個問題

---2023-05-29---11.25.32

  • 輸入伺服器名稱後再點 建立

---2023-05-29---11.26.39

  • 建立完成

---2023-05-29---11.27.12

取得 Discord Bot Token

Step 1. 開啟開發者網頁


Step 2. 取得 Token

  • 點選左側的 Applications > 再點選右上方的 New Application

---2023-05-29---12.59.13

  • 輸入應用程式名稱後點選 Create ( 本範例使用 Azure_OpenAI )

---2023-05-29---1.01.17

---2023-05-29---1.02.20

  • 點選左側的 Bot > 再點選 Reset Token

---2023-05-29---1.03.12

  • 點選 Yes, do it!

---2023-05-29---1.04.48

  • 點選 Copy ( 之後程式會用到 )

---2023-05-29---1.05.10

  • 點選左側的 Bot > 再點選 MESSAGE CONTENT INTENT > 再點選 Save Changes

---2023-05-29---1.36.03

---2023-05-29---1.37.39

  • 點選左側的 Oauth2 > 再點選 URL Generator

---2023-05-29---1.07.34

  • 勾選 SCOPES 中的 bot 與勾選 BOT PERMISSIONS 中的 Send Messages

---2023-05-29---1.13.34--

  • 點選 GENERATED URL 欄位中的 Copy 並將所取得的 URL 貼到 Browser 後於 新增至伺服器 欄位選擇所建立的伺服器

---2023-05-29---1.13.34--2

---2023-05-29---1.18.15-1

  • 點選 繼續

---2023-05-29---1.20.44-1

  • 點選 授權

---2023-05-29---1.21.59

  • 點選 我是人類

---2023-05-29---1.24.32

  • 授權完成

---2023-05-29---1.24.58

  • 到所建立的伺服器會看到相關訊息

---2023-05-29---1.26.17

API 格式

  • URL
    • POST https://AZURE_OPENAI_ENDPOINT/openai/deployments/AZURE_OPENAI_MODEL_DEPLOYMENT_NAME/chat/completions?api-version=2023-03-15-preview
    • 請修改 AZURE_OPENAI_ENDPOINTAZURE_OPENAI_MODEL_DEPLOYMENT_NAME
  • Header
    • Content-Type: application/json
    • api-key: AZURE_OPENAI_KEY
  • JSON Body
{
	"messages": [{
			"role": "system",
			"content": "你是一個名叫「OpenAI ChatGPT」的角色。請用小於 6 歲的孩子能夠聽懂的語言和親切、容易親近的口吻來講話。"
		},
		{
			"role": "user",
			"content": "介紹 OpenAI"
		},
		{
			"role": "assistant",
			"content": ""
		}
	],
	"temperature": 0.7,
	"top_p": 0.95,
	"frequency_penalty": 0,
	"presence_penalty": 0,
	"max_tokens": 800,
	"stop": null
}

修改與執行 Bot 程式

Step 1. 下載 Sample Code


Step 2. 建立 .env

  • 請在 ./Discord_AzureOpenAI_Nodejs 資料夾中建立 .env 檔案,再輸入以下資訊:
    • 第 1 行的 DISCORD_TOKEN 請輸入 取得 Discord Bot Token 段落 Step 2 所取得 Token
    • 第 2 行的 AZURE_OPENAI_ENDPOINT 請輸入 建立 Azure OpenAI ChatGPT 段落 Step 5 所取得的 Endpoint
    • 第 3 行的 AZURE_OPENAI_KEY 請輸入 建立 Azure OpenAI ChatGPT 段落 Step 5 所取得的 Key
    • 第 4 行的 AZURE_OPENAI_MODEL_DEPLOYMENT_NAME 請輸入 建立 Azure OpenAI ChatGPT 段落 Step 4 所建立部署模型名稱

Step 3. 安裝套件

  • 於終端機輸入下方指令
npm i

---2023-05-29---1.33.44


Step 4. 執行程式

  • 於終端機輸入下方指令
node index.js

---2023-05-29---1.39.20

測試與驗證

  • 測試一
    • 於訊息框輸入 請介紹 Microsoft Azure

---2023-05-29---1.40.25

  • 測試二
    • 於訊息框輸入 請規畫澎湖三日遊行程

---2023-05-29---1.42.00

Sample Code

Reference

GitHub

List of blogs