Dein wichtigster Touchpoint zur Digitalbranche.
Dein wichtigster Touchpoint zur Digitalbranche.
Technologie
Let’s build a Skill: Alexa programmieren

Let’s build a Skill: Alexa programmieren

Ein Gastbeitrag von Thiemo Schrauder | 03.06.20

Voice-Assistenten werden auch in den kommenden Jahren die Online-Marketing-Welt beschäftigen. Im Artikel wird Step-by-Step erklärt, wie ein Skill für Amazons Alexa erstellt werden kann.

Sprachassistenten wie Amazons Alexa sind weitaus mehr als Musikboxen, Wetterdienste oder Komiker. Voice-Assistenten sind ein spannendes Thema, das auch im Jahr 2020 und 2021 die Online-Marketing-Welt stark beschäftigten wird. Ein Grund hierfür ist die immer größer werdende Nutzung und Nachfrage von Sprachassistenten in Deutschland. Die Anzahl der Skills, also der Anwendungsmöglichkeiten, die auf den Markt kommen, steigt und in diesem Artikel möchten wir dich auf unserer Reise zur Entwicklung eines Alexa Skills mitnehmen.

Aber was sind eigentlich Skills? Bei einem Skill handelt es sich um eine App für Amazons Sprachassistenten Alexa. Genau wie eine App auf Android und Apple Geräten muss der Skill über den Amazons App Store heruntergeladen werden. Anschließend wird der Skill auf Alexa durch bestimmte Wortkombinationen aktiviert.

Schritt 1: Die Konzeption

Wir entwickeln einen Skill. Aber was für eine Art Skill wollen wir eigentlich entwickeln? Der Skill soll natürlich einen Mehrwert für andere und auch für uns bieten. Also etwas, das die tägliche Arbeit erleichtert. Die Idee ist es, die Zeiterfassung über den Skill zu steuern oder Anrufe zu tätigen. Aber hier kam schon das erste Problem: Der Datenschutz. Wie können wir gewährleisten, dass keine sensiblen Daten von Mitarbeitern oder Kunden von Amazon gespeichert und verarbeitet werden?

Info: Bei der Nutzung von Alexa Skills werden personenbezogene Daten automatisch an Amazon weitergegeben und gespeichert. Dabei haben Entwickler des Skills keinen Einfluss darauf, was mit diesen Daten geschieht.

Wie also können wir einen Skill entwickeln, der sowohl einen Mehrwert liefert als auch datenschutztechnisch keine Probleme darstellt? Die Lösung: Wir lassen den Skill etwas erzählen. Warum nicht etwas über uns selbst? Wir bauen einen HR Skill!

Schritt 2: Die Vorbereitung

Was soll unser Skill eigentlich können? Unser Skill soll folgende Kriterien erfüllen:

  • Informationen über das Unternehmen geben,
  • Aktuelle Stellenausschreibungen enthalten,
  • über Weiterbildung / Ausbildungs- und Förderprogramme informieren,
  • den HR-Ansprechpartner nennen.

Mit Hilfe dieser Kriterien werden möglichst viele Informationen gesammelt, um daraus einen Skill zu erstellen. Du solltest dich frühzeitig mit Begriffen wie Interaction Path oder Nutzerführung beschäftigten, worauf wir im Folgenden weiter eingehen.

Info – Interaction Path: Unter einem Interaction Path wird der Weg verstanden, den ein Nutzer innerhalb eines Skills zurücklegt, um von einer Information zu der nächsten zu gelangen. Konkret heißt das: Wie kann ich sicherstellen, dass jede Information meines Skills gut sichtbar und erreichbar ist? Hierzu empfiehlt es sich im ersten Schritt, Gesprächsverläufe in einer Excel-Datei festzuhalten oder zu skizzieren.

Schritt 3: Die Erstellung eines Skills

Und wie erstelle ich jetzt eigentlich einen Skill? Zuerst wird ein Amazon Entwickler Account benötigt. Amazon unterscheidet hier zwei Systeme:

1. Amazon Web Services

Amazon Web Services ist Amazons hauseigener Cloud-Service, der eine Vielzahl verschiedener Funktionen und Services bietet. Eine dieser Funktionen ist die Bereitstellung eines Backends für Alexa Skills. In diesem Artikel werden wir uns allerdings ausschließlich mit der Amazon Developer-Console beschäftigen.

2. Amazon Developer-Console

Wie der Name schon sagt, dient die Developer-Console zur Entwicklung verschiedenster Alexa-Anwendungen. Dazu zählt unter anderem auch der Alexa Skill. Wir entscheiden uns für die Entwicklung eines Custom Skills, welcher von Alexa selbst gehostet wird. Der Vorteil hierbei ist, dass für die Entwicklung des Skills nur eine Plattform benötigt wird. Der Nachteil eines Custom Skills ist eine Einschränkung in der Größe des Skills und in bestimmten Funktionen, die wir in unserem HR Skill jedoch nicht benötigten.

Wie ist ein Skill aufgebaut?

Bevor wir tiefer in die Entwicklung eines Skills eintauchen, gehen wir zunächst auf die verschiedenen Bestandteile eines Skills ein. 

Wake Word: Mit dem Wake Word wird Alexa selbst aktiviert. Dieses steht noch in keinerlei Verbindung zum eigentlichen Skill.

Launch: Launch-Phrasen sind bestimmte Befehlsworte wie „frage“ oder „öffne“, mit dem der Nutzer Alexa signalisiert, dass ein bestimmter Skill adressiert bzw. geöffnet werden soll.

Invocation name: Der Invocation Name ist das Aktivierungswort des Skills. Dies ist nicht mit dem Namen des eigentlichen Skills zu verwechseln. So heißt unser Skill beispielsweise „frag netzeffekt“. Der Skill wird aber durch das Aktivierungswort „h. r. netzeffekt“ geöffnet.

Intents: Die Intents stellen das Herzstück eines jeden Skills dar. In den Intents werden mögliche Fragestellungen (Utterances) sowie Antworten (Responses) des Skills programmiert. Es werden drei Arten von Intents unterschieden:

  1. Built-in Intents: Hierbei handelt es sich um bereits vorgefertigte Intents, die Amazon zur Verfügung stellt.
  2. Required Intents: Bei dieser Art von Intents handelt es sich, ähnlich wie bei den Build-in Intents, um bereits vorgefertigte Intents. Im Gegensatz zu den Build-in Intents sind diese allerdings für die Funktionsfähigkeit des Skills zwingend notwendig.
  3. Custom Intents: Custom Intents umfassen alle Intents, die vom Entwickler eigenständig angelegt werden.

Utterances: Unter Utterances werden verschiedenen Anfragen eines Nutzers verstanden, um einen bestimmten Intent anzusteuern.

Slots: Slots sind Variablen, die in einem Intent eingebaut werden. Durch Slots können Anfragen eines Nutzers spezifischer, auf bestimmte Variablen bezogen, lauten und dadurch auch spezifische Responses ansteuern, ohne dass für jede Variable ein eigener Intent angelegt werden muss. Slots sind für die Funktionsfähigkeit eines Skills nicht zwingend notwendig. Sie vereinfachen lediglich die Handhabung. Amazon selbst hat vorgefertigte Variablen wie beispielsweise das Datum oder die Stadt, die vom Skill automatisch erkannt werden. Bei manuell erstellten Slots müssen diese manuell programmiert werden.

Let’s build a Skill

Jetzt geht es ans Eingemachte – wir erstellen den Skill. Nachdem wir ausgewählt haben, welche Art von Skill wir erstellen möchten, landen wir auf der eigentliche Entwicklungsumgebung des Alexa Skills. Diese ist sehr übersichtlich gestaltet und enthält die bereits beschriebenen Elemente eines Skills. Außerdem nimmt die Entwicklungsumgebung einen an die Hand, um Step by Step einen eigenen Skill zu entwickeln.

Schritt 1: Erstellung des Invocation Names

Wie auch von Alexa vorgeschlagen, beginnen wir mit der Erstellung eines Invocation Names. Bei der Suche eines Invocation Names, sind ein paar grundlegende Punkte zu beachten:

  • Der Invocation Name muss aus mindestens zwei Worten bestehen. Ausgenommen hiervon sind Brands.
  • Der Invocation Name darf keinerlei Launch-Phrasen wie „frage“ oder „öffne“ enthalten.
  • Abkürzung wie beispielsweise „HR“ müssen durch Punkte und Leerzeichen getrennt werden: „h. r.“

