查詢知識庫以取得答案

必須發佈知識庫。 發行之後,會使用 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 或其他用戶端應用程式 的使用者查詢。 下圖說明收到使用者查詢時的程式。

The ranking model process for a user query

排名器程式

下表說明此程式。

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"
                }
            ]
        }
    ]
}

下一步