查詢知識庫以取得答案
必須發佈知識庫。 發行之後,會使用 generateAnswer API 在執行時間預測端點查詢知識庫。 此查詢包含問題文字和其他設定,可協助 QnA Maker 選取最符合答案的可能相符專案。
注意
QnA Maker 服務將于 2025 年 3 月 31 日淘汰。 較新版的問題和解答功能現在隨附於 Azure AI 語言。 如需語言服務內的問題解答功能,請參閱 問題解答 。 從 2022 年 10 月 1 日起,您將無法建立新的 QnA Maker 資源。 如需將現有 QnA Maker 知識庫移轉至問題解答的相關資訊,請參閱 移轉指南 。
QnA Maker 如何處理使用者查詢以選取最佳答案
定型和 已發佈 的 QnA Maker 知識庫會在 GenerateAnswer API 接收來自 Bot 或其他用戶端應用程式 的使用者查詢。 下圖說明收到使用者查詢時的程式。
排名器程式
下表說明此程式。
Step | 目的 |
---|---|
1 | 用戶端應用程式會將使用者查詢傳送至 GenerateAnswer API 。 |
2 | QnA Maker 會使用語言偵測、拼字檢查和斷詞工具,預先處理使用者查詢。 |
3 | 此前置處理會用來變更使用者查詢,以取得最佳的搜尋結果。 |
4 | 此變更的查詢會傳送至 Azure AI 搜尋索引,以接收 top 結果數目。 如果正確的答案不在這些結果中,請稍微增加 的值 top 。 一般而言,90% 查詢中適用于 的 值為 10 top 。 Azure 搜尋服務會篩選 此步驟中的停用字詞 。 |
5 | QnA Maker 使用語法和語意型特徵化來判斷使用者查詢與擷取的 QnA 結果之間的相似度。 |
6 | 機器學習排名器模型會使用步驟 5 的不同功能來判斷信賴分數和新排名順序。 |
7 | 新的結果會依排名順序傳回至用戶端應用程式。 |
使用的功能包括但不限於文字層級語意、主體中的字詞層級重要性,以及深入學習的語意模型,以判斷兩個文字字串之間的相似性和相關性。
使用端點的 HTTP 要求和回應
當您發佈知識庫時,服務會建立一個 REST 型 HTTP 端點,可整合到您的應用程式,通常是聊天機器人。
產生答案的使用者查詢要求
使用者查詢是使用者詢問知識庫的問題,例如 How do I add a collaborator to my app?
。 查詢通常以自然語言格式或代表問題的一些關鍵字,例如 help with collaborators
。 查詢會從用戶端應用程式中的 HTTP 要求傳送至您的知識庫。
{
"question": "How do I add a collaborator to my app?",
"top": 6,
"isTest": true,
"scoreThreshold": 20,
"strictFilters": [
{
"name": "QuestionType",
"value": "Support"
}],
"userId": "sd53lsY="
}
您可以設定 scoreThreshold、top 和 strictFilters 等 屬性來控制回應。
使用 對話內容 搭配 多回合功能 ,讓交談能夠精簡問題和答案,以尋找正確和最終的答案。
來自呼叫以產生答案的回應
HTTP 回應是根據指定使用者查詢的最佳比對,從知識庫擷取的答案。 回應包含答案和預測分數。 如果您要求使用 top
屬性提供一個以上的最上層答案,您會得到一個以上的最上層答案,每個答案都有分數。
{
"answers": [
{
"questions": [
"How do I add a collaborator to my app?",
"What access control is provided for the app?",
"How do I find user management and security?"
],
"answer": "Use the Azure portal to add a collaborator using Access Control (IAM)",
"score": 100,
"id": 1,
"source": "Editorial",
"metadata": [
{
"name": "QuestionType",
"value": "Support"
},
{
"name": "ToolDependency",
"value": "Azure Portal"
}
]
}
]
}