Erst vor wenigen Tagen jährte sich mit dem „D-Day“ ein Ereignis zum 75. Mal, das den Ausgang des zweiten Weltkrieges maßgeblich mitbestimmte. Die Alliierten wären zur Landung in der Normandie jedoch nie in der Lage gewesen, hätten nicht die Wissenschaftler von Bletchley Park in den Jahren zuvor nach und nach die Verschlüsselung der Nazis geknackt und so einen gezielten Angriff ermöglicht. Alan Turing, einer jener Wissenschaftler, gilt noch heute als einer der wichtigsten Wegbereiter heutiger Computertechnologie und zu seinen Ehren haben wir unseren neuen Chatbot „Alan“ getauft!

In der heutigen Zeit ist es nicht unüblich, dass sich beim Anklicken einer Unternehmensseite auf Facebook direkt ein Chat-Fenster öffnet. Auch auf vielen Webseiten springt ein Pop-up auf, das von Beginn an mit dem Besucher interagiert. Jedoch handelt es sich hierbei nicht um Mitarbeiter des Unternehmens, die dem Kunden Frage und Antwort stehen, sondern um virtuelle Berater. Diese Chatbots oder auch nur „Bots“ genannt, sind Dialogsysteme basierend auf Software oder Cloud-Diensten. Als automatisierter Kommunikationspartner liefert der Bot nicht nur passende Antworten auf einzelne Nachrichten, sondern kann ganze Gespräche führen. Dies machen sich bereits viele Unternehmen zunutze, um Kunden nicht nur rund um die Uhr beraten zu können, sondern auch mit Charme und Witz die User Experience zu verbessern. Hier sind unter anderem H&M, Nike oder Ebay zu erwähnen, die bereits erfolgreich Chatbots benutzen, um die Kundenzufriedenheit zu steigern.

Auch unser Bot, „Alan“, soll als virtueller Helfer nicht nur Vertrieb und Recruiting unterstützen, sondern auch 24 Stunden täglich mit den Besuchern „chatten“ können. Der Bot, der auf der LionGate Website zu finden ist, soll jegliche Fragen zu allgemeinen Unternehmensinformationen, wie Dienstleistungsthemen, Kunden, Partner, Team, Kontakt- und Jobmöglichkeiten beantworten, damit alle wichtigen Informationen ohne Aufwand erreichbar sind. Zudem ist Alan eine Art Wegbegleiter durch die Website, falls beim Durchforschen Fragen aufkommen sollten oder der Besucher mehr Informationen zu bestimmten Themen oder Begriffen haben möchte. Grundsätzlich ist das Ziel, einen Chatbot zu erstellen, der nicht nur unternehmensbezogene Fragen beantwortet, sondern darüber hinaus auch Antworten auf allgemeine Themen, wie bspw. Wetterprognosen bietet und Prozesse übernimmt, wodurch dem Kunden und LionGate Arbeit abgenommen wird.

Zur Implementierung fiel die Wahl auf IBM, die mit Ihrem „IBM Watson Assistant“ eine komfortable Möglichkeit bieten, selbst Chatbots zu erstellen. Natürlich gibt es inzwischen zahlreiche andere Dienstleister mit ähnlichem Angebot. Vor allem auf die Cloud-Computing-Marktführer AWS und Microsoft, mit Ihrer Cloud „Azure“, hatten wir vor Beginn des Projekts auch unser Auge geworfen. Aber während AWS zwar ein Botframework („Amazon Lex“) anbietet, ist dieses leider bis jetzt nur zu Konversationen auf Englisch imstande. Die Entscheidung zwischen Microsoft und IBM fiel schon schwerer, wobei uns beim Austesten schließlich IBM überzeugen konnte.
Auch wenn Chatbots heute von Vielen noch als technische Neuheit betrachtet werden, ist es jetzt schon möglich, mit wenig Hintergrundwissen selbst tätig zu werden. So kann man bei IBM ohne weiteres in einer grafischen Oberfläche „Skills“ definieren. Ein „Skill“ beinhaltet alles, was man zum Durchlaufen einer Konversation benötigt.Das wären zuallererst sogenannte „Intents“. Diese stehen jeweils für eine bestimmte Absicht des Nutzers. Damit die Programmlogik später aus den Nachrichten des Benutzers auf einen solchen „Intent“ schließen kann, müssen diese beim Erstellen mit Beispielsätzen verknüpft werden. Man könnte also einen „Intent“ namens „WieHeißtDu“ erstellen, der mit den Fragen „Wie heißt du?“ und „Was ist dein Name?“ verknüpft ist. Immer wenn der Nutzer diese dann so oder ähnlich formuliert eingibt, erkennt unser Bot die Absicht „WieHeißtDu“ und kann dementsprechend eine sinnvolle Antwort auslösen, wie „Ich heiße Alan!“.

