selfhosted Live-Chat mit ChatBot und WordPress

Vor ein paar Tagen hatte ich beschlossen, die Landing-Page von nasty.name design (https://nasty.name) ein wenig aufzupeppen.
Deshalb sollte diese mit einer zusätzlichen Möglichkeit zur User-Interaktion versehen werden:
Typischerweise mit einem Live-Chat mit variablen Features.

Eigener Chat-Server oder einen Bot vom externen Provider?

Alle kennen ja den Live-Chat-Button unten rechts im Bild, den mittlerweile sehr viele Websites aufweisen.
In der Regel handelt es sich um Plugins, die meist einfache Bots verwenden, die sich, in einem vom Anwender bestimmten Schema von Regeln, durch Frage und Antwort hangeln. Ähnlich kennt man das vom strapaziösen Telefon-Support mancher Unternehmen.
Ich persönlich empfinde diese Methode eher als lästig, als dass mir diese als nützlich erscheinen würde. Außerdem möchten wir die Abhängigkeit zu externen Providern möglichst flach halten.
Daher habe ich mich für die Variante eines self-hosted Live-Chat für unsere neue Landingpage von nasty.name design entschieden.
Dieser läßt sich später sowohl erweitern, als auch anpassen.

Live-Chat-Client für die WordPress Website

Ich machte mich also daran, im Web nachzusehen, was es denn so an Open Source Projekten in diese Richtung gibt.
Nach einiger Recherche traf ich auf conversejs und jsxc. Beide, wie der Name bereits vermuten lässt, sind in Javascript programmiert. Und zufälligerweise gibt es für ersteres ein gleichnamiges WordPress Plugin.

Die Voraussetzungen für einen Live-Chat auf der Website

Um einen dieser Chat-Clients auf einer WordPress Website laufen zu lassen, benötigen wir eine Anbindung zu einem XMPP-Server. Es gibt kostenlose Chat-Server im Internet, jedoch sind wir nach wie vor geneigt, dem Datenschutz gerecht zu werden, und selbst zu hosten.
Also installieren wir zum Betrieb eines Live-Chat auf unserer Website, einen Chat-Server. Es stehen uns hier einige zur Verfügung und ich habe ejabberd gewählt.
Da die ganze Installation auch ohne Video-Übertragung ausreichend ist, benötigen wir keine IP-Übersetzung, bzw. keinen STUN/ TURN Server.
Wer wenig Aufwand möchte, installiert ejabberd auf dem gleichen Server, auf dem auch die Website läuft. Das hat den Vorteil, dass die Verbindungen nur lokal aufgebaut werden und die Konfiguration damit vereinfacht ist. Allerdings ist man dann mit dem Chat-Dienst auf die entsprechende Domain beschränkt.

Installation des Live-Chat-Clients

Wie bereits erwähnt, habe ich zwei Open Source Clients für unseren online Live-Chat ausfindig gemacht. Das Plugin für conversejs installiere ich also ganz einfach aus den offiziellen Repos von WordPress.
Auf dem ejabberd Server wird ein Chatroom ‘conference.nasty.name’ erzeugt. Diesen wird unsere Website künftig für Gruppen-Chats verwenden.
Ich trage in der Client-Konfiguration nun unseren frisch installierten ejabberd ein:

Einstellungen für den WordPress Live-Chat mit conversejs

Der Live-Chat-Server ist so konfiguriert worden, dass er alle Registrierungen von der Domain nasty.name akzeptiert.
Er legt weiterhin eine Pause ein, sollten sich zu viele User in zu kurzer Zeit registrieren.
Man kann, um Spam vorzubeugen, zum Beispiel das Registrieren-Formular auch um ein Captcha erweitern.

Und so sieht der Live-Chat dann auf unserer Website aus: https://nasty.name

Ab jetzt steht ein vollwertiger, professioneller Chat-Server zur Verfügung, dessen Client sich auf unserer WordPress Website befindet und dort seine Arbeit verrichtet.
Die hier registrierten Chat-Zugänge können desweiteren auch mit anderen XMPP-Clients zum Chatten verwendet werden.
Die Accounts liegen alle auf unserem eigenen ejabberd Chat-Server.

Die verschiedenen Elemente dieser Chat-Installation können nun entsprechend den Vorgaben angepasst werden.
Dazu haben wir Zugriff auf die Konfiguration des XMPP-Servers ejabberd selbst, den XMPP-Client conversejs mit seinen verschiedenen Funktionen und letztlich Möglichkeiten zu Modifikationen in WordPress.
So eine Installation kann z.B. um Chat-Bots (Regeln oder ML) erweitert werden. Oder man kann z.B. Accounts für Support-Mitarbeiter anlegen und gleichzeitig den Client bei WP mit festem Login belegen, um damit einen verteilten Live-Support zu realisieren.

Anbinden eines Chat-Bots

Wie bereits erwähnt, hat man mit so einer selfhosted Chat-Installation sehr viel Freiheit.
Es gibt sehr gute ChatBot-Software, die in Python geschrieben ist. Wir haben uns ChatterBot ausgesucht, da dieser ungemein flexibel ist und vor allem:

Er ist intelligent und kann lernen.

Das ist besonders interessant, da die Entwicklung im Bereich KI, mit wachsenden Internet-Datenbestand und fortschreitender Rechenleistung bei fallenden Hardware-Preisen, immer spannender zu beobachten ist. Die Möglichkeiten sind hier beinahe grenzenlos.
Also haben auch wir uns mal für den hauseigenen HP Server, der genug Power hat, so ein Spielzeug gegönnt…
Als XMPP-Client für den Bot kommt sleekxmpp, ebenfalls in Python programmiert, zur Verwendung. Der ChatterBot wird quasi in eine sleekxmpp Installation als Ereignis integriert.
Auf diese Art kann man endlos viele Bots mit unterschiedlichen Eigenschaften erzeugen. Jeder Chat-Bot ist im Prinzip ein einfacher XMPP-Client mit Autoresponder-Funktionen.

Ein Beispiel für einen intelligenten Chatbot ohne XMPP (auf einer statischen Website mit Flask): https://chat.start.jetzt

Dort ist Robert beheimatet. Man kann ihn einfach etwas fragen. Wie zum Beispiel: “Was bedeutet Web-Entwicklung?”. Es dauert eine bisschen und Robert antwortet uns. Mann kann Robert auch fragen, wie es ihm geht oder wie er heisst.

Robert lernt aus Konversationen. Falls er keine Antwort findet, fragt er im nächsten Schritt z.B. eine Suchmaschine. Die Möglichkeiten der Programmiersprache Python sind, wie bereits erwähnt, in diesem Bereich besonders weitläufig.

Fazit

Wie man sieht, ist nach der Integration eines “echten” Live-Chat sehr viel mehr Spielraum gebotenen, als ein Anbieter über ein Plugin mitsamt seiner eigenen Server-Anbindung bereitstellen könnte.
Außerdem sind bei der gesamten Datenverarbeitung keine Dritten beteiligt und wir sind somit, den Datenschutz betreffend, auf der sicheren Seite.

Desweiteren wird hier deutlich, wie man z.B. WordPress auch mit Datenverarbeitungs-Systemen der Enterprise-Klasse kombinieren und erweitern kann.

selfhosted Live-Chat mit ChatBot und WordPress
5 (100%) 1 vote

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.