Open Source Tools zur Erstellung von Chatbots

Chatbots sind momentan ein Trend-, man könnte auch sagen Hype-Thema. Aber auch wenn die Aufmerksamkeit perspektivisch gesehen vermutlich wieder zurückgehen wird, gibt es bereits heute einige Bereiche, in denen Chatbots sinnvoll eingesetzt werden können und auch schon werden.

Während general-purpose Bots, wie es letztendlich auch Siri, Alexa, Cortana und Co. sind, auf absehbar Zeit eine Spielerei bleiben werden, werden hochspezialisierte Chatbots schon heute produktiv eingesetzt, zum Beispiel im First-Level Customer Support.

Einer der Vorteile des aktuellen Hypes ist eine wahre Schwemme an Tools, Frameworks und Services, die die Erstellung von Chatbots vereinfachen sollen. Viele davon sind Open Source oder zumindest kostenlos verfügbar. Im Rahmen eines Forschungsprojektes haben wir verschiedene Angebote analysiert und verglichen und haben dabei unter anderem einige Open Source Tools gefunden, die durchaus mit ihren kommerziellen Konkurrenten mithalten können oder diese sogar übertreffen. Zwei dieser Tools möchte ich an dieser Stelle kurz vorstellen.

Messenger Frameworks

Telegram, Facebook, Twitter, Skype oder sogar SMS, es gibt zahlreiche Kanäle, auf die man einen Chatbot los lassen kann. Wer möglichst viele Nutzer erreichen möchte sollte auf allen vertreten sein. Das ist allerdings gar nicht so einfach, denn natürlich gibt es keine einheitliche Schnittstelle und jede API-Änderung seitens des Messengers muss entsprechend im eigenen Code berücksichtigt werden. Um dieses Problem zu umgehen, gibt es eine Vielzahl an Frameworks, die versprechen einem genau diese Arbeit abzunehmen. Durch Einführung einer zusätzlichen Abstraktionsebene ermöglichen es diese Frameworks mehrere Messenger-Plattformen zu bedienen, ohne dass man sich mit deren spezifischer Struktur auseinandersetzen muss. Prominentestes Beispiel ist das Microsoft Bot Framework.

Um das zu verwenden muss man sich allerdings in den Vendor-Lock-In der Azure Plattform begeben, was unter Umständen recht kostspielig werden kann. Eine freie und kostenlose Alternative ist Bot Connector, eine JavaScript Framework, das es einem erlaubt Kik, Slack, Facebook Messenger, Callr, Telegram, Twilio, Cisco Spark und Twitter problemlos gleichzeitig anzusprechen.

Natural Language Understanding

Nachdem die Nachrichten empfangen wurden, geht es daran ihren Inhalt zu analysieren. Man spricht hier von Natural Language Understanding. Dabei geht es darum aus den natürlichsprachlichen Chatnachrichten strukturierte, für Maschinen verarbeitbare Informationen zu gewinnen. Nur für sehr einfache Chatbots lässt sich das mit regelbasierten Ansätzen, wie zum Beispiel Regular Expressions, lösen. Die Mehrzahl setzt dagegen auf Machine Learning und die Extraktion sogenannter Entities und Intents. Der Intent einer Nachricht beschreibt die Intention des Verfassers, also zum Beispiel ob er eine Pizza bestellen möchte. Entities sind Wörter im Text die diesen Intent genauer beschreiben, im Satz „Ich möchte eine Pizza Salami bestellen“ wäre der Intent also zum Beispiel Pizza bestellen und Salami eine Entity.

Es gibt zahlreiche Cloud-Services, die solche Dienste anbieten, unter anderem Microsoft LUIS, wit.ai, api.ai und IBM Watson Conversation. Wir haben einige dieser Services evaluiert und mit einer Open Source Lösung, RASA, verglichen. Das durchaus überraschende Ergebnis: RASA kann durchaus mit den kommerziellen Lösungen mithalten und übertrifft einige von ihnen sogar noch.  1

Open Source Chatbots

Mit diesen beiden Tools kannst du relativ schnell und unkomplizierte eigene Chatbots programmieren, ohne dich von einem Cloud-Anbieter abhängig zu machen. Bei allen Vorteilen die das bietet, gibt es natürlich auch einige Nachteile. Obwohl die beiden vorgestellten Tools die Erstellung eines Chatbots schon wesentlich erleichtern, muss man, im Vergleich mit den Cloud-Services, trotzdem Einschränkungen hinnehmen. Das installieren und verwalten eines RASA-Servers ist eine nicht zu unterschätzende Aufgabe, insbesondere für vielfrequentierte Chatbots. Ob eine Open Source-Lösung oder Service-Lösung der richtige Weg ist hängt daher immer vom Einsatzzweck ab.

Notes:

  1. Braun, Daniel; Hernandez Mendez, Adrian; Matthes, Florian; Langen, Manfred
    Evaluating Natural Language Understanding Services for Conversational Question Answering Systems
    SIGDIAL 2017 Conference

Kommentieren