Fråga kunskapsbas efter svar

En kunskapsbas måste publiceras. När den har publicerats efterfrågas kunskapsbas vid slutpunkten för körningsförutsägelse med hjälp av generateAnswer-API:et. Frågan innehåller frågetexten och andra inställningar för att hjälpa QnA Maker att välja bästa möjliga matchning till ett svar.

Kommentar

QnA Maker-tjänsten dras tillbaka den 31 mars 2025. En nyare version av fråge- och svarsfunktionen är nu tillgänglig som en del av Azure AI Language. Information om funktioner för frågesvar i språktjänsten finns i svar på frågor. Från och med den 1 oktober 2022 kommer du inte att kunna skapa nya QnA Maker-resurser. Information om hur du migrerar befintliga QnA Maker-kunskapsbas till frågesvar finns i migreringsguiden.

Så här bearbetar QnA Maker en användarfråga för att välja det bästa svaret

Den tränade och publicerade QnA Maker-kunskapsbas tar emot en användarfråga från en robot eller ett annat klientprogram i GenerateAnswer-API:et. Följande diagram illustrerar processen när användarfrågan tas emot.

The ranking model process for a user query

Rankningsprocess

Processen förklaras i följande tabell.

Steg Syfte
1 Klientprogrammet skickar användarfrågan till GenerateAnswer-API:et.
2 QnA Maker förbearbetar användarfrågan med språkidentifiering, stavningsprogram och ordbrytare.
3 Den här förbearbetningen görs för att ändra användarfrågan för bästa sökresultat.
4 Den här ändrade frågan skickas till ett Azure AI Search-index som tar emot top antalet resultat. Om rätt svar inte finns i dessa resultat ökar du värdet top för något. I allmänhet fungerar värdet 10 för top i 90 % av frågorna. Azure Search filtrerar stoppord i det här steget.
5 QnA Maker använder syntaktisk och semantisk baserad funktionalisering för att fastställa likheten mellan användarfrågan och de hämtade QnA-resultaten.
6 Den maskininlärda rankningsmodellen använder de olika funktionerna, från steg 5, för att fastställa konfidenspoängen och den nya rangordningen.
7 De nya resultaten returneras till klientprogrammet i rangordnad ordning.

Funktioner som används omfattar men är inte begränsade till ordnivåsemantik, termnivåvikt i en corpus och djupinlärda semantiska modeller för att fastställa likheter och relevans mellan två textsträngar.

HTTP-begäran och -svar med slutpunkt

När du publicerar din kunskapsbas skapar tjänsten en REST-baserad HTTP-slutpunkt som kan integreras i ditt program, vanligtvis en chattrobot.

Användarens frågebegäran för att generera ett svar

En användarfråga är den fråga som slutanvändaren ställer till kunskapsbas, till exempel How do I add a collaborator to my app?. Frågan är ofta i ett naturligt språkformat eller några nyckelord som representerar frågan, till exempel help with collaborators. Frågan skickas till din kunskapsbas från en HTTP-begäran i klientprogrammet.

{
    "question": "How do I add a collaborator to my app?",
    "top": 6,
    "isTest": true,
    "scoreThreshold": 20,
    "strictFilters": [
    {
        "name": "QuestionType",
        "value": "Support"
    }],
    "userId": "sd53lsY="
}

Du styr svaret genom att ange egenskaper som scoreThreshold, top och strictFilters.

Använd konversationskontext med funktioner för flera turer för att hålla konversationen igång för att förfina frågorna och svaren för att hitta rätt och slutligt svar.

Svaret från ett anrop för att generera ett svar

HTTP-svaret är svaret som hämtas från kunskapsbas, baserat på den bästa matchningen för en viss användarfråga. Svaret innehåller svaret och förutsägelsepoängen. Om du bad om mer än ett toppsvar med top egenskapen får du mer än ett toppsvar, var och en med en poäng.

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

Nästa steg