Verwenden von QnA Maker zum Beantworten von Fragen

GILT FÜR: SDK v4

Hinweis

Azure KI QnA Maker wird am 31. März 2025 eingestellt. Ab dem 01. Oktober 2022 können Sie keine neuen QnA Maker-Ressourcen oder Wissensdatenbanken mehr erstellen. Eine neuere Version der Funktionalität „Fragen und Antworten“ ist jetzt als Teil von Azure KI Language verfügbar.

Benutzerdefiniertes Fragen und Antworten, eine Azure KI Language-Funktion, ist die aktualisierte Version des QnA Maker-Diensts. Weitere Informationen zur Unterstützung von Fragen und Antworten im Bot Framework SDK finden Sie unter Natürliches Sprachverständnis.

QnA Maker stellt eine Konversationsschicht mit Fragen und Antworten für Ihre Daten bereit. Ihr Bot kann so eine Frage an QnA Maker senden und eine Antwort erhalten, ohne dass Sie die Absicht der Frage analysieren und interpretieren müssen.

Eine der Grundvoraussetzungen beim Erstellen einen eigenen QnA Maker-Diensts ist es, ihn mit Fragen und Antworten aufzufüllen. In vielen Fällen sind die Fragen und Antworten bereits in Inhalten wie häufig gestellten Fragen oder anderer Dokumentation enthalten. In anderen Fällen kann es sein, dass Sie Ihre Antworten auf Fragen ggf. natürlicher und konversationsbezogener gestalten möchten.

In diesem Artikel wird beschrieben, wie Sie einen vorhandenen QnA Maker-Knowledge Base von Ihrem Bot verwenden.

Für neue Bots sollten Sie das Frageantwort-Feature von Azure Cognitive Service für Language verwenden. Informationen finden Sie unter Verwenden Sie Fragen und Antworten, um Fragen zu beantworten.

Hinweis

Die JavaScript-, C#- und Python-SDKs für Bot Framework werden weiterhin unterstützt, das Java-SDK wird jedoch eingestellt und der langfristige Support endet im November 2023.

Bestehende Bots, die mit dem Java SDK erstellt wurden, werden weiterhin funktionieren.

Wenn Sie einen neuen Bot erstellen möchten, sollten Sie den Einsatz von Power Virtual Agents in Betracht ziehen und sich über die Auswahl der richtigen Chatbot-Lösung informieren.

Weitere Informationen finden Sie unter Die Zukunft des Bot-Design.

Voraussetzungen

Informationen zu diesem Beispiel

Um QnA Maker in Ihrem Bot zu verwenden, benötigen Sie einen bereits bestehenden Knowledge Base im QnA Maker-Portal. Ihr Bot kann dann die Wissensdatenbank verwenden, um die Fragen des Benutzers zu beantworten.

Berücksichtigen Sie bei der neuen Bot-Entwicklung die Verwendung von Power Virtual Agents. Wenn Sie einen neuen Knowledge Base für einen Bot-Framework-SDK-Bot erstellen müssen, lesen Sie die folgenden Artikel zu Azure KI Services:

C# QnABot-Logikfluss

OnMessageActivityAsync wird für jede empfangene Benutzereingabe aufgerufen. Wenn sie aufgerufen wird, greift sie auf Konfigurationseinstellungen aus der Datei appsetting.json des Beispielcodes zu, um den Wert für die Verbindung zu Ihrem vorkonfigurierten QnA Maker-Knowledge Base zu finden.

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

Ermitteln der Werte zum Verbinden Ihres Bots mit der Wissensdatenbank

Tipp

Die QnA Maker-Dokumentation enthält Anweisungen zum Erstellen, Trainieren und Veröffentlichen Ihrer Wissensdatenbank.

  1. Wählen Sie auf der QnA Maker-Website Ihre Wissensdatenbank aus.
  2. Wählen Sie bei geöffneter Wissensdatenbank die Registerkarte EINSTELLUNGEN aus. Notieren Sie den für den Dienstnamen angezeigten Wert. Dieser Wert ist hilfreich, wenn Sie mit der QnA Maker-Portalschnittstelle nach der gewünschten Wissensdatenbank suchen. Er wird nicht verwendet, um Ihre Bot-App mit dieser Wissensdatenbank zu verbinden.
  3. Scrollen Sie nach unten zu Bereitstellungsdetails und notieren Sie sich die folgenden Werte aus der Postman-HTTP-Beispielanforderung:
    • POST /knowledgebases/<knowledge-base-id>/generateAnswer
    • Host: <your-host-url>
    • Autorisierung: EndpointKey <your-endpoint-key>

