Alexa Skills: das Session Attribut richtig verwenden

Warum ist das Session Attribut für Alexa Skills wichtig? Dieser Artikel beantwortet die Frage und zeigt, wie man das Attribut richtig einsetzt.

Der folgende Artikel ist ein Auszug aus meinem Buch „Alexa Skills entwickeln“. Klicke auf das Bild, um das Buch auf Amazon ab 8,99€ zu kaufen. Es lohnt sich für Entwickler und die, die es werden wollen.

alexa skills entwickeln handbuch

Alexa Skills: Skill-Daten und das session-Attribut

Ein Skill hat nicht immer ein lineares Gespräch. Wir möchten vielleicht eine Frage stellen und uns je nach Antwort, die wir erhalten haben, anders verhalten. Um das zu tun, müssen wir einige Informationen im „Gedächtnis“ eines Alexa-Skills behalten. Dazu bietet uns das Alexa Skill SDK die Möglichkeit, Session-Attribute zu verwenden.

Wenn du ein Gespräch mit jemandem führst, kann es ja sein, dass du entweder etwas verpasst, was er gesagt hat, oder es nicht ganz richtig gehört hast. Normalerweise bittet man nach einer Wiederholung des Gesagten. Auch Skills brauchen diese Möglichkeit, denn die Leute hören Alexa nicht immer perfekt zu. Wer beispielsweise sich morgens sein Briefing vorlesen lässt, der kann auch sagen, „Alexa, wiederhole das bitte.“

Um die Wiederholungsfunktionalität für Skills zu implementieren, muss man lediglich den AMAZON.RepeatIntent in das Interaktionsmodell aufnehmen und dann Session-Attribute in dem Code verwenden, um sich die letzte Sprachausgabe zu merken, die an den Kunden weitergeleitet wurde.

Was ist AMAZON.RepeatIntent?

AMAZON.RepeatIntent ist einer der standardmäßig von Amazon angebotenen intents, mit denen der Benutzer die letzte Aktion wiederholen kann. Wenn der intent im Skill implementiert ist, kann der Nutzer Alexa nach einer Wiederholung der letzten Aktion fragen. Um diesen Intent einzubauen, muss man folgendes tun:

  • Im Interaktionsmodell den AMAZON.repeatIntent bereitstellen.
  • Die Session-Attributes dort erweitern, wo notwendig, damit die letzte gesprochene Antwort in den session-Attributes steht. Das geht mit der Methode setSessionAttributes().
  • Einen Handler für den AMAZON.repeatIntent einbauen und in ihm die Session-Attributes aufrufen, damit sie dann verwendet werden können. Das geht mit der Methode getSessionAttributes().

Ein Beispiel für das Session Attribut im Einsatz

Auf Github habe ich eine Version des Amazon Quiz-Skills entwickelt: Im Spiel können Nutzer nach Daten der Fußball Weltmeisterschaften fragen. Beispielsweise refernziere ich das Sesion Attribut im DefinitionHandler, der angesprochen wird, wenn Nutzer nicht das Spiel spielen, sondern so dem Spiel eine Frage stellen:

smarthomesystem-alexa-skills-session-attribut

Wie du siehst, ist in dem Attributes – Objekt die Info enthalten, ob der Nutzer vorher schon das Spiel begonnen hat. Wenn das Spiel nicht begonnen wurde, dann wird der DefinitionHandler geöffnet.

Hier noch ein Video:

Das Handbuch zur Alexa Skill Entwicklung

Wenn der Artikel dich interessiert hat, sehe dir das Handbuch für Alexa Skill Entwicklung auf Amazon an, oder lies die Produktseite. Auf Github findest du alle Code-Beispiele.

Roman Alexander

Hi, ich bin Roman und blogge bei Smart-Home-System.org über meine Smart Home Projekte... außerdem bin ich Autor zweier Bücher über den Amazon Echo und Google Home, die du bei Amazon finden kannst: https://www.amazon.de/Roman-Alexander/e/B074Z27692/

6 Gedanken zu „Alexa Skills: das Session Attribut richtig verwenden

Kommentar verfassen

%d Bloggern gefällt das: