Chatbots Teil 3

Chatbots - Technologie und Architektur

30.03.2017
Von   IDG ExpertenNetzwerk


Moritz Strube beschäftigt sich seit Beginn des letzten KI-Frühlings vor mehr als 20 Jahren mit Künstlicher Intelligenz. Der Mathematiker und Wirtschaftswissenschaftler ist Spezialist für Data Science, Statistik, Softwareentwicklung und KI-Frameworks. Er lehrt und hält Vorträge zu Künstlicher Intelligenz, Data Science und Blockchain. Seit Oktober 2021 ist er als CTO Teil der Leitung des Unternehmens InspectifAI, welches 2021 von dem Körber Geschäftsfeld Digital gegründet wurde.

 

Dieser Teil widmet sich der Technologie und Architektur von Chatbots. Dazu wird zunächst der prinzipielle Ablauf einer Konversation dargestellt. Darauf basierend werden Technologien und Architekturen für die Implementierung von Chatbots vorgestellt.

Ablauf einer Konversation

Das folgende Diagramm zeigt den prinzipiellen Ablauf einer Konversation - sowohl für sprach- als auch textbasierte Konversationen.

Ablauf einer Konversation mit einem Chatbot
Ablauf einer Konversation mit einem Chatbot
Foto: Crisp Research 2017
  1. 1. Im Falle der sprachbasierten Konversation werden zunächst die mit Mikrofonen empfangenen Audiodaten mit Verfahren der automatischen Spracherkennung in Text überführt. (Die automatische Spracherkennung wird auch von verschiedenen Anbietern als eigener Service zur Verfügung gestellt.)

  1. 2. Aus dem vorliegenden Text, der durch Konvertierung von Audiodaten oder durch Texteingabe in einem Messenger stammen kann, werden auf Basis von Verfahren zum Verständnis natürlicher Sprache strukturierte Daten abgeleitet.

  1. 3. Die vorliegenden strukturierten Daten werden auf Anfragen abgebildet und an eine Bot-Aplikation übergeben.

  1. 4. Diese Bot-Applikation generiert auf Basis der übergebenen Daten Texte, die als Antwort zurückgegeben werden.

  1. 5. Im Falle der sprachbasierten Konversation werden die Texte durch Verfahren der Sprachsynthese in Audiodaten überführt, die vom Interface über einen Lautsprecher ausgegeben werden.

Technologien

Für die verschiedenen Prozessschritte einer bot-basierten Konversation kommen verschiedene Technologien zum Einsatz, die im Folgenden erläutert werden.

Benutzerschnittstelle eines Chatbots können Smartphones und Tablets, aber auch spezielle Hardware wie Amazon Echo sein.
Benutzerschnittstelle eines Chatbots können Smartphones und Tablets, aber auch spezielle Hardware wie Amazon Echo sein.
Foto: Zapp2Photo/Shutterstock.com

Benutzerschnittstelle (Hardware)

Benutzer interagieren mit einem Chatbot über ein mit Mikrofonen und Lautsprechern ausgestattets Endgerät. Beispiele hierfür sind:

  • Amazon Echo, Google Home, Apple Airpods

  • Smartphones und Tablets

  • PCs und Laptops

  • entsprechend ausgestattete Autos, Kühlschränke, Lautsprecher-Boxen etc.

  • Entwicklungsplattformen wie z. B. Conexant AudioSmart und Matrix Creator

Das können aber auch Geräte sein, die nur eine textbasierte Interaktion ermöglichen, also

  • Smartphones und Tablets

  • PCs und Laptops

Benutzerschnittstelle (Software)

Die Hardware fungiert mit entsprechender Software als sprach- oder textbasiertes Conversational Interface (CUI).

Sprachbasierte Interfaces

Das Gerät, mit dem der Benutzer interagiert, muss mit einer entsprechenden Software ausgestattet sein. Im Falle von Sprache dient die Software dazu, Audiodaten zwischen dem Endgerät und einem Service für die Konvertierung von Sprache in Text und umgekehrt zu übertragen. Dabei kommen Verfahren der automatischen Spracherkennung zum Einsatz.

Es kann auch spezielle Software zur Erkennung von “wake words” zum Einsatz kommen. So kann Amazon Echo mit “Alexa” oder Google Home mit “Hello Google” aktiviert werden.

Die in digitalen Assistenten verwendeten Services zur automatischen Spracherkennung und wake word engines werden auch als separate cloudbasierte Services angeboten.

Textbasierte Interfaces