Ihre Host-URL beginnt mit https:// und endet mit /qnamaker wie z. B. https://<hostname>.azure.net/qnamaker. Ihr Bot benötigt die ID der Wissensdatenbank, die Host-URL und den Endpunktschlüssel, um die Verbindung mit Ihrer QnA Maker-Wissensdatenbank herzustellen.

Aktualisieren der Einstellungsdatei

Fügen Sie der Einstellungsdatei zuerst die Informationen hinzu, die zum Zugreifen auf Ihre Wissensdatenbank erforderlich sind, z. B. Hostname, Endpunktschlüssel und Wissensdatenbank-ID (kbId). Dies sind die Werte, die Sie über die Registerkarte EINSTELLUNGEN Ihrer Wissensdatenbank in QnA Maker gespeichert haben.

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.

Hinweis

Um eine QnA Maker-Wissensdatenbank einer vorhandenen Bot-Anwendung hinzuzufügen, fügen Sie unbedingt beschreibende Titel für Ihre QnA-Einträge hinzu. Der Wert „name“ in diesem Abschnitt gibt den Schlüssel an, den Sie benötigen, um in Ihrer App auf diese Informationen zuzugreifen.

appsettings.json

C# (archiviert)

Einrichten der QnA Maker-Instanz

Zunächst erstellen wir ein Objekt für den Zugriff auf unsere QnA Maker-Wissensdatenbank.

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

In QnABot.cs erstellen Sie in der OnMessageActivityAsync-Methode eine QnAMaker-Instance. In der QnABot-Klasse werden auch die Namen der Verbindungsinformationen (oben in appsettings.json gespeichert) per Pullvorgang abgerufen. Falls Sie in Ihrer Einstellungsdatei abweichende Namen für Ihre Wissensdatenbank-Verbindungsinformationen gewählt haben, müssen Sie die Namen hier so aktualisieren, dass sie Ihren gewählten Namen widerspiegeln.

Bots/QnABot.cs

C# (archiviert)

Aufrufen von QnA Maker aus Ihrem Bot

Wenn Ihr Bot eine Antwort von QnAMaker benötigt, können Sie GetAnswersAsync über Ihren Botcode die -Methode aufrufen, um je nach aktuellem Kontext die richtige Antwort zu erhalten. Wenn Sie auf Ihre eigene Wissensdatenbank zugreifen, sollten Sie die unten dargestellte Meldung no answers found (Keine Antworten gefunden) ändern, damit Ihre Benutzer nützliche Informationen erhalten.

Bots/QnABot.cs

C# (archiviert)

Testen des Bots

Führen Sie das Beispiel lokal auf Ihrem Computer aus. Installieren Sie Bot Framework Emulator, sofern noch nicht geschehen. Weitere Anweisungen finden Sie unter den Beispielen README (C# (archiviert), JavaScript (archiviert), Java (archiviert) oder Python (archiviert)).

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.

Testbeispiel-Bot.

Weitere Informationen

Das QnA Maker Multi-Turn-Beispiel für (C# Multi-Turn-Beispiel (archiviert), JavaScript-Multi-Turn-Beispiel (archiviert), Java-Multi-Turn-Beispiel (archiviert), Python-Multi-Turn-Beispiel (archiviert)) zeigt, wie Sie einen QnA Maker-Dialog verwenden, um die Folgeäußerung und die aktiven Lernfeatures von QnA Maker zu unterstützen.

  • QnA Maker unterstützt Folgeaufforderungen, die auch als Mehrfachdurchlauf-Eingabeaufforderungen bezeichnet werden. Wenn für die QnA Maker-Wissensdatenbank mehr Informationen vom Benutzer benötigt wird, sendet QnA Maker Kontextinformationen, die Sie zum Auffordern des Benutzers zur Eingabe verwenden können. Diese Informationen werden auch verwendet, um Folgeaufrufe für den QnA Maker-Dienst durchzuführen. In Version 4.6 des Bot Framework SDK wurde die Unterstützung für dieses Feature hinzugefügt.

    Bei der Erstellung einer Wissensdatenbank dieser Art helfen Ihnen in der QnA Maker-Dokumentation die Informationen unter Erstellen von Mehrfachdurchläufen einer Konversation mit Folgeaufforderungen weiter.

  • QnA Maker unterstützt 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.

    Informationen zum Aktivieren dieser Funktion für eine Wissensdatenbank finden Sie in der QnA Maker-Dokumentation über Aktive Lernvorschläge.

Nächste Schritte

QnA Maker kann mit anderen Azure KI Services kombiniert werden, um Ihren Bot noch leistungsfähiger zu machen. Das Bot Framework Orchestrator bietet eine Methode zum Kombinieren von QnA und Language Understanding (LUIS) in Ihrem Bot.