Vraag beantwoorden gebruiken om vragen te beantwoorden
VAN TOEPASSING OP: SDK v4
De functie voor het beantwoorden van vragen van Azure Cognitive Service for Language biedt cloudgebaseerde natuurlijke taalverwerking (NLP) waarmee u een natuurlijke gesprekslaag kunt maken over uw gegevens. Het wordt gebruikt om het meest geschikte antwoord te vinden voor invoer uit uw aangepaste Knowledge Base met gegevens.
In dit artikel wordt beschreven hoe u de functie voor het beantwoorden van vragen in uw bot gebruikt.
Vereisten
- Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
- Een taalresource in Language Studio, waarbij de aangepaste functie voor het beantwoorden van vragen is ingeschakeld.
- Een kopie van het voorbeeld Aangepaste vraag beantwoorden in C# of JavaScript.
Over dit voorbeeld
Als u vraagantwoorden in uw bot wilt gebruiken, hebt u een bestaande knowledge base nodig. Uw bot kan vervolgens de Knowledge Base gebruiken om de vragen van de gebruiker te beantwoorden.
Als u een nieuwe knowledge base wilt maken voor een Bot Framework SDK-bot, raadpleegt u de README voor het aangepaste voorbeeld van het beantwoorden van vragen.
OnMessageActivityAsync
wordt aangeroepen voor elke ontvangen gebruikersinvoer. Wanneer deze wordt aangeroepen, toegangscontrolet het configuratie-instellingen uit het bestand appsetting.json van de voorbeeldcode en maakt deze verbinding met uw Knowledge Base.
De invoer van de gebruiker wordt verzonden naar uw Knowledge Base en het best geretourneerde antwoord wordt weer weergegeven aan uw gebruiker.
Verbindingsinstellingen voor uw Knowledge Base ophalen
Open uw taalresource in Language Studio.
Kopieer de volgende gegevens naar het configuratiebestand van uw bot:
- De hostnaam voor uw taaleindpunt.
- De
Ocp-Apim-Subscription-Key
, wat uw eindpuntsleutel is. - De projectnaam, die fungeert als uw Knowledge Base-id.
Uw hostnaam is het deel van de eindpunt-URL tussen https://
en /language
, https://<hostname>/language
bijvoorbeeld. Uw bot heeft de projectnaam, host-URL en eindpuntsleutel nodig om verbinding te maken met uw Knowledge Base.
Fooi
Als u dit niet implementeert voor productie, kunt u de app-id- en wachtwoordvelden van uw bot leeg laten.
De Knowledge Base-client instellen en aanroepen
Maak uw Knowledge Base-client en gebruik vervolgens de client om antwoorden op te halen uit de Knowledge Base.
Zorg ervoor dat het NuGet-pakket Microsoft.Bot.Builder.AI.QnA is geïnstalleerd voor uw project.
Maak in QnABot.cs in de OnMessageActivityAsync
methode een Knowledge Base-client. Gebruik de turncontext om een query uit te voeren op de knowledge base.
Bots/CustomQABot.cs
using var httpClient = _httpClientFactory.CreateClient();
var customQuestionAnswering = CreateCustomQuestionAnsweringClient(httpClient);
// Call Custom Question Answering service to get a response.
_logger.LogInformation("Calling Custom Question Answering");
var options = new QnAMakerOptions { Top = 1, EnablePreciseAnswer = _enablePreciseAnswer };
var response = await customQuestionAnswering.GetAnswersAsync(turnContext, options);
De bot testen
Voer het voorbeeld lokaal uit op uw computer. Als u dit nog niet hebt gedaan, installeert u de Bot Framework Emulator. Raadpleeg het voorbeeld README
(C# of JavaScript) voor meer instructies.
Start de emulator, maak verbinding met uw bot en verzend berichten naar uw bot. De antwoorden op uw vragen variëren, afhankelijk van de informatie die uw Knowledge Base bevat.
Aanvullende informatie
In het antwoord op aangepaste vragen ziet u hoe u een QnA Maker-dialoogvenster gebruikt om de vervolgprompt en actieve leerfuncties van een knowledge base te ondersteunen.
- Vragen beantwoorden ondersteunt vervolgprompts, ook wel prompts met meerdere keren genoemd. Als de Knowledge Base meer informatie van de gebruiker vereist, verzendt de service contextinformatie die u kunt gebruiken om de gebruiker te vragen. Deze informatie wordt ook gebruikt om opvolgende aanroepen naar de service uit te voeren.
- Het beantwoorden van vragen ondersteunt ook actieve leersuggesties, waardoor de Knowledge Base in de loop van de tijd kan worden verbeterd. Het dialoogvenster QnA Maker ondersteunt expliciete feedback voor de actieve leerfunctie.