Das Missing-Pattern

Chatbots als moderne User Interfaces können viele Anfragen von Kunden bedienen, die wir bisher in Form von langen Formularen oder mehrseitigen Wizards kannten. Damit das funktioniert, müssen die Konversationen mit den Bots entsprechend vorbereitet und geplant werden - neudeutsch, Konversationen werden designt.

Natürliche Sprache ist nicht linear, anders, als wir das von Computer-Masken kennen. Menschen packen Informationen verschieden dicht in ihre Sätze, in unterschiedlicher Reihenfolge und Kombination. Damit is also eine starre Abfrage der Reihe nach raus, sie wirkt nicht natürlich. Für die User-Interface-Designer ergibt sich also eine gänzlich neue Herausforderung, ihr User Interface wird vom Kunden als Konversation empfunden und soll sich auf so anfühlen.

Für diese Art des Conversation Designs gibt es natürlich auch Pattern, genau wie in der Software-Entwicklung. Das Missing Pattern ist eine Variante, wie ein Chatbot auf angenehme Weise alle benötigten Informationen abfragen kann. Für die Beispiele verwende ich die Plattform unseres Partners Cognigy.AI.

Conversation Design

Was zeichnet eigentlich eine Konversation aus? Die Gesprächspartner reagieren auf die Informationen des Gegenübers. Dabei erkennen sie (hoffentlich!) den Wunsch bzw. die Intention des Gegenübers und entnehmen den gesprochenen Worten die wichtigen Elemente.

Also braucht ein Chatbot die Vorgabe, welche Intentionen (Intents) er versteht, und was eigentlich die wertvollen Informationen sind. Technologisch wird das durch die Natural Language Understanding-Unit (NLU) abgewickelt, die nur noch Vorgaben der relevanten Begriffe benötigt.

Sind die Intents einmal definiert, kann im Dialog-Ablauf (Flow) mit ihnen gearbeitet werden, sie stehen sozusagen als Variablen bereit.

COGNIGY-FLOW ZUR ERKENNUNG EINES INTENTS

Im Beispiel unterscheidet der Bot also nach dem WillkommenIntent, dem FaqIntent und dem GoodbyeIntent und agiert unterschiedlich. Die Intents können dabei über Beispielsätze oder feste Regeln definiert werden. Wichtig ist, sie in ihrer Definition abzugrenzen, dass aus den Eingaben der Benutzer die richtige Intention erkannt wird.

Missing in Action

Nehmen wir an, dass wir einen Termin mit einem Experten vereinbaren wollen (Kontaktdaten außer Acht gelassen). Dann wird der Experte als Datum benötigt sowie der Termin (Datum und Uhrzeit).

Für das Missing Pattern brauchen wir einen regelbasierten Intent:

REGELBASIERER INTENT

Ist also der Wert input.missing gesetzt (input ist das Objekt mit allen Benutzereingaben und Daten, die die NLU daraus ableitet und anreichert), kann der Flow entsprechend reagieren:

COGNIGY-FLOW ZUR ERKENNUNG EINER FEHLENDEN INFORMATION

Vor dem Lookup wird per Code geprüft, ob die notwendigen Daten bereits erhalten und im Kontext abgespeichert wurden. Hier wird also der Wert für input.missing gesetzt:

1 2 3 4 5 6 7 8 9

if( !context.expert ) { input.missing = "expert"; } else if( !context.termin ) { input.missing = "termin" } else { delete input.missing; }

Nun wird der Flow solange nach entweder dem Termin oder dem Experten fragen, bis der Benutzer diese Information eingegeben hat. Dabei spielt es keine Rolle, ob er in ganzen Sätzen oder stichpunktartig spricht oder in welcher Reihenfolge die Informationen gegeben werden. Sobald Name und Termin erkannt wurden, geht der Bot weiter, im Beispiel mit einer Bestätigung der Eingaben. Als nächstes könnte der Bot die Prozesse zur Terminanlage und -einladung initiieren.

Im Chat sieht das letztlich so aus:
Dank des Missing Patterns ist die Konversation schlank und natürlich.

Fazit

Es ist für Menschen völlig normal, ein Gespräch solange nicht zu beenden, bis alles Wichtige gesagt ist. Wir fragen auch gerne mal nach. Mit dem Missing Pattern lässt sich dieser Rahmen des Rückfragens abbilden und in einer Chat-UI einsetzen.