Een antwoord krijgen met de GenerateAnswer-API

Als u het voorspelde antwoord op de vraag van een gebruiker wilt krijgen, gebruikt u de GenerateAnswer-API. Wanneer u een Knowledge Base publiceert, ziet u informatie over het gebruik van deze API op de pagina Publiceren. U kunt de API ook configureren om antwoorden te filteren op basis van metagegevenstags en de Knowledge Base van het eindpunt testen met de parameter testqueryreeks.

Notitie

De QnA Maker-service wordt op 31 maart 2025 buiten gebruik gesteld. Er is nu een nieuwere versie van de vraag- en antwoordmogelijkheid beschikbaar als onderdeel van Azure AI Language. Zie Vragen beantwoorden voor de mogelijkheden voor het beantwoorden van vragen in de Taalservice. Vanaf 1 oktober 2022 kunt u geen nieuwe QnA Maker-resources meer maken. Raadpleeg de migratiehandleiding voor informatie over het migreren van bestaande QnA Maker-knowledge bases naar het beantwoorden van vragen.

Antwoordvoorspellingen ophalen met de GenerateAnswer-API

U gebruikt de GenerateAnswer-API in uw bot of toepassing om een query uit te voeren op uw Knowledge Base met een gebruikersvraag, om de beste overeenkomst op te halen uit de vraag- en antwoordparen.

Notitie

Deze documentatie is niet van toepassing op de nieuwste versie. Raadpleeg de quickstart voor het beantwoorden van vragen voor meer informatie over het gebruik van de meest recente api's voor het beantwoorden van vragen.

Publiceren om het GenerateAnswer-eindpunt op te halen

Nadat u uw Knowledge Base hebt gepubliceerd vanuit de QnA Maker-portal of met behulp van de API, kunt u de details van uw GenerateAnswer-eindpunt ophalen.

Ga als volgende te werk om uw eindpuntgegevens op te halen:

  1. Meld u aan bij https://www.qnamaker.ai.

  2. Selecteer in Mijn knowledge basesde optie Code weergeven voor uw Knowledge Base. Schermopname van Mijn knowledge bases

  3. Haal de eindpuntgegevens van GenerateAnswer op.

    Schermopname van eindpuntdetails

U kunt uw eindpuntgegevens ook ophalen op het tabblad Instellingen van uw Knowledge Base.

GenerateAnswer-aanvraagconfiguratie

U roept GenerateAnswer aan met een HTTP POST-aanvraag. Zie de quickstarts voor voorbeeldcode die laat zien hoe u GenerateAnswer aanroept.

De POST-aanvraag maakt gebruik van:

De GenerateAnswer-URL heeft de volgende indeling:

https://{QnA-Maker-endpoint}/knowledgebases/{knowledge-base-ID}/generateAnswer

Vergeet niet om de eigenschap HTTP-header van Authorization in te stellen met een waarde van de tekenreeks EndpointKey met een afsluitende spatie en vervolgens de eindpuntsleutel op de pagina Instellingen .

Een voorbeeld van een JSON-hoofdtekst ziet er als volgt uit:

{
    "question": "qna maker and luis",
    "top": 6,
    "isTest": true,
    "scoreThreshold": 30,
    "rankerType": "" // values: QuestionOnly
    "strictFilters": [
    {
        "name": "category",
        "value": "api"
    }],
    "userId": "sd53lsY="
}

Meer informatie over rankerType.

In de vorige JSON zijn alleen antwoorden opgevraagd die 30% of hoger zijn dan de drempelwaarde.

Eigenschappen van GenerateAnswer-antwoord

Het antwoord is een JSON-object met alle informatie die u nodig hebt om het antwoord en de volgende keer in het gesprek weer te geven, indien beschikbaar.

{
    "answers": [
        {
            "score": 38.54820341616869,
            "Id": 20,
            "answer": "There is no direct integration of LUIS with QnA Maker. But, in your bot code, you can use LUIS and QnA Maker together. [View a sample bot](https://github.com/Microsoft/BotBuilder-CognitiveServices/tree/master/Node/samples/QnAMaker/QnAWithLUIS)",
            "source": "Custom Editorial",
            "questions": [
                "How can I integrate LUIS with QnA Maker?"
            ],
            "metadata": [
                {
                    "name": "category",
                    "value": "api"
                }
            ]
        }
    ]
}

De vorige JSON reageerde met een antwoord met een score van 38,5%.

Alleen vragen vergelijken, op tekst

QnA Maker doorzoekt standaard vragen en antwoorden. Als u alleen vragen wilt doorzoeken om een antwoord te genereren, gebruikt u de RankerType=QuestionOnly in de POST-hoofdtekst van de GenerateAnswer-aanvraag.

U kunt zoeken in de gepubliceerde kb, met behulp van isTest=false, of in de test kb met behulp van isTest=true.

{
  "question": "Hi",
  "top": 30,
  "isTest": true,
  "RankerType":"QuestionOnly"
}

QnA Maker gebruiken met een bot in C#

Het botframework biedt toegang tot de eigenschappen van de QnA Maker met de getAnswer-API:

using Microsoft.Bot.Builder.AI.QnA;
var metadata = new Microsoft.Bot.Builder.AI.QnA.Metadata();
var qnaOptions = new QnAMakerOptions();

metadata.Name = Constants.MetadataName.Intent;
metadata.Value = topIntent;
qnaOptions.StrictFilters = new Microsoft.Bot.Builder.AI.QnA.Metadata[] { metadata };
qnaOptions.Top = Constants.DefaultTop;
qnaOptions.ScoreThreshold = 0.3F;
var response = await _services.QnAServices[QnAMakerKey].GetAnswersAsync(turnContext, qnaOptions);

In de vorige JSON zijn alleen antwoorden opgevraagd die 30% of hoger zijn dan de drempelwaarde.

QnA Maker gebruiken met een bot in Node.js

Het botframework biedt toegang tot de eigenschappen van de QnA Maker met de getAnswer-API:

const { QnAMaker } = require('botbuilder-ai');
this.qnaMaker = new QnAMaker(endpoint);

// Default QnAMakerOptions
var qnaMakerOptions = {
    ScoreThreshold: 0.30,
    Top: 3
};
var qnaResults = await this.qnaMaker.getAnswers(stepContext.context, qnaMakerOptions);

In de vorige JSON zijn alleen antwoorden opgevraagd die 30% of hoger zijn dan de drempelwaarde.

Nauwkeurige antwoorden krijgen met GenerateAnswer-API

We bieden alleen de functie Voor nauwkeurige antwoorden met de beheerde versie van QnA Maker.

Veelvoorkomende HTTP-fouten

Code Uitleg
2xx Geslaagd
400 De parameters van de aanvraag zijn onjuist, wat betekent dat de vereiste parameters ontbreken, onjuist zijn ingedeeld of te groot zijn
400 De hoofdtekst van de aanvraag is onjuist, wat betekent dat de JSON ontbreekt, onjuist is gevormd of te groot is
401 Ongeldige sleutel
403 Verboden: u hebt niet de juiste machtigingen
404 KB bestaat niet
410 Deze API is afgeschaft en is niet meer beschikbaar

Volgende stappen

De pagina Publiceren bevat ook informatie voor het genereren van een antwoord met Postman of cURL.