LINE Chatbot 建立遊戲化體驗APP|Day11 結合Microsoft QnaMaker建立LINEBOT智能對話

QnA Maker 是啥

QnA Maker 是微軟提供一個雲端的自然語言處理 (NLP) 處理服務,可輕鬆透過微軟KB(Knowledgebase)後台建立自己的知識庫,並能從使用者所輸入的語句,理解他的意圖,提供可能對應的知識庫答案。要在 Line 串接大概分為以下步驟:

  1. 在Azure註冊 QnA Maker
  2. 新增一個 knowledge base
  3. 增加題目與回答
  4. 完成訓練、測試 & 發佈
  5. 取得 Endpoint、EndpointKey,設定POST,讓程式回傳智能回覆

在Azure註冊 QnA Maker

1.建立QnaMaker 因為他是使用azure服務,請先登入https://www.qnamaker.ai/Create

新的Azure帳號有以下好處,也可以注意一下
  • 12 個月免費的熱門服務
  • 25+ 個永遠免費的服務
  • 在前 30 天有 $6,300 的點數可用
p.s. 有綁信用卡認證的可以注意,Azure不會自動續費。點數用盡後,我們會詢問您是否要繼續並使用隨用隨付。如果您同意,只須在使用量超過服務的免費額度時付費。

完成之後,在上方輸入 qnamaker ,並創建我們第一個Project、Azure Search、App Service、App insights

最下方價格方案選擇free,就可以放心測試了。免費方案限制就是只能有3份知識庫、每秒只能調用Api 3次,每月50,000筆Request,對於一般使用或技術評估來講很夠用了。

Azure Search、App Service、App insights

建立好之後,就可以回到 https://www.qnamaker.ai/Create ,並在step2選到我們剛剛設定的QnA service了

第三步是為你的KB取名,第四步是如果你有資料集可以直接匯入,都沒有的話,我們來到第五步-建立KB。進入到你專屬的KB的時候,照著以下步驟建立我們第一個對話。完成後點右上角Save and train,並使用Test做測試。完成後點選上方的PUBLISH發送。

我們的Line Bot程式要使用這個KB時,需要GUID及授權碼。在發布之後會跳到這頁,或是你可以在settings最下方看到

程式串接QnaMaker 的HTTP request

接下來要用程式來取的這個KB的資料,直接上程式碼

import http.client, json

host = 'xxxx'  #主機
endpoint_key = "xxxxxxxxx"  #授權碼
kb = "xxxxxxxxx"  #GUID碼
method = "/qnamaker/knowledgebases/" + kb + "/generateAnswer"


def get_answer(strin):   #從外面傳入使用者文字,我是用event.message.text
    while True:
        
        if strin == '':
            break
        else:
            question = {  #問題
                'question': strin,
            }
            content = json.dumps(question)
            headers = {
                'Authorization': 'EndpointKey ' + endpoint_key,
                'Content-Type': 'application/json',
                'Content-Length': len(content)
            }
            conn = http.client.HTTPSConnection(host)  #連線
            conn.request("POST", method, content, headers)
            response = conn.getresponse()
            result = response.read()  #取得結果
            result1 = json.loads(result)  #轉為JSON格式
            return result1['answers'][0]['answer']  #顯示結果

LINE BOT開發應用延伸閱讀

LINE BOT Day1 部署程式碼到免費主機heroku

Leave a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

回到頂端