Einen Alexa Skill erstellen – Erste Schritte
Im Jahr 2016 hat Amazon seinen digitalen Assistenten Echo vorgestellt. Dieser hört auf den Namen Alexa und erobert immer mehr Wohnzimmer auf dieser Welt. Anwendungen für Alexa nennt man Alexa Skills. Wir geben einen Überblick wie man Alexa Skills entwickelt.
Alexa spielt auf Zuruf Musik von Spotify & Co, liest den aktuellen Wetterbericht oder steuert das eigene Smart-Home. Im Laufe der Zeit wurden immer mehr Anwendungsfälle abgedeckt. Apps haben damals den Smartphones zum Siegeszug verholfen.
Die Helfer von Alexa nennen sich hingegen Skills und haben ebenso viel Potential. Skills fügen dem System noch weitere Funktionen hinzu. Mittlerweile sind weltweit mehr als 50.000 Skills verfügbar. Als Beispiel für die Alexa Skill Entwicklung dient ein von mir geschriebener Skill. Der Skill wurde speziell für Spieler des Computerspiels „FIFA“ konzipiert. Spieler können damit die Preise der Spielkarten im beliebten „Ultimate Team“ Modus abfragen.
Inhaltsverzeichnis
Voraussetzung für die Entwicklung von Alexa Skills
Um einen Alexa Skill zu erstellen, wird ein Amazon Developer Zugang benötigt. Dieser ist kostenlos und gewährt Zugriff auf die Entwickler Konsole. Mit Hilfe des Alexa Skills Kit (ASK) werden neue Skills entwickelt. Die Konsole bietet zudem Zugriff auf das Alexa Voice Service (AVS). Damit ist es möglich, dass auch andere Geräte die Fähigkeiten des Sprachassistenten nutzen.
Die Logik hinter dem Skill kann als Webservice via HTTPS eingebunden werden. Man kann den Service natürlich auch selbst hosten. In diesem Fall ist die Umsetzung aber mit mehr Aufwand verbunden.
Zum Beispiel muss man sich um die Authentifizierung der User kümmern. Zudem müssen Anfragen auf den Service validiert werden. Wir empfehlen deshalb den Einsatz von AWS Lambda. Damit können Webservices einfach gehostet werden. Das komplexe Setup eigener Infrastruktur entfällt.
Einen Alexa Skill erstellen – So geht’s
Ein Alexa Skill wird in mehreren Schritten erstellt. Bei den ersten grundlegenden Einstellungen unterstützt Amazon mit einer einfachen Checkliste.
Im ersten Schritt wählt man den Namen des Skills. Dabei bietet sich ein einfacher Name an. Als Benutzer sollte man den Anwendungsfall direkt verstehen. Gute Beispiele sind „Adventskalender“ oder „Stoppuhr“. Zusätzlich wird hier die Standardsprache definiert. Als Skill Model wählen wir Custom.
Dabei handelt es sich um die klassische Konfiguration. Dein Backend verarbeitet alle Anfragen des Anwenders.
Amazon bietet noch weitere vorgefertigte Modelle. Es gibt unter anderem Vorlagen für Smart Home oder Flash Briefing Skills. Mit Letzerem lässt sich relativ einfach ein Skill erstellen, der zum Beispiel aus einem RSS-Feed die aktuellen Nachrichten vorliest.
Als Sprache wählen wir Deutsch. Im Moment unterstützt Echo zudem Englisch, Französisch, Japanisch sowie Spanisch.
Alexa was ist ein Interaction Model?
Das „Interaction Model“ ist der wichtigste Bestandteil eines Skills. Das Model definiert wie der User mit dem Skill interagiert. Es besteht aus folgenden Bestandteilen:
- einen Rufnamen („Invocation name“)
- mögliche Interaktionen bzw. Funktionen („Intents“)
- Phrasen, um bestimmte Interaktionen zu starten („Utterances“)
Nach Eingabe einiger Basisdaten gelangt man auf die Hauptübersicht des Alexa Skills Kit.
Dort gibt es eine Checkliste mit 4 Punkten. Den ersten Schritt stellt die Vergabe des Invocation Name dar. Das ist der Name den der Anwender Alexa zu rufen muss, um den Skill zu starten.
In unserem Beispiel verwenden wir „ultimate team“ als Invocation Name. Der Skill startet demnach mit „Alexa, frage ultimate team“. Dabei ist ein kurzer und vor allem einfach auszusprechender Rufname empfehlenswert.
Im nächsten Schritt definiert man Intents. Dabei legt man fest welche Aktionen ausgeführt werden, wenn der User bestimmte Sätze spricht.
Jeder Skill verfügt dabei über unterschiedliche Intents. Bestimmte Intents – wie beispielsweise jene zum Beenden oder zum Aufrufen der Hilfe – sind verpflichtend. Ohne diese Intents lässt Amazon den Skill erst gar nicht in den Store. Standardmäßig verfügt das ASK bereits über eine Reihe von vorgefertigten Intents.
Intents, Utterances und Slots
Um einen Skill mit eigenen Funktionen zu erweitern, werden Custom Intents angelegt. Dazu geht man wie folgt vor:
- Klick auf das “Add”-Zeichen in der Nähe des “Intents”-Tabs
- Im Anschluss wählt man “Custom Intent”
- Im Feld unterhalb gibt man den Namen des Intents (z.B. “GetPriceIntent”) ein
- Mit einem Klick auf “Create custom intent” wird der Intent gespeichert
Bei der Frage nach dem Preis eines bestimmten Spielers wird dieser Intent aktiviert. Nach der Erstellung des Intents können „Utterances“ angelegt werden. Das sind Phrasen mit denen dieser Intent ausgeführt wird.
Bei diesem Custom Intent nennt der Benutzer den Namen des Spielers. Folgende Schritte erzeugen eine „Utterance“:
- den zuvor erstellten GetPriceIntent im linken Menü auswählen
- im Bereich „Sample Utterances“ werden weitere Phrasen eingegeben
- als Beispiel verwenden wir „was ist der Preis von {name}“ oder „was kostet {name}“
Es können beliebig viele Phrasen erstellt werden.
In diesem Beispiel wird zudem ein „custom slot“ verwendet. Man verwendet diesen, da der Name eine variable Eingabe ist. Als Typ für den Slot verwenden wir „SearchQuery“. Damit leitet Alexa die Eingabe des Benutzer 1:1 an den Webservices weiter.
Die verbleibenden Intents sind von Amazon vorkonfiguriert. Die Intents „NoIntent“, „CancelIntent“ oder „StopIntent“ haben ähnliche Aufgaben. Diese verwenden wir um die Interaction mit Echo (bzw. Alexa) zu beenden.
Der “HelpIntent” liefert Hilfe für die Benutzung des Skills. Anschließend wird das Modell mit einem Klick auf „Save Model“ und „Build Model“ gespeichert bzw. gebuildet.
Einen Endpunkt wählen
Abschließend wird der Alexa Skill noch mit einem Webservice verknüpft. Die Einstellungen dafür befinden sich im Menüpunkt „Endpoints„.
Eine Möglichkeit ist die Verlinkung eines Webservice, der via HTTPS erreichbar ist.
Die zweite Möglichkeit ist die Nutzung von AWS. In diesem Fall greift der Skill auf eine Lambda Funktion zu.
Um den Skill mit der Lambda Funktion zu verknüpfen wird die Skill ID benötigt. Diese hinterlegt man in späterer Folge in der Lambda Funktion. Diese befindet sich im Menüpunkt „Endpoints“.
Um die Konfiguration abzuschließen, wird noch der Amazon-Ressourcennamen (ARNs) der Lambda Funktion benötigt. Diese erhält man, nachdem die Lambda Funktion erstellt wurde.
Die Erstellung der Lambda Funtionen sehen wir uns im zweiten Teil der Alexa Serie an.