Als zweiten Grundbaustein braucht man „Entities“. Diese beschreiben Dinge oder Parameter, die zum Antworten auf manche Eingaben nötig sind. Nehmen wir als Beispiel unsere Firma, die LionGate AG. Wir haben zwei Standorte, einen in München und einen in Düsseldorf. Will man uns kontaktieren, könnte man in Zukunft den Chatbot fragen: „Was ist eure Postanschrift?“. Mit was aber sollte der Bot nun antworten? Mit der Postanschrift in München oder der in Düsseldorf? Hier kommen die „Entities“ ins Spiel. Eine „Entity“ erstellt man, indem man ihr einen Namen gibt, wie „LionGateStandort“, und dann alle dazugehörigen Werte angibt, in diesem Fall „München“ und „Düsseldorf“. Auf die Frage nach der Postanschrift kann Alan nun direkt reagieren, falls in der selben Nachricht ein zur „Entity“ gehörender Wert erwähnt wurde. Und falls nicht, kann Alan gezielt nachfragen.

Das letzte Grundprinzip, der „Dialog“, definiert schließlich mithilfe der ersten beiden den eigentlichen Konversationsablauf. Ein „Dialog“ besteht zuallererst aus „Nodes“, also Knoten, welche sich zu einer größeren Struktur zusammensetzen. In dieser Struktur, die einem sich verzweigenden Baum ähnelt, können „Nodes“ mehrere untergeordnete Knoten besitzen, welche ihrerseits wieder untergeordnete Knoten haben dürfen. Ein „Node“ wird generell mit einem oder mehreren „Intents“ und/oder „Entities“ verknüpft und definiert, was passieren soll, wenn diese in der Eingabe des Nutzers erkannt werden. Dabei spielt auch eine Rolle, in welchem Zustand sich der Chatbot befindet. So merkt er sich immer, welcher Knoten als letztes ausgelöst wurde, und sucht bei Erkennen einer Absicht oder einer „Entity“ zuerst in dessen Nachfolgerknoten nach einer passenden Antwort. Erst wenn er dort keinen „Node“ mit den passenden „Intents“ oder „Entities“ findet, greift er auf den Rest der Struktur zurück. Dadurch lassen sich Konversationsabläufe bauen, die durch die Antworten des Chatbots sehr logisch und natürlich wirken. Zum Definieren dieser Antworten innerhalb der Knoten kann man auf verschiedene Funktionalitäten zurückgreifen. Einerseits ist es natürlich möglich, einfache Texte oder Bilder zu senden. Man kann aber auch Abfragen an externe Programme senden. Alan beispielsweise ist dadurch in der Lage, sinnvoll auf die Frage „Wie warm ist es gerade in München?“ zu reagieren. Dadurch, dass man diese Abfragen beliebig definieren kann, sind den Möglichkeiten kaum Grenzen gesetzt!

Schließlich muss nur noch der „Skill“, der alles gerade Besprochene beinhaltet, einem „Assistant“ zugeordnet werden. Der „Assistant“ kümmert sich darum, die Konversationslogik von außen zugänglich zu machen. Will man den Bot beispielsweise auf einer Internetseite veröffentlichen, wird hier die Kommunikation zwischen dieser Website und der zugrundeliegenden Programmlogik verwaltet. Damit wäre unser Chatbot jetzt fertig und startbereit!

Aktuell ist Alan noch in der frühen Phase der Entwicklung, aber bereits startbereit in Form eines Minimum Viable Products. Durch die Interaktion der Nutzer wird er laufend weiter trainiert und verbessert. Schon jetzt ist Alan zu einfachem Small-Talk in der Lage und kann ein breites Spektrum an Fragen über die LionGate AG sinnvoll beantworten. Auch das aktuelle Wetter an den Standorten von LionGate in München und Düsseldorf kann er wiedergeben. Hier gibt es noch viele Möglichkeiten, den Bot weiter zu verbessern. So könnte man beispielsweise in Zukunft auch Wetterprognosen einbauen. Und selbst wenn Alan den Turing-Test heute wahrscheinlich noch nicht besteht, werden wir uns auch diesem Ziel in Zukunft mit Sicherheit immer weiter annähern!

 

Falls wir Ihr Interesse an der Welt der Chatbots wecken konnten, melden Sie sich bei uns! Wir würden uns freuen, Sie bei den ersten Schritten mit strategischer, fachlicher und technischer Beratung zu unterstützen. Auch eine erste funktionierende Version in Form eines Minimum-Viable-Products erstellen wir gerne für Sie!

// Artikel von Veronika Donocik und Thomas Oberhauser