Share via


Verwenden Sie Fragen und Antworten, um Fragen zu beantworten

GILT FÜR: SDK v4

Das Fragen und Antworten-Feature von Azure Cognitive Service für Language bietet eine Cloud-basierte Verarbeitung natürlicher Sprache (NLP), die es Ihnen erlaubt, eine natürliche Gesprächsebene über Ihren Daten zu erstellen. Dieser Dienst wird verwendet, um für eine beliebige Eingabe die am besten geeignete Antwort in Ihrer benutzerdefinierten Wissensdatenbank zu finden.

In diesem Artikel wird beschrieben, wie Sie das Fragen und Antworten-Feature in Ihrem Bot verwenden.

Voraussetzungen

  • Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
  • Eine Sprachressource in Language Studio mit benutzerdefinierten Fragen und Antworten.
  • Eine Kopie des Beispiels für das benutzerdefinierte Frage und Antworten-Feature in C# oder JavaScript.

Informationen zu diesem Beispiel

Um das Fragen und Antworten-Feature in Ihrem Bot zu verwenden, benötigen Sie eine vorhandene Wissensdatenbank. Ihr Bot kann dann die Wissensdatenbank verwenden, um die Fragen des Benutzers zu beantworten.

Wenn Sie eine neue Wissensdatenbank für einen Bot Framework SDK-Bot erstellen müssen, lesen Sie das README für das benutzerdefinierte Fragen und Antworten-Feature.

C# question answering bot logic flow.

OnMessageActivityAsync wird für jede empfangene Benutzereingabe aufgerufen. Wenn sie aufgerufen wird, greift sie auf Konfigurationseinstellungen aus der Datei appsetting.json des Beispielcodes zu und stellt eine Verbindung mit Ihrer Wissensdatenbank her.

Die Eingabe des Benutzers wird an Ihre Wissensdatenbank gesendet, und die beste zurückgegebene Antwort wird für Ihren Benutzer angezeigt.

Abrufen der Verbindungseinstellungen Ihrer Knowledge Base

  1. Öffnen Sie in Language Studio Ihre Sprachressource.

  2. Kopieren Sie Ihre Konfigurationsdatei in die Konfigurationsdatei Ihres Bots:

    • Der Host-Name für Ihren Sprach-Endpunkt.
    • Der Ocp-Apim-Subscription-Key, der Ihr Endpunktschlüssel ist.
    • Der Projekt-Name, der als Wissensdatenbank-ID fungiert.

Ihr Hostname ist der Teil der Endpunkt-URL zwischen https:// und /language, z. B., https://<hostname>/language. Ihr Bot benötigt den Projektnamen, die Host-URL und den Endpunktschlüssel, um die Verbindung mit Ihrer Wissensdatenbank herzustellen.

Tipp

Da Sie die Bereitstellung nicht für die Produktion durchführen, können Sie die Felder für die App-ID und das Passwort Ihres Bots leer lassen.

Einrichten und Aufrufen des Wissensdatenbank-Clients

Erstellen Sie Ihren Wissensdatenbank-Client, und verwenden Sie dann den Client, um Antworten aus dem Wissensdatenbank abzurufen.

Stellen Sie sicher, dass das NuGet-Paket Microsoft.Bot.Builder.AI.QnA für Ihr Projekt installiert ist.

Erstellen Sie in QnABot.cs in der OnMessageActivityAsync Methode einen Wissensdatenbank-Client. Verwenden Sie den Turnkontext, um die Wissensdatenbank abzufragen.

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

Testen des Bots

Führen Sie das Beispiel lokal auf Ihrem Computer aus. Installieren Sie Bot Framework Emulator, sofern noch nicht geschehen. Weitere Anleitungen finden Sie in der Beispiel README (C# oder JavaScript).

Starten Sie den Emulator, stellen Sie eine Verbindung mit Ihrem Bot her, und senden Sie Nachrichten. Die Antworten auf Ihre Fragen variieren je nach den Informationen aus Ihrer Wissensdatenbank.

Weitere Informationen

Das Beispiel für die benutzerdefinierte Fragebeantwortung, alle Features (C# oder JavaScript) zeigt, wie Sie ein QnA Maker-Dialogfeld verwenden, um die Nachverfolgungsaufforderungen und aktiven Lernfeatures einer Wissensdatenbank zu unterstützen.

  • QnA Maker unterstützt Nachfolge-Aufforderungen, die auch als Mehrfachdurchlauf-Eingabeaufforderungen bezeichnet werden. Wenn für die Wissensdatenbank eine zusätzliche Antwort vom Benutzer benötigt wird, sendet der Dienst Kontextinformationen, die Sie nutzen können, um den Benutzer aufzufordern. Diese Informationen werden auch verwendet, um Folgeaufrufe für den Dienst durchzuführen.
  • Fragen und Antworten unterstützen außerdem aktive Lernvorschläge, sodass sich die Wissensdatenbank im Lauf der Zeit verbessern kann. Der QnA Maker-Dialog unterstützt explizites Feedback für die aktive Lernfunktion.