Tipp: Es besteht die Möglichkeit, Abkürzungen als Invocation Name zu nutzen. Bei unserem Skill hat sich jedoch gezeigt, dass die Nutzer bei der Ansteuerung des Skills hiermit Probleme haben. Deshalb raten wir von dieser Art des Invocation Namens ab.

Schritt 2: Erstellung der Intents

Im zweiten Schritt geht es an die eigentliche Arbeit. Eine gute Vorbereitung erspart an dieser Stelle eine Menge Arbeit. Wie bereits erwähnt, hatten wir uns bei der Entwicklung des Skills bis dato mit Punkten Interaction Path oder Nutzerführung kaum beschäftigt. Das führte zu folgenden Problemstellungen:

  • Welche Utterances führen zu welchem Intent?
  • Wie wird der Nutzer bestmöglich durch den Skill geleitet?
  • Welche Intents beenden den Skill und welche werden für die Weiterführung benötigt?

Tipps für eine optimale Vorbereitung:

  1. Im ersten Schritt sollten alle geplanten Intents samt Antworten aufgelistet werden. Es sollten zu jedem Intent ein bis zwei Keywords definiert werden, die in den Utterances vorkommen. Hierzu bietet es sich an, eine Excel-Tabelle oder ein Google-Sheet zu verwenden.
  2. Im zweiten Schritt solltet ihr nach Dopplungen innerhalb der Keywords suchen. Wenn hier Dopplungen vorhanden sind, solltet ihr überlegen, ob ihr den Intent auf ein anderes Keyword ausrichten könnt bzw. ob der Intent überhaupt benötigt wird.
  3. Nachdem es keine Dopplungen mehr gibt, geht es an den dritten und vielleicht wichtigsten Schritt: Das Erstellen verschiedener Gesprächsverläufe. Hier sollten die Intents, ähnlich wie bei dem Aufbau einer Webseite, in verschiedene Ebene unterteilt werden. Danach überlegt ihr, wie ihr die verschiedenen Ebenen miteinander verknüpft.
  4. Im letzten Schritt sollten die Antworten (Responses) der verschiedenen Intents so angepasst werden, dass sie zu den nächsten Intents weiterführen.

Achtung: Soll der Intent die Session nicht beenden, muss die Antwort mit einer Frage abschließen, sodass der Nutzer auf den Intent reagieren kann.

Sind alle Intents erstellt, werden die passenden Utterances zu den einzelnen Intents definiert. Hier kommen die Keywords ins Spiel, die zuvor festlegt wurden. Die meisten Utterances haben einen ähnlichen Aufbau in Form von „Erzähle mir etwas über XY“ oder „Was macht ein „XY“. Hier könnt ihr eine Liste mit verschiedenen Formulierungsarten erstellen und diese mit den Keywords kombinieren. Das manuelle Einfügen von spezifischen Utterances wird euch hierbei dennoch nicht ganz erspart bleiben.

Tipp: Pro Intent solltet ihr initial mindestens acht Utterances erstellen. Alexa fügt durch die Verwendung von Künstlicher Intelligenz eigenständig neue Utterances hinzu, sobald sie ein Muster in den Fragestellungen erkennt. Je mehr Utterances hier bereits anfangs implementiert wurden, desto besser funktioniert dieser Prozess.

Schritt 3: So ganz ohne Code geht es nicht

Nachdem alle Intents erstellt und die Logik für den Gesprächsverlauf festgelegt ist, wird der Skill programmiert. Verwendet ihr in eurem Skill Built-in Intents, die von Amazon zur Verfügung gestellt werden, wird der Code für diese Intents bereits bei dem Erstellen des Skills generiert. Der Code der Intents ist immer im gleichen Format aufgebaut und kann durch Copy and Paste ganz einfach auf andere Intents übertragen werden.  Wir zeigen euch, auf welche Bereiche ihr hierbei achten müsst:

Im zweiten Schritt musst du Handler noch am Ende des Codes in folgenden Code-Schnipsel einfügen:

Schritt 5: Testen und Veröffentlichen

Sind im Code alle Intents hinterlegt, muss der Skill noch getestet werden. Amazon stellt hierfür eine eigene Testumgebung zur Verfügung – das ist wirklich cool. Damit kannst du ohne Probleme die verschiedenen Intents und Gesprächsverläufe prüfen.

