使用中繼資料篩選回應
QnA Maker 可讓您將中繼資料以機碼/值組的形式新增至問答配對。 此資訊可用來篩選使用者查詢的結果,並儲存可在後續交談中使用的其他資訊。
注意
QnA Maker 服務即將於 2025 年 3 月 31 日淘汰。 較新版的問題和解答功能現在隨附於 Azure AI 語言。 如需瞭解語言服務內的問題解答功能,請參閱問題解答。 從 2022 年 10 月 1 日開始,您將無法建立新的 QnA Maker 資源。 如需將現有 QnA Maker 知識庫移轉至問題解答的相關資訊,請參閱移轉指南。
使用 QnA 實體來儲存問題和答案
請務必了解 QnA Maker 如何儲存問題和答案資料。 下圖說明某個 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"
}
]
}
]
}