Alexa – Teil 1

Seit Anfang 2017 gibt es Amazon's Echo bzw. Echo Dot in Deutschland ohne Einladung zu kaufen. Die Sprachsteuerung hört auf den Namen Alexa, eine Hommage an die Bibliothek von Alexandria. Mit dem sogenannten Alexa Skills Kit lassen sich eigene Funktionalitäten nachrüsten. Wir haben es ausprobiert.

NMLunch - Ein NEXT Munich Alexa Skill

Jeden Mittag beginnt im Büro die gleiche Diskussion - wer geht wohin Mittagessen? Um diese Fragestellung zu beantworten, haben wir einen Prototypen eines Alexa Skills entwickelt, der nicht nur diese Frage beantworten, sondern auch Kollegen zu „Essenszielen“ zuordnen kann.

Quelle: www.amazon.de

Der erste große Unterschied zum täglichen App-Geschäft ist, dass Skills nicht installiert oder deployed werden müssen, sie funktionieren „einfach so“ in der Cloud und werden im jeweiligen mit dem Echo verknüpften Amazon-Account nur aktiviert bzw. deaktiviert. Damit dies technisch funktionieren kann, muss die Entwicklung in zwei Teile aufgeteilt werden.

Zum einen gibt es die Amazon Developer Console, dort wird zunächst der Skill (u.a. Name des Skills im Skill Store und Befehl zur Aktivierung des Skills) angelegt und ein sogenanntes „Interaction Model“ erstellt, in dem man die zur Verfügung stehenden Befehlsoptionen und (falls gewünscht) Variablen festlegt. Für jeden Befehl können daraufhin beliebig viele Beispielsätze angegeben werden, mit welchen Alexa diesen dann aktiviert.

Tobi: „Alexa, frag NMLunch was die Optionen fürs Mittagessen sind“
Tobi: „Alexa, frag NMLunch nach den Optionen heute Mittag"

Die Beispielsätze müssen einem festgelegten Schema folgen:
Alexa, [frag/sag] [Befehl zur Aktivierung des Skills] [Rest des Beispielsatzes]
Eine Alternative hierzu ist es, zuerst den Skill zu starten, und dann ohne Aktivierungswort den Beispielsatz zu sagen:
Alexa, öffne [Befehl zur Aktivierung des Skills] >> [Willkommensnachricht des Skills] >> [Rest des Beispielsatzes]

Tobi: „Alexa, öffne NMLunch.“
Alexa: „Jetzt schon großen Hunger?“
Tobi: „Was gibt es denn heute Mittag zu essen?“

An dieser frühen Stelle kam auch bereits die erste (negative) Überraschung zu Tage: alle Variablen innerhalb dieser Sätze müssen vordefiniert werden, es gibt keine Möglichkeit dynamisch zur Laufzeit Variablen anzugeben oder zu ändern. Hier muss Amazon dringend nachbessern!

Der andere Teil der Entwicklung ist ein HTTPS Endpunkt, der bei der Aktivierung des Skills aufgerufen wird. Im Beispiel verwenden wir Amazon’s hauseigenen Datenverarbeitungsservice AWS Lambda, der auch als Konfiguration empfohlen wird. In Lambda wird der eigentliche Code des Skills hochgeladen. Unsere Wahl fiel auf eine Node.js Runtime, an dieser Stelle wäre es aber ebenso möglich den Code etwa in Java zu schreiben, oder einen Endpunkt von einem selbstgehosteten Server zu verknüpfen und damit komplett unabhängig von den Amazon Web Services zu agieren.

Um die Daten dauerhaft speichern zu können (Alexa „vergisst“ am Ende eines Befehls alle Informationen) verwenden wir AWS DynamoDB, die NoSQL Datenbanklösung von Amazon. Im konkreten Beispiel nutzen wir die Datenbank, um alle „Essensoptionen“, sowie die den einzelnen Optionen zugeordneten Teammitglieder zu speichern.

Nach der Definierung des Grundsetups werden wir uns in einem der folgenden Blogbeiträge etwas intensiver mit der Programmierung des Skills sowie der Anbindung der Datenbank auseinandersetzen.

Aber jetzt geht es erst mal zum Mittagessen, oder Alexa?

 

Fazit

Amazon Echo ist auf jeden Fall eine spannende neue Plattform – das erste Prototyping für seriöse Kundenanwendungen hat bei uns bereits begonnen. Die vielen Möglichkeiten, die die Plattform bieten (kann) machen auf jeden Fall kribbelig. Dennoch merkt man, dass es sich bei Echo/Alexa um eine sehr junge Plattform handelt. Neben einigen technischen Einschränkungen gibt es derzeit vor allem noch keine Möglichkeit, Skills über Amazons Skills Store zu verkaufen, Subscriptions anzubieten oder Skills über Werbung zu monetarisieren. Ganz sicher wird sich hier in den nächsten Wochen und Monaten viel tun.

Wir bleiben am Ball. Falls Sie das Thema interessiert, schicken Sie uns doch einfach eine Nachricht an skills@next-munich.com.


Tobias Fonfara, Technischer Projektmanager, tf@next-munich.com