Intelligente Chatbots - Funktionsweisen und Aufbau im Überblick

von Patrick Sabrowski,
assono GmbH, Standort Kiel,

Chatbots werden oftmals unterschätzt.

Ein Chatbot bringt erst einmal "nur" die Fähigkeit mit, ein Gespräch zu führen. Von daher liegen Anwendungsfälle wie das Bearbeiten von FAQs wohl am Nächsten, wenn es um den simplen Einsatz eines Chatbots geht. Aber sein volles Potenzial entfaltet ein Chatbot erst, wenn er mit anderen Programmen in Verbindung gesetzt wird. Der Chatbot ist dann nicht mehr nur ein Chatbot, sondern vielmehr eine Nutzeroberfläche für die Anwendung oder Datenbank.

Zu den bisher verbreiteten Formen GUI und CLI ist der Chatbot eine weitere Option, ein Nutzer-Interface zu gestalten. Das Chatbot-User-Interface punktet dabei insbesondere durch intuitive Bedienung und die Möglichkeit, unendlich viele Funktionalitäten auf kleiner Bildschirmfläche verfügbar zu machen. Nichtsdestotrotz wird ein Chatbot GUI und CLI nicht verdrängen, sondern nur an einigen Stellen ergänzen.

Dass ein Chatbot Teil eines mächtigeren Programmes ist, hat wesentliche Auswirkungen darauf, wie man den Chatbot aufbauen muss. Daher soll in diesem Artikel vorgestellt werden, wie Chatbots ohne und mit einer Programmlogik aufgebaut sind.

Der Chatbot ohne Extras.

Zuerst muss man in diesem Fall das Frontend betrachten. Das Frontend nimmt die Nutzereingaben entgegen und stellt die Ergebnisse da. Meist stellt sich das Frontend dabei als Chat-Oberfläche da.

Die Nutzereingabe vom Frontend muss dann zunächst von einer Künstlichen Intelligenz analysiert werden. Hierfür sind kleine Firmen auf externe Dienstleister wie beispielsweise IBM-Watson angewiesen, da das Trainieren von Künstlicher Intelligenz zur Texterkennung einen enormen Forschungsaufwand darstellt. Bei einer solchen Analyse können mithilfe der vielseitigen Watson-Workservices viele Details wie Stimmung des Textes, auftauchende Begriffe und behandelte Objekte erfasst werden. Meist jedoch reicht es, das Anliegen des Nutzers sowie einige bestimmte vom Nutzer erwähnte Objekte zu erfassen, auf die der Chatbot vorher trainiert wurde.

Aus dieser Analyse muss dann eine Antwort ermittelt werden, die der Chatbot geben muss. Hier gibt es die Möglichkeit, eine Künstliche Intelligenz darauf zu trainieren, anhand richtiger Absicht - Antwort Paare richtige Antworten zu geben. Wenn man das tut, hat man aber nur bedingt Kontrolle über den Inhalt und die Formulierung, da sich die KI zwar an den Beispielen orientiert, sie aber nicht präzise umsetzt. Daher ist es meist besser sich hier auf konventionelles Programmieren zu stützen, um eine gesicherte Qualität und eine gleich bleibende gute Nutzungserfahrung zu gewährleisten. Mit einem geeigneten Framework ist es möglich, über eine kurze Beschreibung der Hauptgesprächsfäden, eine Vielzahl an möglichen Verkettungen und Themenwechseln zu bearbeiten.

Die vom Dialog ermittelte Antwort wird dann an das Frontend übermittelt und dem Nutzer dargestellt.

Serverarchitektur

Server zwischenschalten aus Sicherheitsgründen.

Wenn Erfassen von Anliegen und Objekten und Auswertung des Dialogs beide auf dem Server des KI-Anbieters durchgeführt werden, wie es zum Beispiel bei IBM Watson der Fall ist, kann man in der Theorie das Frontend direkt mit dem KI-Server verbinden. Doch um die Sicherheit zu gewährleisten, sollte man diese direkte Verbindung vermeiden.

