Einsatzmöglichkeiten und Frameworks für Chatbots im Vergleich

Conversational UI: Welches Framework ist das Richtige für mein Projekt?
Keine Kommentare

Chatbots sind in aller Munde, viele reden darüber, mancher fürchtet sich davor. Doch was sind Chatbots eigentlich, und wie kann man seinen eigenen Chatbot erstellen?

Viele haben einen und die, die noch keinen haben, wollen einen. Die Rede ist von einem Chatbot. Diese elektronischen Gesprächspartner wie Siri von Apple, Cortana von Microsoft, Alexa von Amazon oder irgendein anderer Bot sind (im weitesten Sinne) künstliche Intelligenzen, die versuchen, die natürliche Sprache des Menschen zu deuten und den Sinn des gesagten oder geschriebenen Satzes zu erkennen, um darauf mit einer geeigneten, menschlich klingenden Antwort reagieren zu können.

Vielfalt

Ein Chatbot kann zwei sehr wichtige Aufgaben übernehmen: Er kann sich mit Menschen unterhalten, eingegebene Texte (oder Sprache zu Text konvertiert) von Nutzern verstehen und den Kontext eines Gesprächs mit dem Anwender verfolgen. Er kann aber auch Daten, die von Nutzern eingegeben wurden, sammeln und verarbeiten, um das beste Ergebnis zurückzuliefern.

Chatbots lassen sich in zwei Gruppen unterteilen. Zum einen gibt es regelbasierte Chatbots, die nur dazu in der Lage sind, vordefinierte Worte zu verstehen. Allerdings besteht dabei das Risiko, dass sie anders formulierte Sätze oder falsch geschriebene Wörter nicht erkennen können. Falls ein Bot so programmiert ist, dass er nur den Satz „Ich möchte mich versichern“ verstehen kann, um Informationen über Versicherungen bereitzustellen, der Benutzer stattdessen aber den Satz „Ich brauche eine Versicherung“ eintippt, ist der Bot nicht in der Lage, dies zu verstehen oder zu erkennen. Deshalb kann es sein, dass regelbasierte Chatbots die oben genannten Aufgaben nicht beherrschen. Ein gutes Framework zum Erstellen eines regelbasierten Chatbots ist das Bot Framework für Entwickler von Facebook. Solche Bots lassen sich nutzen, um sehr kurze und bestimmte Gespräche mit Menschen zu führen, wie zum Beispiel um eine Pizza oder ein Zimmer zu bestellen.

Zum anderen gibt es Chatbots, die auf künstlicher Intelligenz basieren. Hier sind die Chatbots so programmiert, dass sie die menschliche Sprache und Botschaften verstehen können, egal ob die Sätze unterschiedlich formuliert sind oder Rechtschreibfehler enthalten. Diese Gruppe ist auch intelligent genug, um Fragen und Antworten zu verstehen, also einem Gespräch zu folgen. Deshalb sind diese Chatbots besser geeignet, um die oben genannten beiden Aufgaben zu erfüllen. Infolgedessen werden in der Praxis häufiger Chatbots, die auf künstlicher Intelligenz basieren, als regelbasierte Bots verwendet, um so einen besseren „Menschenersatz“ zu schaffen. Dadurch wird die künstliche Intelligenz immer weiter vorangetrieben, wodurch es immer mehr Einsatzmöglichkeiten für Chatbots im Alltag gibt.

Die auf künstlicher Intelligenz basierenden Chatbots sind eine Weiterentwicklung der regelbasierten Chatbots, daher haben wir uns in dem Artikel auf die Chatbots fokussiert, die auf künstlicher Intelligenz basieren. Bevor wir jedoch zu den verschiedenen Frameworks für die Umsetzung von Chatbots gehen, schauen wir zuerst die verschiedenen Einsatzmöglichkeiten von auf künstlicher Intelligenz basierenden Chatbots an.

Einsatzmöglichkeiten

