Fråga baza znanja efter svar

En baza znanja måste publiceras. När den har publicerats efterfrågas baza znanja 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-baza znanja 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-baza znanja 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.

Rangordningsmodellprocessen för en användarfråga

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 baza znanja 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 baza znanja, 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 baza znanja 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 baza znanja, 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