Technologien wandeln sich stetig und bieten uns nach und nach immer mehr Möglichkeiten. Einen großen Meilenstein in der IT-Branche gab es im November 2014, als die virtuelle Sprachassistentin Alexa von Amazon veröffentlicht wurde.

Alexa übernimmt bereits viele alltägliche Aufgaben wie Einkaufslisten schreiben, Musik einschalten oder Verkehrsmeldungen vor dem Weg zur Arbeit ansagen. Darüber hinaus kann sie gänzlich neue Funktionen (sogenannten Skills) erlernen. Durch weitere Skills, die sowohl Amazon als auch die Alexa Community täglich entwickeln, bewältigt Alexa immer mehr Aufgaben.

Also wieso nicht diese Chance nutzen und ein vorhandenes Tool mit einer Sprachsteuerung ergänzen?

Das Ergebnis nehme ich an dieser Stelle mit dem nachfolgenden Video schon einmal vorweg. Wie genau wir Alexa und Qlik Sense verknüpft haben, erfahren Sie im weiteren Verlauf dieses Blogbeitrages.

 

Blog_Amazons Alexa trifft auf Qlik Sense_Demo

Video: In unserem »Alexa / Qlik Prototypen« sprechen wir mit unseren Daten.


Alexa und Qlik Sense: Die erste Begegnung zweier Welten

Die Frage nach der Verknüpfung eines bestehenden Systems mit Alexa blieb lange in unseren Köpfen, bis wir den Entschluss gefasst haben, Qlik Sense und Amazons Sprachsteuerungstool zusammenzuführen.

Qlik Sense ist eine moderne Business Intelligence (BI) Plattform, welche auf die Verarbeitung, Visualisierung und Analyse von Daten spezialisiert ist.

Aber wie lassen sich zwei so völlig unterschiedliche Tools wie Qlik Sense und Alexa, die außer ihrem Erscheinungsjahr kaum Ähnlichkeiten besitzen, miteinander verbinden? Beide sprechen unterschiedliche Sprachen und sind für andere Zwecke entwickelt worden.

Die Antwort ist simpel. Folgendes Beispiel dafür zur Veranschaulichung:

Welcher Beruf sorgt in der realen Welt dafür, dass sich zwei Menschen, die verschiedene Sprachen sprechen, verständigen können?

Richtig, ein Dolmetscher.

Und so wie in der Menschenwelt, lässt sich dies auch auf unsere Technologien adaptieren.

Wir benötigen also nur einen »Übersetzer«. Die einzige Frage hierbei ist, welcher Übersetzer gewählt werden soll?


Unser Anwendungsfall: Ein Webservice als entscheidende Stellschraube

Als »Übersetzer« haben wir eine Schnittstelle gewählt, die wir mit C# programmiert haben und als Webservice fungiert.

C# gehört zu der Kategorie objektorientierter Programmiersprachen. Das bedeutet, dass bei dieser Sprache viel mit Objekten und Klassen gearbeitet wird. Die Klassen bilden dabei ein Grundgerüst und die Objekte können anhand dieser Grundgerüste im Code initialisiert werden.

Zudem lassen sich mittels einiger Bibliotheken, Webserver erstellen und genauso einen brauchen wir für unseren Anwendungsfall. Mit der zusätzlichen Unterstützung der Qlik Sense Bibliothek für C# kann sich der aufbereitete Webserver mit einem Qlik Sense Server verbinden. Den Webserver haben wir für den ersten Prototypen so aufgebaut, dass er Anfragen wie Filterselektionen und Kennzahlausgaben entgegennehmen und ausführen kann.

Qlik Sense Bereitstellung

Auf der Seite von Qlik Sense haben wir zunächst eine Applikation mit beispielhaften Daten aufbereitet, sodass der Webserver in dieser App Filter selektieren und Kennzahlen abfragen kann.

 

Alexa Initialisierung

Auf der Seite von Alexa musste jedoch einiges mehr getan werden, bis die letzte Verknüpfung, welche wir für den fertigen Prototypen brauchten, bestand. Mit dem Alexa Skill Kit können Funktionen für Alexa kreiert werden. Dabei haben wir zuerst ein Befehl benannt – den sogenannten »Invocation Name« - welcher den Skill startet. In unserem Fall »Alexa starte Qlik Sense Prototypen«.