Stellt man die Frage, auf welchen Gebieten Chatbots eingesetzt werden können, so sollte zunächst eine andere Frage beantwortet werden: In welchen Bereichen geht es um den Austausch von Informationen? Diese Frage wiederum ist zwar nicht vollständig, aber dafür relativ leicht und in großem Umfang zu beantworten. Einerseits gibt es natürlich naheliegende Einsatzszenarien wie Call- und Supportcenter, sei es telefonisch oder als Webchat. Dann kommt man zu anderen Services wie einer Essensbestellung, Geschäftsabwicklungen oder Informationsmöglichkeiten. Etwas weiter gedacht, lassen sich hier natürlich auch Guides in Museen, interaktive Bedienungsanleitungen oder Hilfefunktionen in Anwendungen miteinbeziehen. Damit kommt man der Ursprungsfrage, an welchen Stellen Chatbots eingesetzt werden können, schon näher und muss sich nur Gedanken dazu machen, wie starr die ausgetauschten Informationen sind oder ob zum Beantworten einer Frage auch Kreativität gefordert ist. Je nachdem, wie die Antwort dieser Frage aussieht, kann die Aufgabe von einem Chatbot übernommen werden. Auch wenn es schon künstliche Intelligenzen wie zum Beispiel Watson gibt, der schon einmal in der US-amerikanischen Quizsendung Jeopardy! gewonnen hat, ist dennoch nicht zu erwarten, dass ein Chatbot zum jetzigen Zeitpunkt auf hoch komplexe Fragen kreativ antworten kann. Dennoch sollte es für eine Pizzabestellung, als Informationsauskunft oder zum Beispiel als Hilfe bei der Bedienung von Geräten ausreichen. Ist der Chatbot dafür geeignet, eine Aufgabe zu übernehmen, so muss man sich noch ein für die Aufgabe passendes Framework überlegen und kann dann mit der Konzeption beginnen.

Frameworks

Im Folgenden stellen wir die bekanntesten Frameworks für Chatbots auf Basis von künstlicher Intelligenz mit ihren Möglichkeiten kurz vor.

LUIS.AI (Microsoft)

LUIS.AI wurde 2016 zusammen mit dem Microsoft Bot Framework und einer Plattform zum Entwickeln von Skype Bots von Microsoft vorgestellt. Dabei ist LUIS.AI immer noch in der Betaphase und kann von jedem mit maximal 10 000 Anfragen pro Monat kostenlos genutzt werden.

LUIS.AI arbeitet mit Intents und Entities und benutzt diese für das Machine Learning. Dadurch kann es die eingegebenen Sätze von Benutzern besser verstehen. Um einen Bot mit verschiedenen Äußerungen zu trainieren, gibt es ein Webinterface, in das man Ausdrücke eingeben kann und das das Ergebnis, mit welcher Wahrscheinlichkeit der Ausdruck zu einem bestimmten Intent gehört, anzeigt.

LUIS.AI hat auch eine Liste verschiedener, vordefinierter Domains (fertige Intents und Entities), die die Arbeit des Entwicklers vereinfachen sollen, um die Inputs der Nutzer besser zu verstehen bzw. zu verarbeiten (Abb. 1 und 2).

Abb. 1: Testoberfläche LUIS.AI (Screenshot), Quelle: [3]

Abb. 1: Testoberfläche LUIS.AI (Screenshot)

Wit.ai (Facebook)

Wit.ai ist die künstliche Intelligenz von Facebook. Es ermöglicht nicht nur, Chatbots zu erstellen, sondern wirbt auch mit seiner Spracherkennung für Roboter, Mobile-Apps und einer Anbindung an die Home-Automation-Devices, wie zum Beispiel Thermostate, Jalousien oder die Stereoanlage.

Eine Konversation wird bei Wit.ai als sogenannte Story modelliert, die sich zurzeit noch in der Betaphase befindet. Hier werden verschiedene Intensionen, also Absichten, die ein Nutzer mit einer Frage oder einer Aussage bezweckt, zu Intents (engl. für Absicht) gebündelt (Abb. 3). Macht ein User eine Eingabe, so versucht Wit.ai diese einem der vorher definierten Intents zuzuordnen, und gibt dann eine entsprechende Antwort zurück. Um Entwicklern die Arbeit zu erleichtern, stellt das Wit.ai-Framework schon eine JavaScript-Bibliothek für die Kommunikation mit dem modellierten Bot zur Verfügung.

