Chatte mit Annette!

Pünktlich zum 170. Todestag von Annette von Droste-Hülshoff sorge ich für eine kleine Wiederauferstehung. Darf ich vorstellen: Der Droste-Bot.

Der Droste-Bot ist das vorläufige Ergebnis des Kurses “Building bots for journalism – Software you can talk”, den ich neulich gemacht habe. In dem Vier-Wochen-Kurs haben wir vor allem mit Dexter gearbeitet, einer Plattform, mit dem sich Chatbots fürs Web, für Facebook, Twitter oder auch Alexa bauen lassen.

Für meinen Droste-Bot habe ich einen anderen Dienst genutzt: Flow XO.

Im Prinzip funktionieren diese Plattformen alle ähnlich: Man definiert Trigger – also auslösende Eingaben des Nutzers – und hinterlegt Antworten. Auf der Code-Oberfläche von Dexter sieht das beispielsweise so aus:

Dexter ist eine von diversen Plattformen, mit der man Bots bauen kann. Der Screenshot zeigt die Bedienoberfläche und das Prinzip: Trigger (Nutzereingaben) werden mit Antworten verknüpft. Der zweite Trigger mit dem Sternchen steht für ein “Catch all”, also eine Eingabe, die der Bot nicht kennt. Hier lässt sich für diese Fälle eine Standard-Antwort definieren.

Bei Flow XO fühlt sich das Bot-Basteln weniger nach Programmieren an, gestaltet sich aber etwas aufwändiger: Die Trigger werden gesammelt an einer Stelle verwaltet, die Antworten des Bots dann jeweils separat erstellt.

So sieht die Oberfläche von Flow XO aus. Die Bot-Antwort wird in einem eigenen Fenster erstellt – wahlweise mit Variationen und bei Bedarf mit Shortcode, also einem Button für eine User-Eingabe …

… und im nächsten Schritt können Filter definiert werden, die dem Bot beibringen, auf welche User-Eingabe er in dieser Form antworten soll.

Die Herausforderung besteht darin, möglichst viele Nutzer-Eingaben zu antizipieren und dem Bot möglichst viele denkbare Variationen dieser Eingaben beizubringen – damit er zumindest menschenähnlich kommunizieren lernt. Man spricht dabei von Natural Language Processing (NLP): Systeme, die helfen, die Kommunikation zwischen Mensch und Maschine natürlicher zu gestalten.

Ein Beispiel: “Hallo”, “Hi” und “Gude” werden – jedenfalls hier in Hessen – synonym verwendet. Wenn ich möchte, dass mein Bot alle drei Begriffe als Gruß erkennt und darauf ein- und dieselbe Antwort gibt, bündele ich die drei Variationen zu einer Gruppe und erkläre diese Gruppe (und nicht die einzelnene Begriffe) zu einem Trigger, auf den eine bestimmte Antwort folgen soll. Nun könnte man so etwas aufwändig für jeden Bot neu festlegen, aber es geht auch einfacher. Dialogflow ist einer der Dienste, die das erledigen. Die Plattform bietet beliebig veränder- und erweiterbare Datenbanken mit Standardfloskeln, die man an den eigenen Bot andocken kann.

Der Droste-Bot ist noch nicht an so eine Datenbank angeschlossen, er kämpft sich erst einmal tapfer alleine durch das Gespräch. Er kann schon einiges, ist aber sowas von Beta! Bei meinen Tests reagierte er oft langsam oder gar nicht.  Und manchmal weiß er einfach keine Antwort. Ich entlasse ihn heute trotzdem in aller Unvollkommenheit in die Welt, damit er besser wird. Im Backend von Flow XO kann ich die Interaktionen – also eure Eingaben und die Reaktionen des Droste-Bots – verfolgen und ihm dann nach und nach neue Antworten beibringen.

Übrigens: Sollte der Droste-Bot sich komplett tot stellen, ist wahrscheinlich das Monatslimit von 500 Interaktionen erreicht. Zugegeben, das ist nicht viel. Die Einschränkung hängt damit zusammen, dass ich vorläufig die Free-Version von Flow XO nutze. Wer zuerst mit Annette chattet, hat also die besten Chancen, ihr ein paar Antworten zu entlocken!