將多個類別新增至您的常見問題集機器人

在本教學課程中,您會了解如何:

  • 建立專案,並利用中繼資料來將問題答案配對標記為不同的類別
  • 針對每個領域建立個別的專案
  • 針對每個領域建立個別的語言資源

建置常見問題集機器人時,您可能會遇到需要在多個領域中處理查詢的使用案例。 假設 Microsoft 的行銷小組想要建置客戶支援 Bot,以回答有關多個 Surface 產品的常見使用者查詢。 為了簡單起見,我們將使用兩個常見問題集 URL (Surface 手寫筆Surface Earbuds) 來建立專案。

使用領域特定的中繼資料建立專案

內容作者可以使用檔來擷取問題答案組,或將自訂的問題解答組新增至專案。 若要將這些問題和答案分組到特定的領域或類別,您可以新增中繼資料。

針對 Surface 產品上的 Bot,您可以採取下列步驟來建立 Bot,以回答針對這兩種產品類型的查詢:

  1. 當您新增了下列每一個 URL 之後,即可透過選取 [新增來源]>[URL]> 和 [全部新增],新增下列常見問題集 URL 作為來源:

    Surface 手寫筆常見問題集
    Surface Earbuds 常見問題集

    新增 URL UI 的螢幕擷取畫面。

  2. 在此專案中,我們在兩個產品上都有問題答案組,我們想要區分它們,以便我們可以在給定產品的問題和答案之間搜尋回應。 為達此目的,我們可以針對問題答案配對更新中繼資料欄位。

    如您在下列範例中所見,我們新增了一個中繼資料,其中的 product 為機碼,而 surface_pensurface_earbuds 為值 (如果適用)。 您可以擴充此範例,以擷取多個產品的相關資料,並針對每個產品新增不同的值。

    中繼資料範例的螢幕擷取畫面。

  3. 現在,為了限制系統搜尋特定產品的回應,您必須在問題解答 REST API 中傳遞該產品作為篩選條件。

    您可以從 [部署專案] 窗格擷取 REST API 預測 URL:

    [部署專案] 頁面的螢幕擷取畫面,其中顯示預測 URL。

    在 API 呼叫的 JSON 主體中,我們已針對中繼資料 product 傳遞 surface_pen 作為值。 因此,系統將只會在具有相同中繼資料的 QnA 配對中尋找回應。

        {
          "question": "What is the price?",
          "top": 3
        },
        "answerSpanRequest": {
          "enable": true,
          "confidenceScoreThreshold": 0.3,
          "topAnswersWithSpan": 1
        },
        "filters": {
          "metadataFilter": {
            "metadata": [
              {
                "key": "product",
                "value": "surface_pen"
              }
            ]
          }
        }
    

    您可以透過下列方式,根據使用者輸入來取得中繼資料值:

    • 透過 Bot 用戶端,明確地將領域當作使用者的輸入。 例如,如下所示,您可以在起始交談時,將產品類別當作使用者的輸入。

      取得中繼資料輸入

    • 根據 Bot 內容,隱含地識別領域。 例如,如果前一個問題與特定的 Surface 產品相關,用戶端就可以將其儲存為內容。 如果使用者未在下一個查詢中指定產品,您就能將 Bot 內容當作中繼資料傳遞給產生解答 API。

      傳遞內容

    • 從使用者查詢中擷取實體,以識別要用於中繼資料篩選條件的領域。 您可以使用其他 Azure AI 服務,例如 具名實體辨識 (NER) 交談式語言理解 來擷取實體。

      從查詢擷取中繼資料

我們的專案可以有多大?

您可以將最多 50000 個問題答案組新增至單一專案。 如果您的資料超過 50,000 個問題解答組,您應該考慮分割專案。

針對每個領域建立個別的專案

您也可以為每個網域建立個別的專案,並個別維護專案。 使用者需要所有 API 才能傳遞專案名稱,以對專案進行任何更新,或擷取使用者問題的解答。

當服務收到使用者問題時,您必須在顯示的 REST API 端點中傳遞 projectName ,以從相關專案擷取回應。 您可以在 [取得預測 URL] 底下的[部署專案] 頁面中找到 URL:

https://southcentralus.api.cognitive.microsoft.com/language/:query-knowledgebases?projectName=Test-Project-English&api-version=2021-10-01&deploymentName=production

針對每個領域建立個別的語言資源

假設 Microsoft 的行銷小組想要建立客戶支援 Bot,以回答有關 Surface 和 Xbox 產品的使用者查詢。 他們計畫指派不同的小組來存取 Surface 和 Xbox 上的專案。 在此情況下,建議您建立兩個問題解答資源 - 一個用於 Surface,另一個用於 Xbox。 但是,您可以為存取相同資源的使用者定義不同的角色。