Zu einer Gruppe der virtuellen Assistenten gehören die sogenannten Chatbots, welche dem Nutzer Informationen auf Anfrage sammeln, liefern oder sogar auswerten. Mit Hilfe von Chatbot Builder Tools, wie SDKs oder fertigen Bot Templates können Unternehmen sich sehr schnell ihren eigenen Bot, mit den von ihnen gewünschten Funktionen bauen.
Auch wenn Chatbots mittlerweile viele Funktionen bieten und Firmen einen echten Mehrwert liefern können, haben sie jedoch auch ihre Grenzen. Nicht jedes Problem kann bzw. sollte mit Hilfe von Chatbots gelöst werden. Um nun beurteilen zu können, wann es sinnvoll ist ein Problem durch einen Chatbot zu lösen, ist es nötig sich den Entwicklungsprozess genauer anzuschauen.
Arten von Chatbots
Chatbots werden in zwei große Sparten unterteilt. Dazu gehören zum einen die regelbasierten Chatbots und zum anderen intelligente Chatbots. Regelbasierte Chatbots verlaufen immer nach dem gleichen Muster. Der Nutzer wird mit Hilfe der vorprogrammierten Dialoge durch eine Unterhaltung oder einen Prozess geführt und hat wenig Spielraum andere Wege in der Konversation einzuschlagen, da der Bot meist nur auf die ihm einprogrammierten Themen eine Antwort parat hat. Zusätzlich unterscheidet man bei regelbasierten Chatbots zwischen proaktiven & reaktiven Chatbots. Proaktive Chatbots warten nicht auf Input des Nutzers, sondern schicken unabhängige Informationen in geregelten Abständen, beispielsweise der WhatsApp Bot von Urlaubspiraten oder Newsletter einiger Firmen. Reaktive Chatbots hingegen warten zunächst auf eine Eingabe des Nutzers und starten je nach Eingabe einen bestimmten Dialog oder Prozess, den sie mit durchgehender Interaktion mit dem Nutzer durchführen.
Der intelligente Chatbot hingegen wird mit Hilfe von Machine Learning immer schlauer und versucht möglichst menschlich auf Antworten zu reagieren. Das hat den Vorteil, dass der Nutzer nicht an der Hand geführt werden muss. Er benötigt meist keine Einarbeitungszeit, da der Bot versucht, mit ähnlichem Input auf dasselbe Ergebnis zu kommen und somit die für den Nutzer passende Antwort zu geben. Natürlich ist er je nach Datenquelle zu Beginn nicht so effektiv und benötigt eine große Datenmenge, auf die er zurückgreifen kann, um möglichst viele Sätze und Zusammenhänge richtig zu interpretieren. Aus diesem Grund nimmt man für einfache und präzise Aufgaben meist den regelbasierten Chatbot, da er schneller und kostengünstiger implementiert werden kann. Intelligente Chatbots werden z.B. eher für Kundensupport verwendet, da kein Kunde sein Problem gleich schildert aber die Lösungsansätze sich dennoch sehr ähneln. Unterschiedliche Nutzer mit unterschiedlichen Problemen würden regelbasierte Chatbots überfordern oder die Kundenzufriedenheit schmälern, da sie weniger flexibel sind.
Motivation und Themenfindung
Das Thema virtuelle Assistenten, vor allem Chatbots, hatte mich bereits seit längerem interessiert und ich wollte schon immer mal meinen eigenen Chatbot erstellen. So habe ich beschlossen, einen Chatbot für die kurz vor Beginn meiner Bachelorarbeit eingeführte Kollaborationssoftware Microsoft Teams zu entwickeln. Nach langer Überlegung erarbeiteten meine Kollegen und ich einen praxisnahen Anwendungsfall, der uns als Softwareentwickler in unserer täglichen Arbeit unterstützen und das Thema meiner Bachelorarbeit werden sollte.
Um unsere Projekte richtig zu koordinieren und den Überblick über den Fortschritt zu behalten, nutzen wir die Taskmanagement Software Teamwork Projects. Teamwork bietet verschiedene Funktionen und Übersichten, um verschiedene Entwicklungsmethoden, wie z.B. Scrum oder Kanban abzubilden. Dabei hat jedes Teammitglied die Möglichkeit, neue Tasks zu erstellen und zu gruppieren.
Um eine möglichst hohe Transparenz zu erreichen, hat auch jeder Kunde Zugriff auf die für ihn angelegten Projekte und kann so den Fortschritt und die damit verbundenen Aufwände jederzeit abrufen. Zusätzlich werden die gebuchten Zeiten im eigens erstellten Timemanagement-Tool hinterlegt. Anhand dieser Daten kann die HR (=Human Resources) Abteilung Abrechnungen erstellen und hat eine bessere Übersicht für die Ressourcenplanung. Das Buchen von Projektzeiten wird daher zu einem etwas aufwändigeren Prozess und kostet den Entwickler wertvolle Zeit, welche im eigentlichen Projekt fehlt.
In meiner Bachelorarbeit soll nun mit Hilfe des sogenannten Microsoft Bot Framework, ein Chatbot entwickelt werden, welcher mittels möglichst wenig Inputs vom Nutzer die gewünschten Zeiten in Teamwork, sowie im hauseigenen Timemanagement-Tool erstellt und speichert. Zusätzlich sollen im Laufe der Entwicklung Möglichkeiten und Grenzen von Chatbots herausgearbeitet werden, um mit den daraus resultierenden Erfahrungen weitere Chancen zur Prozessoptimierung zu erkennen.
Das Microsoft Bot Framework
Das Microsoft Bot Framework SDK bietet Tools und Funktionen zum Entwickeln eigener Chatbot Services, welche auf bestimmte Aktivitäten in einem oder mehreren Chats reagieren. Mittels sogenannter Bot Adapter lassen sich verschiedene Bot Services in verschiedenen Kollaborationssoftwares einbinden.
Quelle: https://azure.microsoft.com/de-de/services/bot-service/
Jeder Bot Adapter kommuniziert mit mindestens einem Bot, indem er jede Aktivität, wie z.B. eine Nachricht oder das Hinzufügen eines Nutzers in einem Kanal, als Event an den Bot weiterleitet. Diese Events kann der Entwickler im Service abfangen und dem Bot vorgeben, wie er auf bestimmte Events reagieren soll.
Ergebnis meiner Arbeit
Bei meinem Bot habe ich mich für einen regelbasierten reaktiven Chatbot entschieden, da der Nutzer zunächst auswählen muss, für welches System er einen Zeiteintrag erstellen möchte und im folgenden Prozess verschiedene, genau definierte Eingaben tätigen muss. Daher ist es nötig den Nutzer Schritt für Schritt durch den Dialog zu führen und ihn gezielt nach den Informationen zu fragen, die der Bot für das Erstellen der Einträge benötigt.
Der fertige Chatbot ist nun in der Lage, den Nutzer in beiden Systemen zu authentifizieren und anschließend zu fragen, in welchem System er Zeit buchen möchte. Im Falle eines Ticket Systems wie Teamwork, wird dem Nutzer eine Auswahl an ihm zugeteilten Tickets vorgeschlagen. Für jedes Ticket kann nun in einer einzigen Übersicht angegeben werden, in welchem Zeitraum gearbeitet und was in der Zeit erledigt wurde. Danach werden die Daten automatisch auf die ausgewählten Tickets in Teamwork gebucht und im digatus Timemanagement-Tool zusammengefasst. So kann der Nutzer direkt im Teams Chat seine Zeiten buchen, ohne den Browser zu öffnen.
Der Bot und sein Service werden in Azure gehostet. Dies hat den Vorteil, dass die Konfiguration und der Bereitstellungsprozess durch die tiefe Integration der Entwicklungsumgebung und der Services um ein vielfaches schneller und einfacher als üblich abläuft. Neben der Registrierung in Microsoft Teams kann der Bot auch für weitere Plattformen wie z.B. Slack angemeldet werden, um hier dem Nutzer eine höhere Flexibilität in der Toolauswahl anzubieten. Ein weiterer wichtiger Punkt ist der Zugriff auf unser Active Directory, um den Nutzer anhand seiner Login Daten schnell und einfach zu authentifizieren, bevor der eigentliche Zeitbuchungsprozess beginnt. Zum Schluss werden mit Hilfe von Azure Application Insights verschiedenste Telemetrie Daten rund um Fehler, Leistung und Benutzerfreundlichkeit der App gesammelt und ausgewertet. So können Fehler schneller erkannt werden oder die Performance optimiert werden.
Fazit
Der Hype um Chatbots ist nun seit ca. 5 Jahren im Gange und obwohl man an manchen Stellen den Boden der Tatsache erreicht hat und merkt, dass Chatbots nicht immer einen sinnvollen Verwendungszweck haben, werden sie dennoch in verschiedensten Sparten erfolgreich eingesetzt – ob im Kundensupport oder in der Automatisierung des Eigenheims mit Alexa & Google Home. Vor allem Facebook und WhatsApp setzen immer mehr auf die virtuellen Assistenten, so auch im Bereich Bildung. Mithilfe von WhatsApp Education Bots können Menschen in Ländern mit sehr schlechter Netzabdeckung täglich lernen und ihren Bildungsstand erweitern. Jedoch haben Chatbots im Bereich der künstlichen Intelligenz noch einiges zu erlernen und man betrachtet ihre Fähigkeiten stand heute eher noch ernüchternd. Der Gedanke, eine natürliche Unterhaltung zwischen Mensch und Maschine zu führen, scheint noch ein langer Weg.
Die erfolgreiche Integration meines Chatbots spart meinen Kollegen und mir nun täglich ein paar Minuten wertvolle Arbeitszeit und wurde von den Kollegen sehr gut angenommen. Persönlich konnte ich am Ende meiner Bachelorarbeit nicht nur zahlreiche Erfahrungen in Azure und dem Microsoft Bot Framework sammeln, sondern habe auch viel über die verschiedenen Arten von Chatbots und deren Verwendungszweck gelernt. Dazu kommen neue Kenntnisse in dem Web Framework ASP. NET, sowie die Programmiersprache C#.