Denn mit einer direkten Verbindung ist die ganze Technik sichtbar, sodass der kundige Nutzer über Abfangen der Ergebnisse genaue Rückschlüsse auf die Technik ziehen kann. So erfährt er nicht nur einiges über die hinter dem Chatbot stehende Technik, die das Unternehmen eigentlich geheim halten will, sondern er hat so leichteres Spiel für Angriffe. Insbesondere Angriffe durch Massen sinnloser Anfragen können nur abgewehrt werden, indem man einen Server dazwischen schaltet, der verdächtige Fragen filtert, und so verhindert, dass durch die Verarbeitung immenser Datenmengen große Kosten entstehen.

Serverarchitektur

Chatbots mit zusätzlicher Logik.

Wenn der Chatbot aber seine ganzen Fähigkeiten entfalten soll, dann muss er sich aber mit Programmen und Datenbanken verbinden können. Dies ist nur mit einem zusätzlichen Server möglich, da man nur von dort aus Aufrufe gegen die API der Programme und Datenbanken machen kann. Solche Aufrufe, und auch kompliziertere Programmlogik kann man bei IBM nicht von den Servern für die Erkennung von Anliegen und Objekten und die Dialoglogik ausführen lassen. Dies liegt vor allem daran, dass IBM bei der Entwicklung des Frameworks sehr viel Wert auf einfache Bedienbarkeit der grafischen Oberfläche und Sicherheit gegenüber Programmierfehlern legt, dafür aber auch Einschnitte bei der Vielfalt möglicher Dialoglogiken hinnimmt. Daher ist hier der zwischengeschaltete Server notwendig, um auf Programm-APIs und Datenbanken zuzugreifen.

Wenn man den Chatbot mit einem Programm verbindet, dann gibt es verschiedene Möglichkeiten, an welcher Stelle man die Programmaufrufe macht.

Man kann im voraus alle Daten, die der Dialog womöglich braucht in der gewünschten Form, sodass sie nicht aufwendig weiter verarbeitet werden müssen, bereitstellen. Hierzu setzt man im Dialog Flags, wenn Daten möglicherweise benötigt werden, um die nächste Anfrage des Chatbots zu setzen. Der Server stellt dann die nötigen Daten bereit, sodass sie in der nächsten Nutzereingabe dem Dialog zur Verfügung stehen.

Serverarchitektur

Mann kann alternativ auch dem Dialog die Daten, die nur der eigene Server bereitstellen kann, vorenthalten. Der Dialog baut dann in die Antworten an den Stellen, wo er Daten bräuchte, einen Platzhalterstring ein. Dann, nachdem der Dialog die Antwort gegeben hat, sucht und ersetzt der Server die Platzhalterstrings, sodass eine komplette Antwort entsteht.

Serverarchtiketur

Die dritte Möglichkeit besteht darin, dass man den Dialog direkt auf dem eigenen Server ausführt. Hierfür muss man zunächst ein mächtiges Framework aufbauen, doch dann besteht die Möglichkeit, direkt die Methode, die die Antwort gibt, zu überschreiben, und an dieser Stelle API-Aufrufe und Ähnliches durchzuführen.

Wenn man einen eigenen Dialog aufbaut, hat man die meisten Möglichkeiten. Dadurch, dass man nötige API-Aufrufe oder aufwendige Funktionen direkt durch Überschreiben der Funktion zum Ermitteln der Antwort erstellt, hat man nicht nur quasi unbegrenzte Möglichkeiten, welche Aufrufe man tätigt, und wie man die Daten einbindet. Das Aufbauen eines solchen eigenen Frameworks ist auch eine Investition in die Zukunft, da man das Framework in anderen Projekten wiederverwenden kann. Der Preis für diese Vorteile ist, dass man einmalig erheblichen Aufwand in den Aufbau eines eigenen Frameworks stecken muss.

Serverarchitektur