Interagiert ein Benutzer über Text, kann dies über eine Messenger-App oder einen Messenger-Service erfolgen, der in eine Webapp eingebettet ist.

Die meisten relevanten Messenger-Apps verfügen über HTTP-basierte Bot-APIs, mit denen die Messenger für die Chatbot-Konversation genutzt werden können. Eine große Ausnahme stellt Whatsapp dar. Google bietet aktuell noch keine Bot-API für Allo, diese ist aber geplant.

Die Entwicklungsplattformen für Chatbots bieten in unterschiedlichem Maße Unterstützung für die Integration für Messenger an. Dabei können Messenger direkt aus der GUI der Entwicklungsplattformen heraus integriert werden oder es werden SDKs bereitgestellt. Die Nutzung von HTTP-APIs bietet aber allgemein die Möglichkeit, die Bot-APIs der Messenger mit den Bot-Frameworks zu nutzen.

Bot Frameworks

Die Bot-Frameworks sind der eigentliche Kern der Chatbots. Hier kommen die jüngsten Innovationen im Bereich des Natürlichen Sprachverständnisses zum Einsatz. Dabei handelt es sich um ein Teilgebiet der künstlichen Intelligenz, das inzwischen im Hinblick auf Genauigkeit (“Accuracy”) und Geschwindigkeit ein Niveau erreicht hat, das die Nutzung für Chatbots ermöglicht. Diese Verfahren sind sehr rechenintensiv und sind daher praktisch nur als cloudbasierte Services verfügbar - wenn man hierfür nicht einen HPC-Cluster on premise bereitstellen will.

In der Gesamtarchitektur erfüllen die KI-Komponenten der Bot-Frameworks die Aufgabe, die von Benutzern in natürlicher Sprache erhaltenen Äußerungen (“utterances”) auf strukturierte Daten für die weitere Verarbeitung abzubilden (Schritt 2 im “Ablauf einer Konversation”).

Die Funktionalität umfasst im Allgemeinen folgende Funktionen:

  • Zuordnung von Äußerungen (“utterances”) auf Absichten (“intents”). Den Absichten sind jeweils Funktionen zugeordnet, mit denen Antworten generiert werden.

  • Extraktion von Entitäten. Die Äußerungen enthalten Daten, die für die Generierung der Antworten von Bedeutung sind. Diese Daten werden identifiziert und aus den Äußerungen extrahiert. Dabei handelt es sich z. B. um Zahlen, Daten oder Namen. Die NLU-Plattformen verfügen zumeist über Kataloge von Entitäten (“builtin entities”) und bieten die Möglichkeit, eigene Entitäten zu definieren (“custom entities”).

  • Einbeziehung eines Kontextes. Die Generierung von Antworten ist abhängig vom bisherigen Gesprächsverlauf. Dazu werden Daten in einem Kontext transportiert, die bei der Generierung einbezogen werden können.

Das folgende einfache Beispiel demonstriert diesen Prozess:

  • Der Benutzer äußert die Frage “Wie wird das Wetter morgen in Berlin?”.

  • Im Bot-Framework sind für den Chatbot exemplarische Äußerungen hinterlegt. Dabei ist das Bot-Framework auch in der Lage, von den hinterlegten Äußerungen abweichende Äußerungen zuzuordnen. Die Äußerung wird dann z.B. als Frage nach dem Wetter interpretiert. Dies kann z. B. als strukturiertes Datum {“intent”: “weather”} abgebildet werden.

  • Zudem können auf Basis von hinterlegten Beispielen Daten extrahiert und interpretiert werden. Auch hier sorgt maschinelles Lernen dafür, dass das Bot-Framework in der Lage ist zu generalisieren, d. h. auch Daten ohne hinterlegtes Beispiel zu extrahieren. Die Bot-Plattformen unterstützen diese Datenextraktion vielfach durch Mechanismen zur Identifikation bestimmter Daten, wie z. B. Zahlen, Namen, Daten, Orte etc. Im vorliegenden Beispiel würden die Daten “18.03.2017” (Datum), abgeleitet aus “morgen”, und “Berlin” (Ort) extrahiert werden. Dies kann z. B. als strukturiertes Datum {“intent”: “weather”, “date”: “2017-03-18”, “location”: “Berlin”} abgebildet werden.

  • Über einen entsprechenden Handler wird dieses Datenobjekt dann an eine Funktion übergeben, die über einen entsprechenden Service die Wettervorhersage-Daten generiert und einen Antworttext generiert, z. B. “Morgen beträgt die Tageshöchsttemperatur in Berlin 9°C bei wechselhaftem Wetter”.