Tipp: Am besten unterstützen euch hierbei Personen, die bisher keinerlei Berührungspunkte mit dem Skill hatten. Auch Nutzer von außen werden später nicht den Gesprächsverlauf kennen, den ihr euch zuvor überlegt habt.

Der Skill funktioniert fehlerfrei? Dann heißt es nun endlich: Wir veröffentlichen den Skill. Hierzu muss der Skill im ersten Schritt von Amazon zertifiziert werden. Für das Zertifikat müssen im „Certification“-Bereich die vordefinierten Felder ausgefüllt werden. Sollte es bei der Zertifizierung Probleme geben, werdet ihr von Amazon per Mail informiert. Bei unserem ersten Zertifizierungsversuch sind wir dabei auf folgende Problematiken gestoßen:

  • Wir haben uns überlegt, als Invocation Name den Namen unseres Unternehmens zu benutzen. Allerdings akzeptiert Amazon diesen nicht. Deshalb lautet unser Invocation Name jetzt h.r. netzeffekt.
  • Zudem haben wir nicht darauf geachtet, die richtige Beispielphrase bei der Zertifizierung zu benutzen. Diese sollte wie folgt aufgebaut sein:
  • Und zum Abschluss noch ein Punkt, der uns noch ein bisschen Arbeit bereitet hat: Wie bereits bei der Erstellung des Skills erwähnt, sollte gut überlegt sein, welche Intents den Skill beziehungsweise die Session beenden und welche weiterführen. Uns war zu diesem Zeitpunkt nicht bewusst, dass alle Skills, die weiterführen sollen, in einer Frage enden müssen, um den Skill am Laufen zu halten. Deswegen mussten wir an dieser Stelle nochmals alle Antworten anpassen. Umso wichtiger: Denkt bereits bei der Erstellung des Gespräch Verlaufs an diesen Punkt.

Info: Die Zertifizierungsanfrage kann so oft wie nötig gestellt werden. Heißt, ihr werdet zu keinem Zeitpunkt von Amazon abgestraft. Habt ihr alle Probleme beseitigt, wird der Skill von Amazon freigegeben und ihr könnt diesen nun im App Store veröffentlichen.

Schritt 6: Der Skill ist live, was jetzt?

Endlich, der Skill ist live. Aber auch nach der Veröffentlichung des Skills gilt es, diesen weiter zu optimieren. Hier stellt Amazon sogar ein eigenes Monitoring Tool zur Verfügung, welches die verschiedenen Anfragen an den Skill überwacht. Hierbei gilt es zwei Punkte besonders hervorzuheben, die euch dabei helfen können, den Skill bestmöglich zu optimieren:

  • Auf der Übersichtsseite findet ihr eine Aufstellung, welcher Intent wie oft aktiviert wurde. So könnt ihr einerseits feststellen, welche Intents für den Nutzer besonders interessant sind, anderseits seht ihr aber auch, ob es Fehler in der Nutzerführung geben könnte. So wurde bei uns beispielsweise der Fallback Intet, welcher immer dann greift, wenn keiner eurer Intents durch die Anfrage des Nutzers angesprochen wird, sehr oft aktiviert. Dies ist ein Hinweis, dass der Gesprächsverlauf noch nicht optimal gestaltet ist.
  • Der zweite Punkt, der uns bei der Optimierung weitergeholfen hat, sind die sogenannten Interaction Path Analytics, bei denen der genaue Gesprächsverlauf der verschiedenen Anfragen dargestellt wird. Hier lassen sich geplante Gesprächsverläufe noch einmal abgleichen und genau die Punkte ermitteln, an denen es Probleme gibt.

Wie geht es nun weiter?

„I’m still at the very first chapter“, so lautet die Antwort, wenn man Google oder Alexa fragt, wie alt sie sind und so sieht es für uns auch aus. Das Entwickeln eines Skills ohne Programmierungskenntnisse ist anfangs mit einigen Hürden verbunden. Ein paar einfache Tricks helfen hierbei. Zudem macht es unheimlich Spaß und ist ein großes Erfolgserlebnis, wenn der Skill das erste Mal auf deine selbst kreierte Frage antwortet. Deshalb können wir nur empfehlen, sich selbst einmal an einem Skill auszuprobieren. Für uns beginnt nun das zweite Kapitel mit Alexa, in dem wir uns nun mit dem Thema Voice-Bewerbungen auseinandersetzen. Also seid gespannt…

Kommentare aus der Community

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*
*