Hinzufügen von Features zum Verstehen natürlicher Sprache zu Ihrem Bot
GILT FÜR: SDK v4
Hinweis
Language Understanding (LUIS) wird am 1. Oktober 2025 eingestellt. Ab dem 1. April 2023 können Sie keine neuen LUIS-Ressourcen erstellen. Eine neuere Version von Language Understanding ist jetzt als Teil von Azure KI Language verfügbar.
Conversational Language Understanding (CLU), ein Feature von Azure KI Language, ist die aktualisierte Version von LUIS. Weitere Informationen zur Unterstützung von Language Understanding im Bot Framework SDK finden Sie unter Natürliches Sprachverständnis.
Die Fähigkeit zu verstehen, was Ihr Benutzer in einer Konversation und im Kontext meint, kann eine schwierige Aufgabe sein, Ihrem Bot aber ein natürlicheres Sprachgefühl verleihen. Language Understanding (LUIS) ist ein cloudbasierter API-Dienst, der Ihnen genau dies ermöglicht, sodass Ihr Bot die Absicht von Benutzernachrichten bestimmen, mehr natürliche Sprache von Ihrem Benutzer erkennen und den Konversationsablauf besser steuern kann.
In diesem Thema wird Schritt für Schritt erläutert, wie Sie LUIS einer Anwendung zur Flugbuchung hinzufügen, um verschiedene Absichten und Entitäten zu erkennen, die in der Eingabe des Benutzers enthalten sind.
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.
Für das erstellen eines neuen Bots sollten Sie Microsoft Copilot Studio verwenden und lesen, wie Sie die richtige Copilot-Lösung auswählen.
Weitere Informationen finden Sie in Die Zukunft des Bot-Bauens.
Voraussetzungen
- Ein LUIS-Konto.
- Eine Kopie des Core-Bot-Beispiels in C#, JavaScript, Java oder Python.
- Sie müssen mit den Bot-Grundlagen, der Verarbeitung natürlicher Sprache vertraut sein.
Informationen zu diesem Beispiel
Dieses Core Bot-Beispiel zeigt eine Anwendung zur Buchung von Flughafenflügen. Im Beispiel wird ein LUIS-Dienst verwendet, um die Benutzereingabe zu erkennen und die erkannte LUIS-Absicht mit der höchsten Bewertung zurückzugeben.
Das Sprachmodell enthält drei Absichten: Book Flight
, Cancel
und None
. LUIS verwendet diese Absichten, um zu verstehen, was der Benutzer gemeint hat, als er eine Nachricht an den Bot gesendet hat. Das Sprachmodell definiert außerdem Entitäten, die LUIS aus der Eingabe des Benutzers extrahieren kann, z. B. den Start- oder den Zielflughafen.
Nach jeder Verarbeitung der Benutzereingabe speichert DialogBot
den aktuellen Zustand von UserState
und ConversationState
. Nachdem alle erforderlichen Informationen erfasst wurden, erstellt das Codebeispiel eine Demobuchungsreservierung für einen Flug. In diesem Artikel werden die LUIS-Aspekte des Beispiels behandelt. Der allgemeine Flow für das Beispiel ist jedoch:
OnMembersAddedAsync
wird aufgerufen, wenn ein neuer Benutzer verbunden und eine Begrüßungskarte angezeigt wird.OnMessageActivityAsync
wird für jede empfangene Benutzereingabe aufgerufen.
Das OnMessageActivityAsync
-Modul führt den entsprechenden Dialog über die Run
-Dialogerweiterungsmethode aus. Der Hauptdialog ruft das LUIS-Hilfsprogramm auf, um die Benutzerabsicht mit der höchsten Bewertung zu ermitteln. Wenn für die Benutzereingabe als am höchsten bewertete Absicht „BookFlight“ (Flug buchen) zurückgegeben wird, fügt das Hilfsprogramm die Informationen des Benutzers ein, der von LUIS zurückgegeben wurde. Anschließend startet der Hauptdialog den BookingDialog
, mit dem nach Bedarf zusätzliche Informationen vom Benutzer abgerufen werden, z. B.:
Origin
: StartortTravelDate
: Datum, für das der Flug gebucht werden sollDestination
: Zielort
In diesem Artikel wird beschrieben, wie Sie einem Bot LUIS hinzufügen. Informationen über die Verwendung von Dialogen oder Zustandsinformationen finden Sie unter Erfassen von Benutzereingaben mit einer Dialogeingabeaufforderung bzw. Speichern von Benutzer- und Unterhaltungsdaten.
Erstellen einer LUIS-App im LUIS-Portal
- Melden Sie sich beim LUIS-Portal an und erstellen Sie bei Bedarf ein Konto und eine Autorenressource.
- Wählen Sie auf der Seite Konversationsanwendungen in LUIS die Option Importieren und dann Als JSON importieren aus.
- Im Dialogfeld Neue App importieren:
- Wählen Sie im Ordner CognitiveModels des Beispiels die Datei FlightBooking.json aus.
- Geben Sie
FlightBooking
als optionalen Namen der App ein und klicken Sie auf Fertig.
- Auf der Website können die Dialoge Wie man eine effektive LUIS-App erstellt und Aktualisieren Sie Ihre zusammengesetzten Einheiten angezeigt werden. Sie können diese Dialoge schließen und fortfahren.
- Trainieren Sie Ihre App und veröffentlichen Sie ihre App dann in der Produktionsumgebung. Weitere Informationen finden Sie in der LUIS-Dokumentation zum Trainieren und Veröffentlichen einer App.
Gründe für die Verwendung von Entitäten
LUIS-Entitäten ermöglichen Ihrem Bot, Ereignisse über Standardabsichten hinaus zu verstehen. Auf diese Weise können Sie zusätzliche Informationen von Benutzern sammeln, damit Ihr Bot Fragen stellen und intelligenter antworten kann. Neben den Definitionen für die drei LUIS-Absichten „Book Flight“ (Flug buchen), „Cancel“ (Abbrechen) und „None“ (Keine) enthält die Datei „FlightBooking.json“ auch eine Gruppe von Entitäten, z. B. „From.Airport“ und „To.Airport“. Mithilfe dieser Entitäten kann LUIS zusätzliche Informationen in der ursprünglichen Eingabe des Benutzers erkennen und zurückgeben, wenn der Benutzer eine neue Buchung anfordert.
Abrufen von Werten zum Herstellen einer Verbindung mit Ihrer LUIS-App
Nachdem Ihre LUIS-App veröffentlicht wurde, können Sie von Ihrem Bot aus darauf zugreifen. Sie müssen sich mehrere Werte notieren, um von Ihrem Bot aus auf Ihre LUIS-App zugreifen zu können. Sie können diese Informationen mit dem LUIS-Portal abrufen.
Anwendungsinformationen vom Portal LUIS.ai abrufen
In der Einstellungsdatei (appsettings.json
, .env
oder config.py
) werden alle Dienstverweise an einer Stelle zusammengefasst. Die von Ihnen abgerufenen Informationen werden dieser Datei im nächsten Abschnitt hinzugefügt.
Wählen Sie Ihre veröffentlichte LUIS-App unter luis.ai aus.
Wählen Sie bei geöffneter veröffentlichter LUIS-App die Registerkarte VERWALTEN.
Wählen Sie auf der linken Seite die Registerkarte Einstellungen und notieren Sie sich den Wert, der unter Anwendungs-ID angezeigt wird, als <YOUR_APP_ID>.
Wählen Sie Azure-Ressourcen und dann Vorhersageressource aus. Notieren Sie sich die folgenden Werte: Region als <YOUR_REGION> und Primärschlüssel als <YOUR_AUTHORING_KEY>.
Alternativ können Sie die Region und den Primärschlüssel für Ihre Autorenressource verwenden.
Aktualisieren der Einstellungsdatei
Fügen Sie in der appsettings.json
-Datei die erforderlichen Informationen für den Zugriff auf Ihre LUIS-App hinzu (einschließlich Anwendungs-ID, Erstellungsschlüssel und Region). Im vorherigen Schritt haben Sie diese Werte aus Ihrer veröffentlichten LUIS-App abgerufen. Der API-Hostname sollte im Format <your region>.api.cognitive.microsoft.com
angegeben werden.
appsetting.json
Warnung
Es sieht so aus, als ob das gesuchte Beispiel verschoben wurde! Seien Sie sicher, dass wir daran arbeiten, dies zu lösen.
Konfigurieren Sie Ihren Bot für die Verwendung Ihrer LUIS-App
Stellen Sie sicher, dass das NuGet-Paket Microsoft.Bot.Builder.AI.Luis für Ihr Projekt installiert ist.
Zum Herstellen einer Verbindung mit dem LUIS-Dienst pullt der Bot die Informationen, die Sie in der Datei „appsetting.json“ hinzugefügt haben. Die FlightBookingRecognizer
-Klasse enthält Code mit Ihren Einstellungen aus der Datei „appsetting.json“ und fragt den LUIS-Dienst durch das Aufrufen der RecognizeAsync
-Methode ab.
FlightBookingRecognizer.cs
Warnung
Es sieht so aus, als ob das gesuchte Beispiel verschoben wurde! Seien Sie sicher, dass wir daran arbeiten, dies zu lösen.
Die Datei FlightBookingEx.cs
enthält die Logik zum Extrahieren der Werte von From, To und TravelDate. Die verwendete partielle Klasse FlightBooking.cs
wird erweitert, um LUIS-Ergebnisse beim Aufrufen von FlightBookingRecognizer.RecognizeAsync<FlightBooking>
aus MainDialog.cs
zu speichern.
CognitiveModels\FlightBookingEx.cs
Warnung
Es sieht so aus, als ob das gesuchte Beispiel verschoben wurde! Seien Sie sicher, dass wir daran arbeiten, dies zu lösen.
LUIS ist jetzt für Ihren Bot konfiguriert und verbunden.
Testen des Bots
Laden Sie die aktuelle Version von Bot Framework Emulator herunter, und installieren Sie sie.
Führen Sie das Beispiel lokal auf Ihrem Computer aus. Wenn Sie eine Anleitung benötigen, finden Sie in der
README
-Datei für das C#-Beispiel, JS-Beispiel oder Python-Beispiel weitere Informationen.Geben Sie im Emulator eine Nachricht wie „travel to Paris“ oder „going from Paris to Berlin“ ein. Verwenden Sie alle Äußerungen in der Datei „FlightBooking.json“ zum Trainieren der Absicht „Book flight“ (Flug buchen).
Wenn die von LUIS zurückgegebene Absicht mit der höchsten Bewertung zu „Book flight“ (Flug buchen) aufgelöst wird, stellt Ihr Bot weitere Fragen, bis er genügend Informationen zum Erstellen einer Flugbuchung hat. An diesem Punkt werden die vorliegenden Buchungsinformationen an den Benutzer zurückgegeben.
Der Code der Botlogik wird an diesem Punkt zurückgesetzt, und Sie können mit dem Erstellen weiterer Buchungen fortfahren.
Weitere Informationen
Weitere Informationen zu LUIS finden Sie in der LUIS-Dokumentation:
- Worum handelt es sich bei Language Understanding (LUIS)?
- Erstellen einer LUIS-App im LUIS-Portal
- Entwerfen mit Absichts- und Entitätsmodellen
- Migrieren zu V3-Erstellungs-APIS
- Migration zu V3-Vorhersage-APIS
Tipp
In verschiedenen Teilen des SDK werden separate Entitätsklassen oder Elemente definiert. Informationen zu den Nachrichtenentitäten finden Sie unter Entitäts- und Aktivitätstypen.