Verarbeitung Ihres Dialogs

Das Dialogmodul verwendet die in der Benutzereingabe erkannten Absichten sowie Kontext aus der Anwendung, um mit dem Benutzer zu interagieren und schließlich eine hilfreiche Antwort zu liefern.

Der Dialog gleicht Absichten (was Benutzer sagen, dass sie tun möchten) mit Antworten (was der Bot ihnen sagt) ab. Die Antwort kann die Antwort auf eine Frage wie What are your store hours? oder die Ausführung eines Befehls wie das Aufgeben einer Bestellung sein. Entweder geben die Absicht und die Entität genug Informationen an, damit die korrekte Antwort ermittelt werden kann, oder das Dialogmodul kann vom Benutzer eine weitere Eingabe erfragen, die benötigt wird, um richtig zu antworten. Wenn ein Benutzer beispielsweise nach Where can I get some food? fragt, möchten Sie möglicherweise klären, ob er ein Restaurant oder ein Lebensmittelgeschäft möchte, ob er zuhause oder auswärts essen möchte usw. Sie können weitere Details in einer Textantwort abfragen und einen oder mehrere untergeordnete Knoten erstellen, um die neue Eingabe zu verarbeiten.

Das Dialogmodul wird in watsonx Assistant grafisch als Baumstruktur dargestellt. Erstellen Sie für jede Absicht, die Ihr Dialog verarbeiten soll, eine Verzweigung. Eine Verzweigung besteht aus mehreren Knoten.

Dialogmodulknoten

Jeder Dialogmodulknoten enthält mindestens eine Bedingung und eine Antwort.

