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
街口支付QR Code
支付寶QR Code
街口支付QR Code
微信支付QR Code
comments powered by Disqus