Die Optimale Serverarchitektur.

Welche der drei Optionen man verwenden sollte, hängt davon ab, wofür man den Chatbot braucht. Daten bereits im Voraus bereitzustellen ist besonders einfach zu implementieren, und daher für kleine Chatbots, die schnell implementiert und günstig sein sollen, von Vorteil. Auch für die Übersichtlichkeit des Codes ist es von Vorteil. Aber gerade wenn man mit vielen verschiedenen Anfragen rechnen muss, ist es nicht performant, alle Anfragen vorbereitet zu haben. Diese Methode eignet sich also insbesondere für kleine und einfache Chatbots.

Wenn man die Daten erst im Nachhinein hinzufügt, dann kann man vermeiden, viele Anfragen im Voraus zu senden. Dies ist insbesondere dann wichtig, wenn Aufrufe auf die Programm-API sehr viel Rechenzeit kosten. Die Platzhalter und die leicht aufwendig werdenden Methoden zur Ersetzung beeinträchtigen die Lesbarkeit des Codes jedoch. Daher ist dies für große Projekte, die noch über lange Zeit gewartet und verbessert werden sollen, nicht zu empfehlen. Diese Methode eignet sich also insbesondere für kleine und mittlere Chatbots, die zur Bedienung von Programmen mit wenig Anfragen und großem Rechenaufwand verwendet werden.

Wenn man einen eigenen Dialog aufbaut, kann man am Ende immer den optimalen Chatbot bereitstellen, da sich in einem eigenen Dialog der Abfragezeitpunkt genau festlegen lässt, ohne das Performance und Codelesbarkeit leiden. Auch das leichte Implementieren globaler Features und die daraus resultierende Möglichkeit beliebiger Individualisierung sind nicht zu verachten. Diese umfassenden Vorteile sind jedoch gebunden daran, dass einmalig der große Aufwand betrieben wurde, ein eigenes Framework aufzubauen. Doch da assono bereits ein solches Framework aufgebaut hat, bleibt dieser Aufwand unseren Kunden erspart.

Profitieren Sie jetzt von unseren intelligenten Chatbot-Anwendungen für Ihr Unternehmen!

Nutzen Sie den Fortschritt im Bereich der künstlichen Intelligenz, um Ihr Unternehmen noch erfolgreicher zu machen. Bereits einfache Chatbot Anwendungen können Ihnen und Ihren Mitarbeitern viel Zeit sparen und die Kundenzufriedenheit steigern (Chatbots sind 24x7 an jedem Tag im Jahr erreichbar). Gerne beraten wir Sie, welche Chatbot-Lösung individuell am besten zu Ihrem Unternehmen passt. Kontaktieren Sie uns dazu gerne unter +49 4307 900 408 oder per Mail an kontakt@assono.de. Weitere Informationen zum Thema Chatbot finden Sie zudem auf unserer Website.

Nächste Artikel in dieser Reihe:

Das könnte Sie auch interessieren:

Fachbeitrag Künstliche Intelligenz Chatbot IBM

Sie haben Fragen zu diesem Artikel? Kontaktieren Sie uns gerne: blog@assono.de

Sie wollen eine individuelle Lösung? Kontaktieren Sie uns

Weitere interessante Artikel

Sie haben Fragen? Wir sind für Sie da.

Wir verwenden Ihre Daten, um Sie einmalig per E-Mail zu kontaktieren. Wir geben Ihre Daten nicht an Dritte weiter. Siehe: Datenschutzhinweise
assono GmbH

Standort Kiel (Zentrale)
assono GmbH
Lise-Meitner-Straße 1–7
24223 Schwentinental

Standort Hamburg
assono GmbH
Bornkampsweg 58
22761 Hamburg

Telefonnummern:
Zentrale: +49 4307 900 407
Techn. Hotline: +49 4307 900 403
Vertrieb: +49 4307 900 402

E-Mail-Adressen:
kontakt@assono.de
bewerbung@assono.de