【 NLP 】使用 Discord 與 Azure OpenAI ChatGPT 建立 AI 問答機器人 ( Node.js )
內容
- 前置準備作業
- 檔案結構
- 建立 Azure OpenAI ChatGPT
- 建立 Discord 伺服器
- 取得 Discord Bot Token
- API 格式
- 修改與執行 Bot 程式
- 測試與驗證
前置準備作業
- 已建立 Azure 帳號並能正常登入與使用
- 已於電腦端安裝 IDE,本範例使用 Visual Studio Code
- 已於電腦端安裝 Node.js
檔案結構
.
├── .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 的搜尋結果

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

Step 3. 輸入相關資訊
- 請依欄位要求進行輸入

- 輸入完成後點選
Next

- 點選
Next

- 確認資訊後點選
Create

- 建立過程中

- 建立完成,點選
Go to resource

Step 4. 建立部署模型
- 點選左側的
Model deployments> 再點選Manage Deployments

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

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


- 建立完成

Step 5. 取得 Key 與 Endpoint
- 點選左側的
Keys and Endpoint取得KEY 1與Endpoint( 之後程式會用到 )

建立 Discord 伺服器
Step 1. 登入到 Discord
Step 2. 建立伺服器
- 點選左下角的
+

- 點選
建立自已的

- 點選
跳過這個問題

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

- 建立完成

取得 Discord Bot Token
Step 1. 開啟開發者網頁
Step 2. 取得 Token
- 點選左側的
Applications> 再點選右上方的New Application

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


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

- 點選
Yes, do it!

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

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


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

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

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


- 點選
繼續

- 點選
授權

- 點選
我是人類

- 授權完成

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

API 格式
- URL
- POST https://AZURE_OPENAI_ENDPOINT/openai/deployments/AZURE_OPENAI_MODEL_DEPLOYMENT_NAME/chat/completions?api-version=2023-03-15-preview
- 請修改
AZURE_OPENAI_ENDPOINT與AZURE_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
}
- 參數說明請參考 Azure OpenAI 服務 REST API 參考
修改與執行 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所建立部署模型名稱
- 第 1 行的
Step 3. 安裝套件
- 於終端機輸入下方指令
npm i

Step 4. 執行程式
- 於終端機輸入下方指令
node index.js

測試與驗證
- 測試一
- 於訊息框輸入
請介紹 Microsoft Azure
- 於訊息框輸入

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

Sample Code
Reference
GitHub
List of blogs
