Dieser Beitrag ist die Fortsetzung zu Meine ersten Schritte einen Alexa Skill zu entwickeln. Ich fasse dir hier die Module 4 – 9 des Tutorials Training Course: Build an Engaging Alexa Skill zusammen.
Module 4: Collect Slots Turn-by-Turn
Du erinnerst dich sicher, dass du in Modul 3 eine erste lauffähige „Hello-World“-Version des Alexa Skills erstellt hast. Diese Version war noch nicht wirklich interaktiv. Das soll sich am Ende von Modul 4 ändern. In Modul 4 lernst du, wie du über Alexa fragen stellen kannst und wie du aus den gegebenen Antworten die relevanten Informationen erhältst.
Die wichtigen Stichworte sind auch hier utterance, intent und slot. Im Tutorial selbst wird genauer auf diese Begriffe eingegangen. Daher hier nur eine kurze Beschreibung, wie sie zusammenhängen.
Wie ist ein Alexa-Kommando aufgebaut?
Wenn du etwas zu Alexa sagst, dann ist dies eine utterance (Äußerung). Dies kann etwas ganz beliebiges sein. In der Regel verfolgst du mit dieser Äußerung aber eine Absicht. Diese Absicht wird intent genannt. Im Tutorial wirst du die „Absicht“ haben dem Beispiel-Skill deinen Geburtstag zu nennen. Einige Varianten von utterances dieses intents könnten sein:
- „Ich bin am sechsten November Neunzehnhundertvierundsiebzig geboren.“
- „Mein Geburtstag ist am 6.11.1974.“
- „Sechster November Neunzehnhundertvierundsiebzig“
- „Am 06.11.1974“
- „Ich habe am 06. November Geburtstag.“
- „Das geht dich nichts an.“
Dies ist nur eine kleine Auswahl an möglichen Antworten. Sie gibt einen guten Eindruck über die Komplexität der Spracheingaben. Ein guter Skill kann auf diese und weitere Antworten reagieren.
Für den Tutorial Skill benötigst du den Geburtstag. In der Developer Console kannst du nun für jede Beispiel-Äußerung Variablen an den Stellen einfügen, an denen die relevante Information enthalten ist. Diese Variablen werden slots genannt. Im Tutorial wird dir gezeigt, wie du an Stelle des Beispieldatums slots für den Tag, den Monat und das Jahr einfügst und wie du Alexa mitteilst, welche Information sich dahinter verbirgt.
In den Beispielen sind auch Äußerungen enthalten, die nicht alle oder gar keine erwartete Information enthalten. Im Tutorial lernst du auch, wie du in deinem Skill auf solche Ereignisse reagieren kannst. Der entscheidende Begriff ist Dialog Management. Wenn du die Fälle vorhersehen kannst, an denen Informationen unvollständig mitgeteilt werden, kannst du dein Dialog Modell so erstellen, dass der Skill die fehlenden Daten abfragt.
Am Ende dieses Modules kann dein Beispiel-Skill das Geburtsdatum erfragen und wiedergeben. Das Datum kann jedoch noch nicht gespeichert werden.
Module 5: Help Your Skill Remember with Persistent Attributes
In Module 5 erfährst du endlich, wie du Daten speichern kannst. Es wird kurz darauf eingegangen welche Arten der persistenten Datenhaltung unterstützt werden. Im Tutorial selbst wird dir gezeigt, wie du Amazon S3 einbindest.
Du wirst in diesem Abschnitt des Tutorials einige Änderungen am Code vornehmen. Zum Beispiel fügst du eine neue Bibliothek hinzu und du ergänzt den Code mit asynchronen Aufrufen, um die Geburtsdaten abzuspeichern und abzurufen. Desweiteren lernst du, wie du die gespeicherten Daten auch wieder löschen kannst. Das ist besonders während der Entwicklungs- und Testphase hilfreich.
Module 6: Enhance Date Accuracy with the Alexa Setting API
Jetzt kann der Beispiel-Skill dein Geburtsdatum erfragen und abspeichern. Bisher erfüllt der Skill aber noch keinen sinnvollen Zweck. Daher implementierst du in diesem Modul das eigentliche Feature: Die Anzahl an Tagen bis zu deinem nächsten Geburtstag auszugeben.
An und für sich ist die Umsetzung des Features nicht so schwierig. Du musst nur die Differenz des aktuellen Tages zu deinem nächsten Geburtstag berechnen. Im Falle des Alexa-SDKs stellt sich aber speziell die Abfrage des aktuellen Datums als etwas aufwändiger dar. Details kannst du im Tutorial selbst nachlesen.
Im Anschluss ist die Berechnung der Anzahl der Tage bis zum nächsten Geburtstag keine große Zauberei. Auch die Ausgabe über Alexa ist schnell erledigt. Im Tutorial-Code hat sich jedoch ein kleiner Fehler eingeschlichen. Ich möchte dir aber nicht den Spaß verderben, diesen Fehler selbst zu finden. Solltest du ihn nicht entdecken können, kannst du gerne einen Kommentar hinterlassen und ich werde dir einen Tipp geben.
Mit Abschluss des sechsten Moduls hast du auch den Programmieranteil des Tutorials beendet. Die letzten drei Module beschäftigen sich eher mit administrativen Aspekten.
Module 7: Finalize Your Skill
Die Erstellung des Codes ist nur ein Teil deiner Aufgaben, die nötig sind deinen Skill im Alexa Skills Store anbieten zu können.
Bevor du einen Skill wirklich für die Veröffentlichung freigeben kannst, musst du noch einige Angaben machen. Dazu zählen Beschreibungen und Bilder für die Vorschau im Alexa Skills Store. Fast noch wichtiger sind Angaben zum Datenschutz und rechtliche Regelungen.
In diesem Abschnitt musst du für das Alexa-Test-Team alle Anforderungen aufführen, die zwingend notwendig sind, um den Skill auszuführen. Dazu gehören spezielle Accounts genauso wie Hardwarevoraussetzungen.
Im letzten Teil des Moduls gibst du an, wer den Skill finden und nutzen können soll. Außerdem kannst du unter bestimmten Voraussetzungen einen Beta-Test starten.
Module 8: Certify and Publish Your Skill
Hast du alle Angaben im Modul 7 gemacht kannst du deinen Skill zertifizieren und abschließend veröffentlichen lassen. Aus Sicherheits- und Qualitätsgründen kannst du deinen Skill nicht ohne vorhergehende Prüfung durch Amazon in den Skills Store einstellen.
In Module 8 wird ziemlich ausführlich auf diesen Prozess eingegangen. Es wird auf verschiedene Checklisten verwiesen und der automatische sowie manuelle Teil der Freigabe erläutert. Außerdem wird beschrieben, was du bei der Aktualisierung deines Skills beachten musst.
Module 9: Wrapping Up & Resources
Damit ist das Tutorial an sein Ende angelangt. Im letzten Modul erfolgt die obligatorische Zusammenfassung und der Verweis auf weitere Ressourcen.
Abschluss
Ich fand das Tutorial sehr nachvollziehbar und logisch aufgebaut. Die Informationshappen sind gut zu verdauen. Teilweise hätten die Module etwas mehr in die Tiefe gehen können.
Besonders bemerkenswert fand ich in welch kurzer Zeit ein lauffähiger Skill erstellt werden kann. All das ohne große Vorbereitungen treffen zu müssen.
Etwas kurz gekommen ist des Situational Design. Zu dieser Entwurfsmethode werde ich in der nächsten Zeit noch das ein oder andere Tutorial durcharbeiten.
Wie immer werde ich dich hier und auf meinen Accounts der anderen Plattformen (siehe unten unter SOCIAL LINKS) auf dem Laufenden halten.
Bildnachweis
Titelbild von AlfredMuller auf Pixabay