API.AI (Google)

API.AI ist zurzeit eine kostenlose Plattform. Sie wurde ursprünglich von einem Team erstellt, das eine persönliche Assistenten-App für große mobile Plattformen mit sprach- und textfähigen Eingaben entwickelte. Im September 2016 hat Google API.AI übernommen.

Um mit API.AI einen Chatbot zu realisieren, wird am Anfang ein Agent erstellt (Abb. 4). Damit erhält man gleichzeitig einen Token, den man nutzen kann, um den Bot in einer eigenen Anwendung durch die Nutzung von bereitgestellten SDKs für die verschiedenen Sprachen zu verwenden.

Der Agent unterstützt alle Features, die API.AI zur Verfügung stellt: Intents, Entities, Kontexte, Sprache-zu-Text- und Text-zu-Sprach-Konvertierung und maschinelles Lernen. Außerdem ist es ganz leicht möglich, den Agenten jederzeit zu testen, um so herauszufinden, wie gut er vom Nutzer übermittelte Sätze zuordnen kann.

Ein weiteres Feature von API.AI ist die Unterstützung durch sogenannte „Prebuild Agents“, die auf Wissen in verschiedenen Bereichen spezialisiert sind, zum Beispiel auf die Bereiche Wetter oder Übersetzungen. Diese Agenten haben schon vorgefertigte Intents und Entities, sind aber anpassbar, nachdem man sie in das eigene Konto importiert und einen Webhook eingesetzt hat, über den der Agent angesprochen werden kann.

Wenn man mit dem Trainieren des Agenten fertig ist, bietet API.AI mit der One-Click-Integration eine schnelle und einfache Möglichkeit, den Chatbot zu veröffentlichen. So lässt sich der Agent in andere Plattformen wie zum Beispiel Twitter, Telegram oder Skype einbetten. Außerdem besteht die Möglichkeit, den Chatbot über eine Schnittstelle oder mithilfe der SDKs in eine eigene Anwendung zu integrieren. (Abb. 5)

Watson, das neurale Netz von IBM, ist eigentlich viel mehr als ein Chatbot. Watson ist eine Sammlung verschiedener Services zur Datenanalyse und Datenaufbereitung (Abb. 6). Darunter gibt es auch den „Conversation-Service“, über den ein Chatbot realisiert werden kann. Daneben gibt es aber auch vieles andere, zum Beispiel einen „Language Translator“, mit dem Text von einer Sprache in eine andere übersetzt werden kann, eine „Speech-to-Text“- und „Text-to-Speech“-Funktion und viele andere Services. Diese Funktionen sind unter bestimmten Bedingungen für jeden kostenlos nutzbar.

Abb. 6: IBM Watson: Übersicht über die angebotenen Services (Screenshot), Quelle: [8]

Abb. 6: IBM Watson: Übersicht über die angebotenen Services (Screenshot)

Abb. 7: IBM Watson: Ansicht der Dialogmodellierung (Screenshot), Quelle: [9]

Abb. 7: IBM Watson: Ansicht der Dialogmodellierung (Screenshot)

Hierbei arbeitet Watson mit sogenannten Triggern. Dabei muss man Watson Beispielsätze zur Verfügung stellen und diese zu einem Trigger bündeln. So wurden im Beispiel die Sätze „Hallo, wie heißt du?“ und „Was ist dein Name?“ unter dem Trigger #ASKNAME gebündelt. Watson interpretiert nun eine Nutzereingabe und klassifiziert, ob diese die gleiche Intension hat wie die Fragen des #ASKNAME-Triggers. Ist dies der Fall, so liefert er die statische Antwort: „Ich heiße Bob!“. Andernfalls teilt er dem Nutzer mit, dass er ihn nicht verstanden hat (Abb. 7). Auf diese Weise können lange, tief verzweigte Unterhaltungen modelliert werden. Verknüpft man das mit dem Speech-to-Text- oder Text-to-Speech-Modul können auch Sprachein- und -ausgaben stattfinden.

