Chatbots und Conversational User Interfaces
Vor kurzer Zeit habe ich einen Beitrag zur Digitalisierung in kleinen Unternehmen veröffentlicht. Dort habe ich dir erklärt, wie ein kleines Unternehmen digitaler werden kann und ihre IT mit einfachen Möglichkeiten auf Vordermann bringen kann. Dadurch sollen Abläufe effizienter gestaltet werden und Barrieren überwunden werden.
Wie du beim Lesen des Beitrags allerdings festgestellt hast, betraf der Beitrag überwiegend die interne Struktur und die interne Kommunikation im Unternehmen. Ich habe Kunden und Stakeholder völlig außer Acht gelassen. Das will ich natürlich nicht dabei belassen und daher widme ich mich in diesem Beitrag überwiegend der externen Kommunikation. Das soll allerdings keinesfalls bedeuten, dass man intern nicht genauso auf Chatbots setzen kann. Es gibt durchaus viele Use Cases, in denen man auch intern einen Chatbot einsetzen kann.
Wie komme ich zu Chatbots?
Das Thema Chatbots ist für mich nicht sehr neu. Ich bin schon seit einigen Monaten an der Entwicklung eines Chatbots im Rahmen von Forschungsarbeiten beteiligt. Sie haben mich von Beginn an fasziniert, da es doch großes Einsatzgebiet gibt. Das hätte ich anfangs gar nicht erwartet, denn auch ich habe Chatbots eher als solche technischen Spielereien in Erinnerung, die nicht richtig funktionieren und mich nicht verstehen.
Eventuell habe ich allerdings durch die Thematik Smart Home und Sprachassistenten meine Meinung ein wenig geändert. Denn auch Chatbots können mit Sprachfunktionalitäten angeboten werden. Dazu bietet Microsoft beispielsweise mit LUIS eine sehr gute Grundlage, die man sich als Entwickler einmal genauer ansehen sollte.
Alles in allem will ich dir in diesem Artikel einen kleinen Überblick geben und dir auch eine Menge an weiterführenden Information zur Verfügung stellen. Der Artikel richtet sich dabei nicht zwingend an Entwickler, denn der Abschnitt für Nicht-Entwickler ist doch sehr groß ausgefallen. Dennoch gebe ich auch am Ende des Beitrags einige nützliche Tipps, wie man seinen eigenen Chatbot auf einem eigenen Server betreiben kann und worauf man dabei achten soll.
Doch vorab: Was sind Chatbots?
Man hört vieles über Chatbots und eigentlich ist es auch ein Begriff, der bei vielen Personen gängig geworden ist. Bei den einen, weil man sich über den beschränkten Funktionsumfang ärgert, bei den anderen aus voller Freude. Ich gehöre für meinen Teil eher zu den Personen, die sich über Chatbots freuen – sofern sie gut gemacht sind. Denn Chatbot ist nicht gleich Chatbot. Was nützt ein Bot, der so beschränkt ist, dass er nur fest definierte Keywords versteht?
Du siehst, man kann sich schnell über Dinge ärgern und man findet immer das Haar in der Suppe. Doch weißt du überhaupt, was genau ein Chatbot ist? Wie würdest du ihn beschreiben? Was wäre deine Definition?
Schwierig, oder?
Einfach gesagt ist ein Chatbot eine Software, die mit dem Nutzer interagiert. Das tut im Grunde jede Software. Doch das Besondere an Chatbots ist, dass sie hierfür sogenannte Conversational User Interfaces nutzt. Das ist ein Interface, das mit Hilfe von Konversationen bestimmte Aufgaben ausführt. Denn wir Menschen sollen die Technik nutzen, ohne dass wir uns auf die Technik einstellen. Sie soll sich an uns anpassen. Dazu nutzt man die natürlichste Kommunikation, die es für uns gibt: die Sprache. Diese kann in Schriftform genutzt werden oder wirklich per Stimme.
Chatbots kommunizieren über Conversational User Interfaces mit dem Nutzer. Sie helfen dabei Recherchearbeiten zu erleichtern, Reservierungen zu tätigen oder Support zu erhalten. Mit künstlicher Intelligenz werden Chatbots verbessert, so dass sie dem Benutzer einen noch größeren Mehrwert bieten. Stichworte hierfür sind Machine Learning, KI und insbesondere Cognitive Services von Microsoft. |
Wo werden Chatbots heute schon eingesetzt?
Nun ja, das Thema ist recht modern. Viele springen auf diesen Trend auf und aus diesem Grund findet man auch recht viele Bots, die bereits im produktiven Einsatz sind. Bei Digicomp findest du einen schönen Artikel, in dem Sophie Hundertmark einige Chatbots vorstellt. Darunter befinden sich Bots von H&M und Wetter Online.
Interessant ist dabei, dass viele Personen Chatbots mit Facebook assoziieren. Doch das ist so nicht immer richtig. Klar, auf Facebook erreicht man eine breite Masse an Nutzern, die täglich mit dem Bot in Kontakt treten. Es gibt allerdings noch weitere Medien, die Bots integrieren können. Bei Microsoft und dessen Bot Framework nennt man das Channels. Hier stehen Channels wie Facebook, Skype, Microsoft Teams, Skype For Business, Slack und weitere zur Verfügung. Das Besondere hierbei ist, dass man den Chatbot einmal erstellt und er auf viele Arten erreichbar ist. Man kann so sicherstellen, dass auf jedem Medium die gleiche Qualität an Antworten verfügbar ist und sich die Nutzer nicht pro Channel umstellen müssen. Ebenso kann jeder Benutzer selbst entscheiden, über welche Plattform er gerne lieber mit dem Bot in Kontakt treten möchte.
Der Wetter Online Chatbot
Damit es allerdings einfacher ist, einen Bot in Aktion zu sehen, habe ich mich auf Facebook auch einmal ausprobiert. Dabei habe ich den Bot von WetterOnline genutzt und mal ein wenig mit ihm gequatscht.
Da ich selbst aktuell dabei bin, einen Chatbot zu entwickeln, finde ich das Ausprobieren natürlich umso spannender. Was mir gleich zu Beginn auffiel war, dass der Bot nicht reagiert wenn er einen Nachricht erhält, die keinen der Befehle enthält. Das ist schade, denn so weiß der Nutzer gar nicht, ob die Nachricht angekommen ist oder ob es an etwas anderem lag. Das führt mich auch gleich dazu zu sagen, dass der Bot immer ein Feedback geben muss.
Andernfalls verhält es sich wie bei einem Telefongespräch mit einem Freund. Du erzählst etwas, bekommst aber keine Rückmeldung. Du kannst nicht sehen, ob die Person dir zugehört hat oder ob sie gerade etwas anderes tut. So musst du immer wieder nachfragen, bis du dein Feedback bekommst. Auf Dauer ist das sehr ermüdend und führt dazu, dass du das Interesse verlierst. Es bietet dir einfach keinen richtigen Mehrwert.
Worauf sollte man bei der Erstellung achten?
Das mangelnde Feedback des Bots führt mich direkt zu meinem nächsten Punkt. Es gibt einige Dinge, die bei der Erstellung eines Chatbots beachtet werden sollten. Denn man kann nicht erwarten, dass man etwas in die Welt setzt und es nur aufgrund einer neuen Technologie super toll wird. Es spielen so viele Faktoren eine Rolle, die manchmal doch etwas außer Acht gelassen werden.
Biete deinen Bot dort an, wo er gebraucht wird
Hast du schon einmal in einem Telefonbuch Anzeigen zu neuen Kochrezepten gefunden? Ich vermute mal nicht, denn sie wären dort völlig falsch. Niemand nimmt sich ein Telefonbuch in die Hand und hofft eine Antwort auf die Frage Was koche ich heute? zu finden. Ähnlich ist es bei den Bots. Deine Nutzer wollen den Bot dort nutzen, wo er gebraucht wird. Keiner wird eine Website mit einem Chat aufrufen, damit er an Informationen kommt, wenn er gerade dabei ist auf deiner Facebookseite zu stöbern.
Biete deinen Bot also genau dort an, wo er gebraucht wird und vor allem an den Stellen, wo er auch tatsächlich einen Mehrwert bietet. Facebook eignet sich hervorragend, um mit den Benutzern fortlaufend in Kontakt zu bleiben. Denn durch den Messenger erhält man bei neuen Nachrichten Push-Notifications und ist direkt informiert. Außerdem hat man weiterhin den Vorteil, dass man das Portal sowohl auf dem Rechner als auch auf mobilen Endgeräten nutzen kann. Unschlagbar!
Achte auf ausreichend Feedback
Ja … das Thema Feedback. Ich habe es beim Chatbot von WetterOnline bereits angesprochen und möchte hierzu eigentlich gar nicht mehr all zu viel sagen. Wichtig ist, dass dein Bot immer präzise Antworten liefert. Wenn der Benutzer etwas falsches eingibt, muss er darauf hingewiesen werden. Andernfalls wird dein Bot schnell als nutzlos angesehen, da man nicht weiß, was man falsch gemacht hat.
Hauche deinem Bot Leben ein – es ist kein Formular
Dein Chatbot sollte nicht nur informativ sein, er soll auch ein wenig Spaß vermitteln. Natürlich kann man jetzt nicht hunderte Emojis einsetzen und behaupten, das ist super spaßig. Aber wieso kann ein Bot nicht einmal einen Witz machen? Wieso sollte ein Bot nicht auch Emojis in Maßen nutzen?
Auf iox.bot erschien ein Artikel zu einer Statistik von Statista, in der Personen zum Umgang mit Chatbots befragt wurden. Hierbei wurde festgestellt, dass 58 Prozent der Befragten einen freundlichen Chatbot bevorzugen. Und in meinen Augen spielt das Thema Persönlichkeit eine große Rolle wenn es um das Freundlich sein geht. Du kommunizierst mit dem Bot und willst das Gespräch wie mit einer Person führen. Das funktioniert ohne Persönlichkeit allerdings nicht, denn sonst wäre der Bot eben ein reines Programm. Dieses würde bei jeder Anfragen von vorne abgespielt werden.
Gefahren für die Akzeptanz
Du kennst nun meine Meinung zu den wichtigsten Punkten bei der Erstellung von Chatbots. Doch wo sehe ich Risiken im Umgang mit Chatbots?
Ich denke ein ganz großes Risiko bei der Akzeptanz ist, dass Unternehmen und Personen oft versuchen, möglichst viele Funktionen auf einmal einzubauen. Man sollte lieber einmal klein starten und dafür den Bot und dessen Funktion so gut ausarbeiten, dass er eine gute Qualität hat. Mir persönlich ist es lieber, dass ein Chatbot mich versteht und seine Funktionen gut ausführt, als dass er viel kann aber mich nicht versteht oder das Feedback schlecht ist.
Außerdem sollte man das Vertrauen in seinen Chatbot erhöhen. Denn gerade wenn es sich um Bestellungen handelt, gibt man das Zepter nur sehr ungern aus der Hand. Man weiß nicht, ob der Chatbot alles richtig macht und ob es doch noch Fehler gibt, die man später teuer bezahlen muss. Das ist mitunter auch einer der Hauptgründe weshalb ich denke, dass nahezu kaum jemand über seinen Amazon Echo eine Bestellung aufgibt (und vielleicht wegen der Puppenhaus-Panne), selbst wenn er ein Conversational User Interface bietet über das man seine Aktionen nachvollziehen kann.
Conversational User Interfaces
Ich habe dir ja bereits erklärt, dass Conversational User Interfaces (CUIs) die Schnittstelle für deinen Chatbot sind. Sie sollen für den Benutzer hilfreich und ansehnlich gestaltet sein. Denn hier werden zwei Dinge miteinander kombiniert. Zum einen handelt es sich um eine Website, die der Benutzer besucht. Die ersten Sekunden entscheiden darüber, ob der Nutzer bleibt oder die Seite wieder verlässt. Bleibt der Nutzer, so kommt der zweite Teil ins Spiel: die Konversation.
Bei der Konversation geht es darum, dem Benutzer einen Mehrwert zu bieten und dennoch den guten Eindruck der Website aufrecht zu erhalten. Daher sollten in meinen Augen beide Dinge zusammenpassen. Besteht deine Website aus einem modernen Aussehen, so sollte auch der Chatbot eine moderne Art der Kommunikation bevorzugen. Aber bitte kein Jugendslang! Der Bot sollte seriös sein.
Stellst du deinen Bot auf unterschiedlichen Kanälen zur Verfügung ergeben sich daraus aber enorme Vorteile. Bei Skype, Facebook und Co. hast du das Glück, dass du nicht für das CUI verantwortlich bist. Dieses wird nämlich vom jeweiligen Hersteller der Plattform übernommen. Du hast allerdings beim Microsoft Bot Framework ebenso den Vorteil, dass du für deinen Bot einen eigenen Webchat online stellen kannst. Diesen kannst du auf deiner Website einbinden und so können alle Besucher direkt mit dem Bot kommunizieren. Hier musst du allerdings auf das korrekte Sytling und alle Anpassungen achten.
Jedoch hast du bei diesem Methode wiederum den Vorteil, dass du in der Gestaltung völlig frei bist und den Chat nahtlos in deine Seite integrieren kannst. Außerdem können Besucher mit dem Bot kommunizieren, obwohl sie keinen Account auf sozialen Netzwerken haben etc.
Für Entwickler: Microsoft Bot Framework
Wenn du nun Lust hast einen eigenen Chatbot zu entwickeln, dann kannst du gleich in die Tasten hauen! Microsoft bietet hierfür beispielsweise sein Bot Framework an, mit dem sich einzigartige und tolle Chatbots erstellen lassen. Diese können auf Azure veröffentlicht werden und auf unterschiedlichen Channels kommunizieren. Du hast außerdem die Möglichkeit Language Understanding (LUIS) zu nutzen, um eine noch bessere Kommunikation zu ermöglichen. Die Erweiterungen hierfür sind wirklich super!
Entwickeln kannst du deinen Bot entweder mit JavaScript/TypeScript auf Basis von NodeJS oder mit Hilfe von Dotnet Core. Welche Technologie du wählst, ist egal. Auch für den späteren Produktivbetrieb bist du völlig unabhängig, denn durch Dotnet Core kannst du deinen Chatbot auch unter Linux betreiben. Für Testzwecke habe ich einen Chatbot auf Linux in Betrieb genommen und getestet. Hierzu musst du lediglich Dotnet Core für Linux installieren und schon kann es losgehen. Außerdem solltest du in deinem Quellcode darauf achten, dass du die Pfade so eingibst, dass sie unter Linux interpretiert werden können. Üblicherweise nutzt Linux ein Slash anstatt ein Backslash.
Dein Chatbot auf deinem eigenen Server
Vielen Entwicklern ist es eventuell noch unklar, doch du kannst deinen Chatbot auf deinem eigenen Server in Betrieb nehmen. Du bist nicht in allen Punkten von Azure abhängig. Wichtig ist allerdings, dass eine https-Verbindung vorausgesetzt wird. Du kannst hierfür die Zertifikate von Lets Encrypt nutzen. Danach stellst du deinem Bot eine (Sub-) Domain zur Verfügung unter der er erreichbar ist.
Wenn dieser Schritt abgeschlossen ist, musst du auf Azure jedoch die Channels anlegen. Dazu erstellst du in deinem Azure-Konto die Ressource Bot Channels Registration. Hier musst du dann darauf achten, dass du den korrekten Messaging Endpoint eingibst. Das ist deine Domain, unter welcher der Bot erreichbar ist. Angehängt werden muss außerdem ein /api/messages. Nach dem Speichern sollte alles funktionieren.
Einen kleinen Tipp am Rande habe ich auch noch: Üblicherweise stellt Dotnet dir deinen Bot als http://localhost:PORT zur Verfügung. Richte in deinem Apache-Webserver (oder einem anderen Webserver) einen Reverse Proxy ein, damit der komplette Datenverkehr an deine Dotnet-Anwendung durchgeschleust wird. Andernfalls wirst du keinen Zugriff auf deinen Bot bekommen. Über den Reverse Proxy ist es außerdem möglich, dass dein Chatbot ein gültiges SSL-Zertifikat verwendet.
Wie die Daten nun ausgetauscht werden
Jetzt fragst du dich eventuell, wie der Channel, Azure und dein Bot miteinander kommunizieren. Das ist ganz einfach. Wenn du über einen Channel eine Nachricht sendest, wird diese Nachricht an Azure gesendet. Von dort aus wandert deine Nachricht über den Messaging Endpoint an deine Domain und wird vom Apache an deinen Bot weitergeleitet. Im Grunde läuft hier alles über GET/POST-Requests.
Dein Bot wertet die Anfrage aus und sendet seine Antwort zurück über den Reverse Proxy an Microsoft Azure. Von dort aus wird über die Channels Registration die Antwort an den richtigen Channel weitergeleitet und kommt schlussendlich beim Nutzer deines Bots an.
Microsoft Azure ist dabei allerdings kein Einschnitt oder ein Hindernis. Es hilft dir dabei, dass alle Anfragen gebündelt werden und einfach durch deinen Bot ausgewertet werden können. Du könntest natürlich auch deine eigene Vermittlungsschicht zwischen Endpoint und Benutzer schreiben. Ich denke allerdings, dass sich der Aufwand hierfür nicht lohnen wird. Microsoft hat hierfür ein sehr gutes Tools bereits zur Verfügung stehen.
2 Kommentare
Das Smart Home mit Persönlichkeit - Hobbyblogging · 7. November 2020 um 08:01
[…] Abschlussarbeit im Bachelor-Studium handelte von Chatbots und Conversational User Interfaces. Spannend daran war für mich, wie Chatbots in unserem alltäglichen Leben integriert werden […]
HABot: Openhab Chatbot für Smart Home - Hobbyblogging · 25. Oktober 2018 um 19:17
[…] einer Weile habe ich einen Beitrag zum Thema Chatbots und Conversational User Interfaces geschrieben und veröffentlicht. Dort habe ich dir erzählt, wie man einen Chatbot erstellen kann […]