Chat-Bots leicht gemacht

Im April 2016 kam ich das erste Mal in Kontakt mit dem Bot Framework von Microsoft. Nicht nur auf heise.de, sondern auch auf den Online-Präsenzen großer Tageszeitschriften wie der Süddeutschen oder zeit.de und faz.net wurden die neuen Möglichkeiten der Chat-Bots von Microsoft angepriesen. Sollte hier wirklich ein neuer Hype im Bereich der Automatisierung und Digitalisierung starten?

Bei uns im Unternehmen wurden unabhängig vom Microsoft-Launch Evaluierungen zur künstlichen Intelligenz durchgeführt, bei dem aber die Spracherkennung und das selbständige Lernen vielmehr im Vordergrund standen.

Aufgrund dieser Initiativen stellte ich mir die Frage, wie das alles zu meinem Thema passt: SAP-Benchmarking, Analyse von Massendaten, Visualisierung und Ableiten von Optimierungsmöglichkeiten.

Außerdem hatte ich noch im Hinterkopf, dass die Digitalisierung und Automatisierung von Geschäftsprozessen in der IT eine immer größere Rolle spielt. Da kam mir zunächst die Idee, mit einem Chat-Bot möglicherweise eine erste Anlaufstelle für Anfragen im Bereich Performance aufzubauen. Immerhin lassen sich so allgemeine Informationen auf eine lebhaftere und interessantere Art und Weise abfragen (Dialog!) als das herkömmliche „Über-den-Zaun-Werfen“ von PDF-Dateien oder sonstiger Formate von Standardtexten, die dann von den Anwendern sowieso gerne ignoriert werden.

Was sollte mein Bot konkret leisten?

Er sollte idealerweise einfach in unsere Web-Anwendung integrierbar sein, was möglicherweise das Haupteinsatzgebiet ist. Hierbei sehe ich folgende Vorteile:

  • Erklärungsfunktion, 1st Level Support innerhalb der Anwendung. Dialog statt langweiliger Standardtexte
  • Schönere Suchfunktionen aus einem Dialog heraus
  • Allgemeine und aktuelle Hinweise geschickt platzierbar

Aber auch ein Anschluss des Bots an dem Kunden vertraute Chat-Clients wie Skype bieten einen deutlichen Mehrwert. Damit kann ein Kunde ohne den Overhead von Einloggen und Klicken oder Suchen schnell an die gewünschten Infos kommen. Besonders komfortabel für den Anwender wird es auch durch die Verarbeitung einer Voice-Eingabe und praktischerweise muss ich hierfür gar nichts implementieren, denn das übernimmt der Client. Beispielsweise kann so ein Benutzer nebenbei während des Frühstücks oder der Autofahrt einfach nur ein Keyword ins Skype des Smartphones sprechen, der Bot schlägt die wichtigen Infos in unserer Datenbank nach und gibt sie aus. Identifizierung der Person kann über die Skype-ID laufen.

Das Bot Framework von Microsoft bietet sich für all diese Use-Cases an: Die Api (bereitgestellt in node.js und C#) ist für Entwickler leicht anwendbar. Es ist kostenlos, sehr gut integriert in Azure, der Cloud-Plattform von Microsoft, und bietet schöne Anschlussmöglichkeiten mit Skype, WebChat, Email, Facebook Messenger etc.

Ein HelloWorld gemäß der Standardeinführung hat man sehr schnell lokal am Laufen und kann es direkt mit dem Bot Framework Emulator testen.

Auf die wichtigsten Eingaben kann relativ simpel aber gleichzeitig sinnvoll mit regulären Ausdrücken für Standardantworten reagiert werden.

Auf alle Anfragen, die der Bot nicht versteht (d. h. keine RegExp hat „gematcht“), sollte der Bot eine entsprechende Antwort geben und gleichzeitig ein beliebiges Thema vorschlagen, zu dem er neue, interessante Informationen liefern kann.

Um das Ganze möglichst lebhaft und flexibel zu gestalten, formulieren wir bspw. vier Sätze, mit denen der Bot mitteilt, dass er etwas nicht versteht. Einer davon wird im Fall der Fälle zufallsgesteuert ausgewählt. Außerdem soll ja in der Antwort bei Nicht-Verstehen noch ein Thema vorgeschlagen werden. Auch hier wird zufallsgesteuert aus allen existierenden ein Thema herausgepickt und an die Antwort angehängt.

Somit ist die vollständige Antwort, wenn etwas nicht verstanden wird, extrem selten identisch:

    • 4 unterschiedliche Nicht-Verstehen-Sätze x 30 Themenvorschläge => 120 unterschiedliche Standardantworten!

Nicht verstandene Eingaben sollen permanent verbessert werden – unser Bot darf lernen! Minimale Voraussetzung hierfür ist, die Chats erst mal mitzuprotokollieren und im Nachhinein die Reaktion durch Code-Anpassungen entsprechend zu verbessern. Da die Anfragen an den Bot in JSON-Objekten abgelegt werden, bietet sich hierfür eine dokumentenorientierte Datenbank an, beispielsweise die DocumentDB in Azure, wenn wir den Bot auch dort hosten.

Für komplexere Anwendungsbereiche kann mit LUIS auch eine KI, die von Microsoft zur Erkennung von natürlicher Sprache angeboten wird, integriert werden.

 

Um den Bot nun öffentlich zugänglich zu machen und ihn an Skype u. ä. anschließen zu können, sind nur noch zwei kleine Schritte notwendig:

  1. Den Bot als WebService auf einem öffentlich zugänglichen Server ausführen, beispielsweise als Web-Anwendung in Azure mit Bereitstellungsquelle nach Wahl wie OneDrive, DropBox oder github. Geschickterweise ist hier eine automatische Aktualisierung bei Code-Anpassungen einstellbar, wozu es hier eine Step-by-step-Einführung von Microsoft gibt: Publishing a Node.js app to Azure using Continuous Integration.
  2. Bei Microsoft selbst muss der Bot noch als solcher registriert werden. Dort lassen sich auch gleich alle gewünschten Channels per Klick aktivieren.

Fertig war mein Bot, der nun auf Fragen zu Performance und einigen anderen Gebieten über Skype oder Webseite angesprochen werden konnte.

Und was sagt der Kunde dazu?

Der Bot ist sicherlich kein eigenständig verkaufbares Produkt. Aber je nach dem, in welche anderen Produkte er integriert wird, ist es doch ein schönes Gimmick, mit dem man sich am Markt abheben kann. Die vertrauten Anschlussmöglichkeiten wie Skype und die Umsetzung von aktuellen Trends können aber den Ausschlag geben, im Vergleich mit einem funktionsähnlichen Konkurrenzprodukt zu überzeugen.

 

Weiterführende Links

 

Autor: Tobias Ceska, Architektur und Innovationsteam bei Realtech

Kontakt:Tobias.Ceska@realtech.com

Schreibe einen Kommentar

Your email address will not be published. Required fields are marked *