Der Conversation-Service funktioniert über Konversationsbäume, die im Interface auf der Webseite definiert werden können. Durch diese Bäume bleiben selbst umfangreiche Gespräche übersichtlich. Dabei werden bei jedem „Knoten“ des Baums drei Dinge festgelegt:

  1. Wodurch wird der Knoten angesprochen? Was ist der Trigger? Im Beispiel ist der Trigger eine Eingabe, die dem #ASKNAME Intent zugeordnet wird.
  2. Was soll Watson antworten, falls die Nutzereingabe der erwarteten Eingabe entspricht? Das wäre in diesem Fall „Ich heiße Bob!“.
  3. Zu welchen Knoten bzw. in welche Richtung kann das Gespräch verlaufen, nachdem Watson geantwortet hat? Da im Beispiel ein sehr kurzes Gespräch modelliert wurde, ist an dieser Stelle nur ein +. Außerdem versucht Watson, selbst Antworten auf Fragen zu finden und sich die Antwort selbst zusammenzubauen.

Tabelle 1 vergleicht noch einmal die oben vorgestellten Frameworks in einigen Kernpunkten. Dabei bezieht sich die Set-up-Geschwindigkeit auf das im Artikel verwendete Beispiel.

Tabelle 1: Eigene Darstellung eines Frameworkvergleichs

Tabelle 1: Eigene Darstellung eines Frameworkvergleichs

Grenzen von Chatbots

Obwohl diese intelligenten technischen Systeme ein hohes Maß an Unabhängigkeit und Verständnis haben können, werden sie dennoch von vielen Menschen kritisiert. Chatbots funktionieren gut für bestimmte Interaktionen, die spezifische Merkmale haben, z. B. schnelle Interaktionen wie das Bestellen einer Pizza oder einfache Interaktionen wie das Buchen eines Hotelzimmers. Es kann aber schwierig sein, durch eine lineare Multi-Input-Konversation wie menschliche persönliche Beratung voranzukommen, die ein gutes Verständnis von Natural Language erfordert (eine große Herausforderung für Entwickler). Eine bessere Lösung wäre die Kombination aus Mensch und Maschine, wodurch mehr als durch die Maschine alleine geleistet werden kann. Allerdings muss man erkennen, dass die KIs noch in der Betaphase stecken und sie den Menschen noch nicht vollkommen ersetzen können.

Resümee: Hype oder echte Alternative?

Chatbots werden in den letzten Monaten stark gehypt. So sollen Chatbots beispielsweise die besseren und günstigeren Call Agents sein, sodass auf Callcenter ganz verzichtet werden kann. Soweit sind wir jedoch noch lange nicht. Richtig ist aus unserer Sicht, dass Chatbots eine sehr gute Ergänzung zu den klassischen Kommunikationskanälen sind, jedoch den Menschen und seine Intelligenz und Kommunikationsfähigkeit bisher nicht ersetzen können.

In der letzten Zeit wurden die Frameworks und insbesondere die künstliche Intelligenz hinter den Frameworks kontinuierlich weiterentwickelt, sodass sie einen Stand erreicht haben, der jedem die schnelle Erstellung eines Chatbots für ein einfaches Gespräch ermöglicht. Die Frameworks selbst unterscheiden sich dabei vor allem im Bereich der Kosten und der Integrationsmöglichkeiten. Die Qualität der einzelnen KIs haben wir uns nicht im Detail angeschaut und auch keinen Vergleich erstellt. In unseren Tests hatten wir jedoch den Eindruck einer ähnlichen Erkennungsrate der Frameworks für natürlichen sprachlichen Text.

Die Kombination der Chatbots mit Sprachsystemen wie Alexa oder Siri bietet für die Zukunft interessante Möglichkeiten, da sich die Barriere des Tippens bzw. Schreibens umgehen lässt und der Eindruck von natürlicher Kommunikation noch einmal verstärkt wird.

Entwickler Magazin

Entwickler Magazin abonnierenDieser Artikel ist im Entwickler Magazin erschienen.

Natürlich können Sie das Entwickler Magazin über den entwickler.kiosk auch digital im Browser oder auf Ihren Android- und iOS-Devices lesen. In unserem Shop ist das Entwickler Magazin ferner im Abonnement oder als Einzelheft erhältlich.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -