Alan Tsai 的學習筆記


學而不思則罔,思而不學則殆,不思不學則“網貸” 記錄軟體開發的點點滴滴 著重於微軟技術、網頁開發、DevOps、C#, Asp .net Mvc、Azure、AI、Chatbot、Docker、Data Science

[chatbot + AI = 下一代操作模式][38]用Application Insight看使用者都在QnA Maker查什麽

[chatbot + AI = 下一代操作模式][38]用Application Insight看使用者都在QnA Maker查什麽.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([37]維護QnA Maker的知識庫 - 設定url或者檔案為來源、多人維護以及離綫定義知識庫)介紹完了如何更容易的去維護Knowledge Base了之後,這篇來看另外一個問題:就算再怎麽維護Knowledge Base,如果裡面内容不符合使用者的查詢,那麽一點意義都沒有

因此瞭解到使用者怎麽詢問這些Knowledge Base非常的重要。

在這一篇將來看看如何透過Application Insight看看使用者都在搜索什麽問題。

Application Insight是什麽?

Application Insight屬於微軟的Application Performance Manageme (APM)的服務。簡單一點來説就是一個可以埋在程式碼裡面,然後因此可以看到一些程式運行情況的服務。

QnA Maker和其他Cognitive Service有點不同,他是一個用很多服務整合出來的一個Solution,因此在記錄使用者查詢情況的記錄是存在了Application Insight裡面。

怎麽在QnA Maker埋入Application Insight?

還記得在一開始建立QnA Maker的時候,有詢問是否要建立Application Insight。

如果在那個時候沒有選擇要,那麽就需要手動建立一個Application Insight然後在QnA Maker的Web App設定Application Settings

  1. 加入UserAppInsightsAppId
  2. 加入UserAppInsightsKey
  3. 加入UserAppInsightsName
ApplicationFrameHost_2018-08-22_20-25-41.png
需要增加的Application Settings

如何使用Application Insight看使用者情況?

當QnA Maker有埋入Application Insight之後,過一段時間,就可以開始用來做查詢了。

要先進入到Application Insight的Log Analytics的功能裡面,可以透過,點下Application Insight之後,上面的Analytics的按鈕:

ApplicationFrameHost_2018-08-22_20-29-22.png
按下Analytics來做詳細操作

接下倆會開啓一個類似SQL工具SSMS那種類似畫面出現,這就是Log Analytics的畫面。在上面可以輸入一些query,執行之後在下面可以看到結果:

ApplicationFrameHost_2018-08-22_20-32-21.png
上面輸入query,下面看到執行結果

這篇將介紹兩個query:

  1. 使用者查找的問題以及得到的答案
  2. 使用者查找的問題量

使用者查找的問題以及得到的答案

這邊寫的query類似SQL的概念,而且光看内容就大概知道在做什麽。

完整的query如下:

requests
| where url endswith "generateAnswer"
| project timestamp, id, name, resultCode, duration
| parse name with *"/knowledgebases/"KbId"/generateAnswer"
| join kind= inner (
traces | extend id = operation_ParentId
) on id
| extend question = tostring(customDimensions['Question'])
| extend answer = tostring(customDimensions['Answer'])
| project KbId, timestamp, resultCode, duration, question, answer

整個操作如下:

  1. 首先注意一下查詢的時間範圍,預設是24小時,如果你這個只是測試的服務很有可能找不到。這邊設定為7天
  2. 輸入剛剛得到的Query
  3. 按下Run
  4. 在下面可以看到結果
ApplicationFrameHost_2018-08-22_20-42-30.png
測試查找使用者詢問的問題以及得到的答案

從上面可以看到7天内總共有4個問題有被詢問。這個時候可以分析:

  1. 使用者都在問什麽問題
  2. 得到的答案對不對

當然,這裡面還有很多資訊可以挖,就看各人運用啦。

使用者查找的問題量

這個的用途可以做一個比較,例如大家都是在查那些Knowledge Base。

完整的Query如下:

requests
    | where url endswith "generateAnswer" and name startswith "POST"
    | parse name with *"/knowledgebases/"KbId"/generateAnswer" 
    | summarize ChatCount=count() by bin(timestamp, 1d), KbId

整個的執行結果如下:

ApplicationFrameHost_2018-08-22_20-51-14.png
以圖表方式呈現結果

從上圖可以看到,兩個Knowledge Base,各有2筆,然後時間相隔了一天。這個資料和上面看到的單項吻合。

結語

這篇介紹了Application Insight這個APM服務,并且看看如何整合到QnA Maker裡面。

再來介紹了兩個query看如何從Application Insight撈資料出來。

到這邊,QnA Maker也到了一個尾聲,還有很多細節可以看,不過相信透過這幾篇的介紹,再去看Azure文件應該就沒什麽問題啦。

下一篇([39]Video Indexer - 讓影片可以被搜索和分析出影片的重點)來介紹一下Cognitive Service的另外一個組合服務,Video Indexer


如果文章對您有幫助,就請我喝杯飲料吧
街口支付QR Code
街口支付QR Code
台灣 Pay QR Code
台灣 Pay QR Code
Line Pay 一卡通 QR Code
Line Pay 一卡通 QR Code
街口支付QR Code
支付寶QR Code
街口支付QR Code
微信支付QR Code
comments powered by Disqus