Freigeben über


Entwerfen und Überwachung des Gesprächsflusses

GILT FÜR: SDK v4

In einer herkömmlichen Anwendung besteht die Benutzeroberfläche aus einer Reihe von Bildschirmen, und eine einzelne App oder Website kann bei Bedarf einen oder mehrere Bildschirme verwenden, um Informationen mit dem Benutzer auszutauschen. Die meisten Anwendungen beginnen mit einem Hauptbildschirm, auf dem Benutzer anfänglich landen und dieser Bildschirm Navigation bereitstellt, die zu anderen Bildschirmen für verschiedene Funktionen führt, z. B. das Starten einer neuen Bestellung, das Durchsuchen von Produkten oder die Suche nach Hilfe.

Wie Apps und Websites verfügen Bots über eine Benutzeroberfläche, aber sie besteht aus Nachrichten und nicht aus Bildschirmen. Nachrichten können Schaltflächen, Text und andere Elemente enthalten oder vollständig sprachbasiert sein.

Während eine herkömmliche Anwendung oder Website mehrere Informationen auf einem Bildschirm gleichzeitig anfordern kann, sammelt ein Bot die gleiche Menge an Informationen mithilfe mehrerer Nachrichten. Auf diese Weise ist der Prozess des Sammelns von Informationen vom Benutzer eine aktive Erfahrung; eine, bei der der Benutzer eine aktive Unterhaltung mit dem Bot führt.

Ein gut gestalteter Bot wird einen Unterhaltungsfluss haben, der sich natürlich fühlt. Der Bot sollte in der Lage sein, die Kernunterhaltung nahtlos zu führen und Unterbrechungen sowie Themenwechsel ordentlich zu bewältigen.

Prozeduraler Gesprächsverlauf

Unterhaltungen mit einem Bot können sich auf die Aufgabe konzentrieren, die ein Bot zu erreichen versucht, was als prozeduraler Fluss bezeichnet wird. Der Bot stellt dem Benutzer eine Reihe von Fragen, um alle benötigten Informationen zu sammeln, bevor die Aufgabe verarbeitet wird.

In einem Ablauf der Gesprächsführung definieren Sie die Reihenfolge der Fragen, und der Bot stellt die Fragen in der von Ihnen definierten Reihenfolge. Sie können die Fragen in logische Gruppen organisieren, um den Code cMicrosoft Entralized beizubehalten, während Sie sich auf die Führung der Unterhaltung konzentrieren. Sie können beispielsweise ein Modul so entwerfen, dass es die Logik enthält, die dem Benutzer hilft, nach Produkten zu suchen, und ein separates Modul, das die Logik enthält, die dem Benutzer beim Erstellen einer neuen Bestellung hilft.

Sie können diese Module so strukturieren, dass sie auf beliebige Weise fließen, von freier Form bis hin zu sequenzieller Form. Das Bot Framework SDK bietet eine Dialogbibliothek, mit der Sie einen beliebigen Unterhaltungsfluss erstellen können, den Ihr Bot benötigt. Die Bibliothek enthält Wasserfalldialoge zum Erstellen einer Abfolge von Schritten und Aufforderungen, um Benutzerfragen zu stellen. Weitere Informationen finden Sie in der Dialogsbibliothek.

Diagramm, das den Anwendungs-GUI-Fluss mit dem Bot-Unterhaltungsfluss vergleicht.

In einer herkömmlichen Anwendung beginnt alles mit dem Hauptbildschirm . Der Hauptbildschirm ruft den neuen Bestellbildschirm auf. Der neue Bestellbildschirm bleibt aktiv, bis er entweder geschlossen wird oder andere Bildschirme aufruft, z. B. den Produktsuchbildschirm. Wenn der Bildschirm "Neue Bestellung" geschlossen wird, wird der Benutzer wieder auf den Hauptbildschirm zurückgesendet.

In einem Bot, der Dialogfelder verwendet, beginnt alles mit dem Stammdialogfeld. Das Stammdialogfeld ruft das Dialogfeld "Neue Reihenfolge" auf. An diesem Punkt übernimmt das Dialogfeld "Neuer Auftrag" die Kontrolle über die Unterhaltung und bleibt unter Kontrolle, bis es entweder geschlossen oder ein anderes Dialogfeld aufruft, z. B. das Dialogfeld "Produktsuche". Wenn das Dialogfeld "Neue Reihenfolge" geschlossen wird, kehrt die Steuerung der Unterhaltung zurück zum Stammdialogfeld zurück.

