Dela via


Besvara frågor med hjälp av frågor

GÄLLER FÖR: SDK v4

Frågesvarsfunktionen i Azure Cognitive Service for Language tillhandahåller molnbaserad bearbetning av naturligt språk (NLP) som gör att du kan skapa ett naturligt konversationslager över dina data. Den används för att hitta det lämpligaste svaret för indata från dina anpassade kunskapsbas med information.

Den här artikeln beskriver hur du använder funktionen för frågesvar i din robot.

Förutsättningar

  • Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
  • En språkresurs i Language Studio med funktionen för svar på anpassade frågor aktiverad.
  • En kopia av exemplet för svar på anpassad fråga i C# eller JavaScript.

Om det här exemplet

Om du vill använda svar på frågor i roboten behöver du en befintlig kunskapsbas. Roboten kan sedan använda kunskapsbas för att besvara användarens frågor.

Om du behöver skapa en ny kunskapsbas för en Bot Framework SDK-robot kan du läsa README för det anpassade frågesvarsexemplet.

C# question answering bot logic flow.

OnMessageActivityAsync anropas för varje användarindata som tas emot. När den anropas kommer den åt konfigurationsinställningarna från exempelkodens appsetting.json-fil och ansluter till din kunskapsbas.

Användarens indata skickas till din kunskapsbas och det bästa returnerade svaret visas tillbaka till användaren.

Hämta anslutningsinställningar för kunskapsbas

  1. Öppna språkresursen i Language Studio.

  2. Kopiera följande information till robotens konfigurationsfil:

    • Värdnamnet för din språkslutpunkt.
    • Ocp-Apim-Subscription-Key, som är slutpunktsnyckeln.
    • Projektnamnet, som fungerar som ditt kunskapsbas-ID.

Värdnamnet är den del av slutpunkts-URL:en mellan https:// och /language, till exempel https://<hostname>/language. Roboten behöver projektnamnet, värd-URL:en och slutpunktsnyckeln för att ansluta till kunskapsbas.

Dricks

Om du inte distribuerar detta för produktion kan du lämna robotens app-ID och lösenordsfält tomma.

Konfigurera och anropa kunskapsbas-klienten

Skapa din kunskapsbas-klient och använd sedan klienten för att hämta svar från kunskapsbas.

Kontrollera att NuGet-paketet Microsoft.Bot.Builder.AI.QnA är installerat för projektet.

I QnABot.cs i OnMessageActivityAsync metoden skapar du en kunskapsbas-klient. Använd turkontexten för att fråga kunskapsbas.

Robotar/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);

Testa roboten

Kör exemplet lokalt på datorn. Om du inte redan har gjort det installerar du Bot Framework-emulatorn. Mer information finns i exemplets README (C# eller JavaScript).

Starta emulatorn, anslut till roboten och skicka meddelanden till roboten. Svaren på dina frågor varierar beroende på vilken information du kunskapsbas.

Ytterligare information

Exempel på anpassade frågor, alla funktioner (C# eller JavaScript) visar hur du använder en QnA Maker-dialogruta för att stödja en kunskapsbas uppföljningsprompt och aktiva inlärningsfunktioner.

  • Frågesvar stöder uppföljningsprompter, även kallade frågor med flera svar. Om kunskapsbas kräver mer information från användaren skickar tjänsten kontextinformation som du kan använda för att fråga användaren. Den här informationen används också för att göra uppföljningsanrop till tjänsten.
  • Frågesvar stöder också aktiva inlärningsförslag, vilket gör att kunskapsbas kan förbättras med tiden. Dialogrutan QnA Maker stöder explicit feedback för den aktiva inlärningsfunktionen.