使用中繼資料篩選回應

QnA Maker 可讓您將中繼資料以機碼/值組的形式新增至問答配對。 此資訊可用來篩選使用者查詢的結果,並儲存可在後續交談中使用的其他資訊。

注意

QnA Maker 服務即將於 2025 年 3 月 31 日淘汰。 現在,Azure AI 語言提供較新版本的問題和答案功能。 如需瞭解語言服務內的問題解答功能,請參閱問題解答。 從 2022 年 10 月 1 日開始,您將無法建立新的 QnA Maker 資源。 如需將現有 QnA Maker 知識庫移轉至問題解答的相關資訊,請參閱移轉指南

使用 QnA 實體來儲存問題和答案

請務必了解 QnA Maker 如何儲存問題和答案資料。 下圖說明某個 QnA 實體:

QnA 實體的圖例

每個 QnA 實體都有唯一且持續性的識別碼。 您可以使用此識別碼來對特定 QnA 實體進行更新。

使用中繼資料,依自訂中繼資料標記篩選答案

新增中繼資料可讓您依這些中繼資料標記篩選答案。 從 [檢視選項] 功能表中,新增 [中繼資料] 資料行。 選取中繼資料 + 圖示來新增中繼資料配對,以將中繼資料新增至知識庫。 此配對由一個機碼和一個值所組成。

新增中繼資料的螢幕擷取畫面

使用中繼資料標記的 strictFilters 篩選結果

請考慮使用者的問題 "When does this hotel close?" (這家旅館何時關閉?),這是針對 "Paradise" 餐廳暗示的意圖。

由於只需 "Paradise" 餐廳的結果,因此,您可以在 GenerateAnswer 呼叫中設定 "Restaurant Name" (餐廳名稱) 中繼資料的篩選條件。 下列範例說明這點:

{
    "question": "When does this hotel close?",
    "top": 1,
    "strictFilters": [ { "name": "restaurant", "value": "paradise"}]
}

依來源篩選

如果您的知識庫中有多個內容來源,而您想要將結果限制為一組特定來源,則可使用保留關鍵字 source_name_metadata 來執行此動作,如下所示。

"strictFilters": [
    {
        "name": "category",
        "value": "api"
    },
   {
        "name": "source_name_metadata",
        "value": "boby_brown_docx"
    },
   {
        "name": "source_name_metadata",
        "value": "chitchat.tsv"
   }
]

預設的邏輯 AND

若要在查詢中合併數個中繼資料篩選條件,請將其他中繼資料篩選條件新增至 strictFilters 屬性的陣列。 依預設,這些值會以邏輯方式合併 (AND)。 邏輯組合要求所有篩選條件均符合 QnA 配對,才能在答案中傳回該配對。

這相當於使用具有 AND 值的 strictFiltersCompoundOperationType 屬性。

使用 strictFiltersCompoundOperationType 屬性的邏輯 OR

合併數個中繼資料篩選條件時,如果您只在意符合其中一個或一些篩選條件,請使用具有 OR 值的 strictFiltersCompoundOperationType 屬性。

這可讓您的知識庫在符合任何篩選條件時傳回答案,但將不會傳回沒有中繼資料的答案。

{
    "question": "When do facilities in this hotel close?",
    "top": 1,
    "strictFilters": [
      { "name": "type","value": "restaurant"},
      { "name": "type", "value": "bar"},
      { "name": "type", "value": "poolbar"}
    ],
    "strictFiltersCompoundOperationType": "OR"
}

快速入門中的中繼資料範例

在 QnA Maker 入口網站的中繼資料快速入門中,深入了解中繼資料:

使用問答結果來保存交談內容

GenerateAnswer 的回應會包含相符問答配對的對應中繼資料資訊。 您可以在用戶端應用程式中使用此資訊來儲存先前交談的內容,以便在稍後的交談中使用。

{
    "answers": [
        {
            "questions": [
                "What is the closing time?"
            ],
            "answer": "10.30 PM",
            "score": 100,
            "id": 1,
            "source": "Editorial",
            "metadata": [
                {
                    "name": "restaurant",
                    "value": "paradise"
                },
                {
                    "name": "location",
                    "value": "secunderabad"
                }
            ]
        }
    ]
}

下一步