Danach legten wir sogenannte »Intents« an. Ein Intent repräsentiert eine Methode innerhalb des Skills. Durch vorformulierte Sätze innerhalb eines Intents können wir diese Methoden aufrufen. Ein Beispiel hierfür ist »Alexa, Umsatz bitte«. Der Umsatz ist hierbei ein Platzhalter, der dynamisch ausgetauscht werden kann. Beispielsweise können wir auch den Gewinn abfragen: »Alexa, Gewinn bitte

Nachdem wir alle Intents plus die dazugehörigen Sätze angelegt haben, haben wir einen Endpunkt angegeben. Ein Endpunkt ist ein Berührungspunkt, bei welchem die Kommunikation zweier Systeme übermittelt wird.

 

Lambda Funktion / Amazon Web Services (AWS) Vorbereitung

Der von uns angegebene Endpunkt verweist in unserem Beispiel auf eine Lambda Funktion. Lambda Funktionen sind Teil der Amazon Web Services (AWS). Diese Funktionen können Programmiercode z. B in Python oder NodeJS ausführen.

AWS ist eine Cloud Plattform, die von Amazon schon im Jahr 2006 entwickelt wurde. Sie besitzt viele Möglichkeiten und Komponenten, wie die Bereitstellung von Datenbanken und das Erstellen von Applikationen, welche mithilfe einer Sprachsteuerung bedient werden können.

Wir haben nun eine Lambda Funktion geschrieben, die uns das Gesagte des Nutzers in Textform umwandelt und diese Informationen anschließend an den Webserver weitergibt.

 

Die Verknüpfung von Qlik Sense und Alexa via AWS

Unser Webserver greift - mittels der Qlik Sense Bibliothek - auf den Qlik Sense Server zu und führt, je nach Anfrage, die gewünschte Funktion aus. Wenn sich der Benutzer nach dem Wert einer Kennzahl erkundigt, fragt der Webserver diesen beim Qlik Sense Server ab und gibt den entsprechenden Wert an die Lambda Funktion zurück. Diese leitet den Wert an Alexa weiter und schlussendlich wird der Wert von Alexa mittels Sprache ausgegeben. Wenn der Benutzer Filter selektieren möchte, führt der Webserver diese Selektion aus und teilt der Lambda Funktion mit, dass die Filterselektion erfolgreich war. Auch hier gibt die Lambda Funktion dies an Alexa weiter, sodass der Benutzer von ihr erfährt, dass die Selektion getätigt wurde.

In der folgenden Abbildung ist die Verknüpfung aller Module aufgezeigt:Blog_Amazons Alexa trifft auf Qlik Sense - Mit Daten sprechen_Abbildung Verknüpfung

Abbildung: Verbindung zwischen Alexa und Qlik Sense.

 

Fazit

Das Fazit unseres ersten »Qlik / Alexa Prototyps« lautet, dass wir beide Tools erfolgreich miteinander verknüpfen können. Dies öffnet uns Türen für weitere Funktionen. Beispielsweise ist es uns jetzt möglich, Applikationen mittels Alexa zu erstellen und anschließend mit Inhalten zu befüllen.

Auch könnten wir innerhalb der Qlik Sense Oberfläche navigieren und Applikationen öffnen oder eine Verbindung zu dem Qlik Sense Insight Advisor Chat erstellen. Dieser funktioniert wie ein Chat Bot. Er empfängt Befehle des Benutzers und antwortet mit Ergebnissen aus den Qlik Sense Applikationen. Weitere Informationen zum Qlik Insight Advisor Chat finden Sie in unserem Blogbeitrag: Qlik Insight Advisor Chat: Mit den eigenen Daten chatten.

Derzeit kann der Insight Advisor Chat jedoch ausschließlich über geschriebenen Text angesprochen werden. Mit unserer Erweiterung der Sprachfunktionalität wollen wir unseren Sprachassistenten als zusätzliche Hilfe integrieren. Darüber hinaus ist der Qlik Insight Advisor Chat momentan nur in englischer Sprache verfügbar, sodass wir diesen durch die Cloud Funktionalitäten multilingual erweitern möchten. Aber hierzu in Kürze mehr in den nächsten Kapiteln.

 

Sie haben konkrete Fragen zu diesem Blogbeitrag oder möchten sich über weitere Möglichkeiten austauschen? Dann freue ich mich, von Ihnen zu hören!

 

Tags: Business Intelligence, Weitere Branchen