iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 7
0

話不多說,直接來開始今天的操作步驟吧~

用 Python 程式碼簡單實作一個範例

前置步驟

0.1 準備好一個 Azure Account

0.2 建立好 Python 環境

0.3 打開 terminal (Powershell or CMD),輸入以下指令

pip install requests

在 Azure Portal 上建立 QnA Maker

1.1 前往 Azure Portal,並搜尋 QnA Maker
https://ithelp.ithome.com.tw/upload/images/20200922/201296891VW17bo36P.jpg

1.2 自己完成以下的設定
https://ithelp.ithome.com.tw/upload/images/20200922/20129689A1zJRxGgeA.jpg

強烈建議 Azure Search pricing tier 至少用 Basic

1.3 待建立完成後,這次不用找到你的資源並且複製 Key,後面還有一些步驟要先做

在 QnA Maker 官網設計知識庫

建立一個知識庫

2.1 前往 QnA Maker 官網

2.2 確認你已經登入你的 Azure Account
https://ithelp.ithome.com.tw/upload/images/20200922/20129689BGKb0fH7kQ.jpg

2.3 點選Create a knowledge base

2.4 設定以下欄位

QnA service 選填剛剛建立好的服務名稱

https://ithelp.ithome.com.tw/upload/images/20200922/20129689Ce4qNDAM03.jpg

2.5 幫這個知識庫輸入一個名字
https://ithelp.ithome.com.tw/upload/images/20200922/20129689igiEOECbhc.jpg

2.6 (這個步驟自行選擇要不要做)

我是填入 Costco 的 FAQ 網站
(https://warehouses.costco.com.tw/faq_zh/faq.action)

https://ithelp.ithome.com.tw/upload/images/20200922/20129689ATsYtJvwXt.jpg

2.7 (這個步驟自行選擇要不要做)

也可以上傳 Word, PDF, 制式的 Excel, Tsv 檔

https://ithelp.ithome.com.tw/upload/images/20200922/20129689yCDXCXl0Fr.jpg

2.8 上述步驟完成後,滾到最下面按下Create your KB
https://ithelp.ithome.com.tw/upload/images/20200922/20129689avqpV43sAM.jpg

設定知識庫的內容

3.1 找到你剛剛建立的知識庫
https://ithelp.ithome.com.tw/upload/images/20200922/20129689jAs5EWv4r8.jpg

3.2 你會發現很神奇的 Costco 那邊的 FAQ 都被抓過來了

3.3 建立一個自訂的問答組合
https://ithelp.ithome.com.tw/upload/images/20200922/2012968970hrBH1PJK.jpg

3.4 點擊Save and Train

3.5 點擊Publish,再點擊Publish
https://ithelp.ithome.com.tw/upload/images/20200922/20129689IXQAtu3rjm.jpg

3.6 記錄這個畫面裡的內容,等等程式碼中會用到
https://ithelp.ithome.com.tw/upload/images/20200922/20129689rCOAcGXPPg.jpg

寫一個簡單的小程式

4.1 打開 Visual Studio Code (VS Code)

4.2 新增一個 Python 程式檔,命名為test-qna-maker.py,並將以下程式碼複製貼上

import requests
import json
def get_QA_answer_test(getanswer_url, body):
    headers = {
        # Request headers
        'Content-Type': 'application/json',
        'Authorization': '<你自己的key>'    ## 填入 EndpointKey 後面那亂碼
    }
    url = getanswer_url
    response = requests.request("POST", url, data = body, headers=headers)
    #將json轉成string
    response_text = json.loads(response.text)
    print(response_text['answers'][0]['answer'])

# 按照格式貼入剛剛要記錄的 Host, Post
getanswer_url = 'https://day07-qnamaker.azurewebsites.net/qnamaker/knowledgebases/3fb808cf-54cf-41c5-9056-96a97eff8e91/generateAnswer'  
question_sentence = {
    "question":"我帥嗎"   # 輸入你的問句
    }
question_sentence_json = json.dumps(question_sentence)
get_QA_answer_test(getanswer_url, question_sentence_json)

4.3 打開terminal,確認位置為程式檔案的位置後,輸入以下指令

python test-qna-maker.py

以上是今天想要分享的內容,大家明天見。/images/emoticon/emoticon29.gif


上一篇
【Day06】QnA Maker (1/2)
下一篇
【Day08】Language Understanding (1/2)
系列文
利用Python開發一個以Azure服務為基底的Chat Bot30

尚未有邦友留言

立即登入留言