![Shows user input going to a box that contains the statement If: CONDITION, Then: RESPONSE](images/node1-empty.png

  • Bedingung: Gibt die Informationen an, die in der Benutzereingabe für diesen Knoten im Dialogmodul enthalten sein müssen, damit der Knoten ausgelöst wird. Bei den Informationen handelt es sich normalerweise um eine bestimmte Absicht. Die Informationen können aber auch einen Entitätstyp, einen Entitätswert oder den Wert einer Kontextvariablen angeben. Weitere Informationen finden Sie unter Bedingungen.
  • Antwort: Die verbale Äußerung, mit der der Assistent dem Benutzer antwortet. Die Antwort kann auch so konfiguriert werden, dass ein Bild bzw. eine Liste der Optionen angezeigt wird oder programmgestützte Aktionen ausgelöst werden. Weitere Informationen finden Sie unter Antworten.

Der Inhalt eines Knotens ist mit einer IF-THEN-Konstruktion vergleichbar. Trifft diese Bedingung zu, wird diese Antwort zurückgegeben.

Der folgende Knoten wird beispielsweise ausgelöst, wenn die Funktion zur Verarbeitung natürlicher Sprache des Assistenten feststellt, dass die Benutzereingabe die Absicht #cupcake-menu enthält. Nach dem Auslösen des Knotens reagiert der Assistent mit einer entsprechenden Antwort.

Zeigt den Benutzer, der nach Cupcake-Varianten fragt. Die If-Bedingung lautet #cupcake-menu und die Then-Antwort ist eine Liste der Cupcake-Typen.
Einfache Bedingung und Antwort

Ein einzelner Knoten mit einer Bedingung und einer Antwort kann einfache Benutzeranforderungen verarbeiten. Häufiger haben Benutzer jedoch kompliziertere Fragen oder benötigen Hilfe bei komplexeren Aufgaben. Sie können untergeordnete Knoten hinzufügen, die den Benutzer auffordern, alle weiteren Informationen anzugeben, die der Assistent benötigt.

Zeigt, dass der erste Knoten im Dialogfeld fragt, welchen Cupcake-Typ der Benutzer wünscht (glutenfrei oder regulär) und zwei untergeordnete Knoten hat, die je nach Antwort des Benutzers eine unterschiedliche Antwort bereitstellen.
Node mit untergeordneten Knoten

Dialogmodulablauf

Das Dialogmodul, das Sie erstellen, wird vom Assistenten die gesamte Baumstruktur hindurch vom ersten bis zum letzten Knoten verarbeitet.

Pfeil zeigt nach unten neben 3 Knoten, um anzuzeigen, dass der Dialogmodulfluss vom ersten Knoten zum letzten
Node-Fluss verläuft

Wenn der Assistent beim Durcharbeiten der Baumstruktur auf eine Bedingung trifft, die erfüllt ist, löst er den entsprechenden Knoten aus. Dann durchläuft er den ausgelösten Knoten, um die Benutzereingabe auf etwaige untergeordnete Knotenbedingungen zu prüfen. Wenn er die untergeordneten Knoten überprüft, wird er erneut vom ersten untergeordneten Knoten zum letzten untergeordneten Knoten verschoben.

Der Assistent arbeitet die Baumstruktur für das Dialogmodul vom ersten bis zum letzten Knoten und durch alle ausgelösten Knoten durch, setzt dies dann vom ersten bis zum letzten untergeordneten Knoten sowie durch alle ausgelösten untergeordneten Knoten hindurch fort, bis der letzte Knoten in der verfolgten Verzweigung erreicht wird.

Zeigt Pfeil 1, der vom ersten zum letzten Stammknoten zeigt, Pfeil 2, der entlang der Länge eines ausgelösten Knotens zeigt, und Pfeil 3, der vom ersten zum letzten untergeordneten Knoten des ausgelösten Knotens zeigt.
Node

Wenn Sie mit der Erstellung des Dialogmoduls beginnen, müssen Sie festlegen, welche Verzweigungen Sie einschließen wollen und wo sie platziert werden sollen. Die Reihenfolge der Verzweigungen ist wichtig, da Knoten vom ersten bis zum letzten Knoten ausgewertet werden. Der erste Stammknoten, mit dessen Bedingung die Eingabe übereinstimmt, wird verwendet. Knoten, die in der Baumstruktur weiter unten liegen, werden nicht ausgelöst.

Wenn der Assistent das Ende einer Verzweigung erreicht oder in der aktuellen Gruppe der untergeordneten Knoten, die ausgewertet wird, keine Bedingung finden kann, die mit 'true' ausgewertet wird, springt er auf die Ausgangsebene der Baumstruktur zurück. Der Assistent verarbeitet die Stammknoten vom ersten bis zum letzten Knoten. Wenn keine der Bedingungen mit 'true' ausgewertet wird, wird die Antwort vom letzten Knoten der Baumstruktur zurückgegeben, der in der Regel die Sonderbedingung anything_else enthält.

Der Standardablauf (vom ersten bis zum letzten Knoten) kann mit den folgenden Methoden unterbrochen werden:

  • Durch Anpassen der Aktionen, die nach der Verarbeitung eines Knotens ausgeführt werden. Sie können einen Knoten beispielsweise so konfigurieren, dass nach seiner Verarbeitung direkt zu einem anderen Knoten gesprungen wird, selbst wenn sich der andere Knoten in der Baumstruktur weiter oben befindet. Weitere Informationen finden Sie unter Nächste Schritte definieren.

  • Durch Konfigurieren bedingter Antworten, um zu einem anderen Knoten zu wechseln. Weitere Informationen finden Sie unter Bedingte Antworten.

  • Durch Konfigurieren von Abschweifungseinstellungen für Dialogmodulknoten. Abschweifungen können sich auch darauf auswirken, wie Benutzer während der Laufzeit durch die Knoten navigieren. Wenn Sie abgehende Abschweifungen von den meisten Knoten zulassen und die Rückkehr konfigurieren, können die Benutzer leichter von einem Knoten zu einem anderen und zurück springen. Weitere Informationen hierzu finden Sie im Abschnitt Abschweifungen.

Beispieldialog

Dieses Diagramm zeigt das Modell der Baumstruktur eines Dialogmoduls, das mit der grafischen Benutzerschnittstelle des Dialogmoduleditors erstellt wird.

Beispieldialogbaumstruktur mit Beispielinhalt
Dialogbaumstruktur

Die Dialogbaumstruktur enthält zwei Stammknoten des Dialogmoduls. Eine typische Dialogmodulbaumstruktur umfasst eine größere Anzahl von Knoten, aber diese Darstellung vermittelt einen Eindruck davon, wie eine Teilmenge der Knoten aussehen kann.

  • Der erste Stammknoten bezieht sich auf einen Absichtswert. Der Stammknoten enthält zwei untergeordnete Knoten, die sich jeweils auf einen Entitätswert beziehen. Der zweite untergeordnete Knoten definiert zwei Antworten. Die erste Antwort wird an den Benutzer zurückgegeben, wenn der Wert der Kontextvariablen mit dem in der Bedingung angegebenen Wert übereinstimmt. Andernfalls wird die zweite Antwort zurückgegeben.

    Diese standardmäßige Knotentyp ist hilfreich, um Fragen zu einem bestimmten Thema zu erfassen und anschließend in der Antwort eine Nachfrage zu stellen, die in den untergeordneten Knoten verarbeitet wird. Wenn beispielsweise eine Benutzerfrage zu Preisnachlässen erkannt wurde, kann durch eine Nachfrage geklärt werden, ob der Benutzer einer Organisation angehört, der das Unternehmen Sonderrabatte gewährt. Die untergeordneten Knoten können je nach Antwort des Kunden auf die Frage nach der Organisationszugehörigkeit verschiedene Antworten ausgeben.

  • Der zweite Stammknoten ist ein Knoten mit Slots. Er bezieht sich auf einen Absichtswert und definiert je einen Slot für jede Einzelinformation, die Sie beim Benutzer abfragen möchten. Jeder Slot stellt eine Frage, um die entsprechende Antwort vom Benutzer zu erhalten. Dabei wird in der Benutzerantwort ein bestimmter Entitätswert gesucht und in einer Slotkontextvariablen gespeichert.

    Dieser Knotentyp ist nützlich zum Erfassen von Details, die Sie möglicherweise benötigen, um eine Transaktion für den Benutzer auszuführen. Wenn der Benutzer beispielsweise einen Flug buchen möchte, können die einzelnen Slots Angaben zu Start und Ziel, Reisetermin usw. erfassen.