Ein Beispiel für die Implementierung eines Unterhaltungsflusses mithilfe der Dialogbibliotheken finden Sie unter Implementieren eines sequenziellen Unterhaltungsflusses.

Umgang mit Unterbrechungen

Es kann verlockend sein, davon auszugehen, dass Benutzer prozedurale Aufgaben einzeln nacheinander auf ordentliche und geordnete Weise ausführen. In einem prozeduralen Gesprächsablauf mithilfe von Dialogen startet der Benutzer beispielsweise im Stammdialog und ruft das neue Bestelldialog auf. Im Dialogfeld "Neue Bestellung" rufen sie das Dialogfeld "Produktsuche" auf. Wenn Sie dann eines der ergebnisse auswählen, die im Dialogfeld "Produktsuche" aufgeführt sind, rufen sie das Dialogfeld "Neue Bestellung" auf. Nach Abschluss der Bestellung gelangen sie wieder zum Stammdialogfeld.

Obwohl es großartig wäre, wenn Benutzer immer einem so geradlinigen, logischen Weg folgen würden, passiert dies selten. Personen kommunizieren nicht immer in sequenzieller Reihenfolge. Sie neigen dazu, ihre Meinung häufig zu ändern. Betrachten Sie das folgenden Beispiel:

Beispiel für einen Benutzer, der eine Frage als Antwort auf eine Frage vom Bot stellt.

Während Ihr Bot prozedural ausgerichtet sein kann, kann der Benutzer entscheiden, etwas ganz anderes zu tun oder eine Frage zu stellen, die möglicherweise nicht mit dem aktuellen Thema verknüpft ist. Im obigen Beispiel stellt der Benutzer eine Frage, anstatt die "Ja/Nein"-Antwort bereitzustellen, die der Bot erwartet. Wie sollte Ihr Bot reagieren?

  • Bestehen Sie darauf, dass der Benutzer zuerst die Frage beantwortet.
  • Ignorieren Sie alles, was der Benutzer zuvor getan hatte, setzen Sie den gesamten Dialogstapel zurück, und beginnen Sie von Anfang an, indem Sie versuchen, die Frage des Benutzers zu beantworten.
  • Versuchen Sie, die Frage des Benutzers zu beantworten, und kehren Sie dann zu dieser Frage mit "Ja/Nein" zurück, und versuchen Sie, von dort aus fort zu beginnen.

Es gibt keine richtige Antwort auf diese Frage, da die beste Lösung von den Besonderheiten Ihres Szenarios und davon abhängt, wie der Benutzer vernünftigerweise erwarten würde, dass der Bot antwortet. Erfahren Sie, wie Sie Benutzerunterbrechungen für einen Bot behandeln, der für die Behandlung einiger Arten von Unterbrechungen konzipiert ist.

Ein Gespräch beenden

Manchmal ist es hilfreich, eine Unterhaltung von Anfang an neu zu starten. Wenn ein Benutzer beispielsweise nach einem bestimmten Zeitraum nicht reagiert. Zu den verschiedenen Methoden zum Beenden einer Unterhaltung gehören:

  • Verfolgen Sie den Zeitpunkt, zu dem eine Nachricht von einem Benutzer empfangen wurde, und löschen Sie den Status, wenn die Zeit größer als die vorkonfigurierte Länge ist, beim Empfang der nächsten Nachricht vom Benutzer.
  • Verwenden Sie ein Speicherschichtfeature, z. B. das Time-to-Live-Feature von Cosmos DB, um den Zustand nach einer vorkonfigurierten Zeitspanne zu löschen.

Weitere Informationen finden Sie unter Ablauf einer Unterhaltung.

Nächste Schritte

Die Verwaltung der Benutzernavigation über Dialogfelder hinweg und das Entwerfen eines Unterhaltungsflusses in einer Weise, die es Benutzern ermöglicht, ihre Ziele (auch nicht linear) zu erreichen, ist eine grundlegende Herausforderung des Botdesigns. Der Artikel " Design Bot"-Navigation überprüft einige häufige Fallstricke der schlecht gestalteten Navigation und erläutert Strategien zur Vermeidung dieser Fallen.