答案的信賴分數
當使用者查詢與某個知識庫相符時,QnA Maker 會傳回相關的答案以及信賴分數。 此分數表示該答案針對指定之使用者查詢正確比對的信賴度。
信賴分數是介於 0 到 100 之間的數字。 100 分是極可能完全相符,而 0 分表示找不到相符的答案。 分數越高,表示答案的信賴度越好。 針對指定的查詢,可能會傳回多個答案。 在這種情況下,會以信賴分數遞減的順序傳回答案。
在下列範例中,您可以看到一個 QnA 實體和 2 個問題。
針對上述的範例,對不同的使用者查詢類型來說,您可以預期分數惠如下列的範例分數範圍:
下表指出與指定分數相關聯的一般信賴度。
分數值 | 分數意義 | 範例查詢 |
---|---|---|
90 - 100 | 使用者查詢和 KB 問題接近完全相符 | 「我的變更在發行後並未在 KB 中更新」 |
> 70 | 高信賴度:通常是良好的答案,能完整回答使用者查詢 | 「我發行了我的 KB 但它不會更新」 |
50 - 70 | 中信賴度:通常是相當不錯的答案,能回答使用者查詢的主要意圖 | 「我應該要先儲存更新再發行 KB 嗎?」 |
30 - 50 | 低信賴度:通常是相關聯的答案,能對使用者意圖進行部分的回答 | 「儲存和訓練的作用為何?」 |
< 30 | 信賴度非常低:通常無法回答使用者的查詢,但有一些相符的字組或片語 | 「我可以從哪裡新增同義字到 KB」 |
0 | 沒有相符項目,所以不會傳回答案。 | 「服務的成本是多少」 |
選擇分數閾值
上表顯示大部分 KB 預期的分數。 不過,因為每個 KB 都不相同,且具有不同類型的字組、意圖和目標,建議您測試並選擇最適合您的閾值。 根據預設,閾值會設為 0,因此會傳回所有可能的答案。 應可適用於大部分 KB 的建議閾值為 50。
選擇您自己的閾值時,請記住在精確度和涵蓋範圍之間取得平衡,並根據您的需求調整閾值。
如果您的案例中精確度比較重要,則提升您的閾值。 如此一來,在每次傳回答案時,就會是更高信賴度的情況,且更可能接近使用者所需的答案。 在這種情況下,您最後可能會留下更多未回答的問題。 例如:如果您將閾值設為 70,您可能會遺漏一些模稜兩可的問題,例如「什麼是儲存和訓練?」。
如果涵蓋範圍 (或重新叫用) 更重要,且您想要盡可能回答更多問題 (即使答案與使用者的問題只有部分相關),則您可以降低閾值。 這表示會有更多答案無法回答使用者實際查詢,但能提供一些其他可能相關之答案的情況。 例如:如果您將閾值設為 30,您可能會提供「我可以在哪裡編輯 KB?」之類查詢的答案
設定閾值
將閾值分數設定為 GenerateAnswer API JSON 主體的屬性。 這表示您可以針對每個 GenerateAnswer 呼叫進行設定。
從 Bot 架構中,使用 C# 或 Node.js,將分數設定為選項物件的一部分。
改善信賴分數
若要改善使用者查詢特定回應的信賴分數,您可以將使用者查詢加入至知識庫做為該回應的替代問題。 您也可以使用不區分大小寫的文字變異形式 \(英文\),來將同義字新增至 KB 中的關鍵字。
類似的信賴分數
多個回應有類似的信賴分數時,表示查詢過於不具體,因此有多個同等可能性的相符答案。 請嘗試進一步調整 QnA,以便每個 QnA 實體的意圖彼此相異。
測試與生產環境之間的信賴分數差異
在測試和發佈的知識庫版本之間,即使內容相同,不過答案的信賴分數可能會略微變化。 這是因為測試和發佈的知識庫位於不同的 Azure AI 搜尋服務索引中。
測試索引會保留知識庫的所有 QnA 配對。 查詢測試索引時,查詢會套用至整個索引,然後將結果限制為該特定知識庫的分割。 如果測試查詢結果對您驗證知識庫的能力有負面影響,您可以:
- 使用下列其中一項來組織您的知識庫:
- 1 個資源限制為 1 個 KB:將您的單一 QnA 資源 (和產生的 Azure AI 搜尋服務測試索引) 限制為單一知識庫。
- 2 個資源 - 1 個用於測試,1 個用於生產:有兩個 QnA Maker 資源,其中一個用於測試 (其中包含自己的測試和生產索引),另一個用於生產 (也有自己的測試和生產索引)
- ,以及查詢您的測試和生產知識庫時,請一律使用相同的參數,例如 top。
發佈知識庫時,知識庫的問題與答案內容會從測試索引移到 Azure 搜尋服務中的生產索引。 請查看發佈作業的運作方式。
如果您的知識庫位於不同區域,則每個區域都會使用自己的 Azure AI 搜尋服務索引。 由於會使用不同的索引,因此,分數將不會完全相同。
未找到相符項目
順位排定程式找不到適當的相符項目時,會傳回 0.0 的信賴分數或「無」,而且預設回應是「在資料庫中找不到適當的相符項目」。 在呼叫端點的 Bot 和應用程式碼中,您可以覆寫這個預設回應。 或者,您也可以在 Azure 中設定覆寫回應,這會變更特定 QnA Maker 服務中部署的所有知識庫預設值。