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

內容

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

前置準備作業

檔案結構

.
├── .env
├── .env-Sample
├── README.md
├── app.py
├── azure_openai.py
└── requirements.txt

建立 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 1Endpoint ( 之後程式會用到 )

建立 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_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_Python 資料夾中建立 .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. 安裝套件

  • 於終端機輸入下方指令
pip install discord python-dotenv


Step 4. 執行程式

  • 於終端機輸入下方指令
python app.py

測試與驗證

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

  • 測試二
    • 於訊息框輸入 請規畫台中一日遊行程

Sample Code

Reference

GitHub

List of blogs