Workflow eines Amazon Alexa Skills


Im letzten Beitrag habe ich die Architektur eines Amazon Alexa Skills vorgestellt. Heute geht es um den Workflow eines Skills. Ausgangspunkt des Beitrags ist ein sehr einfaches Beispiel:

  • Wir haben einen Alexa-Skill der fertig konfiguriert und auf einem Amazon Echo getestet ist.
  • Die App heißt Fastfood und wird über das Aktivierungswort „Lieferdienst“ gestartet.

 

Der allgemeine Workflow

Der allgemeine Workflow sieht so aus:

Es kommt IMMER erst ein Request vom Frontend und dieser wird IMMER vom Backend mit einem Response beantwortet. Dabei unterscheidet man 3 verschiedene Arten von Requests:

  • LaunchRequest: wird IMMER als erstes/beim starten des Skills gesendet.
  • IntentRequest: wird bei Interaktionen gesendet.
  • SessionEndedRequest: wird bei Fehlern, Zeitüberschreitungen oder der Benutzer hat „Ende“ gesagt, gesendet.

Mehr Informationen findest du hier.

 

Sessionmanagement

Ein weiterer wichtiger Fakt ist das Sessionmanagement. Jeder LaunchRequest öffnet eine so genannte Session. Eine Session wird für längere Dialog benötigt und wird über eine einmalige und über die gesamte Dauer der Session gültige ID identifiziert. So lange eine Session aktiv ist wartet das Frontend auf eine Reaktion/Antwort des Nutzers. Antwortet dieser nicht, wird vom Frontend per SessionEndedRequest die Session beendet. Außer vom Frontend kann die Session auch vom Entwickler selbst, durch das Setzten eines Flags im Response des Backends, beendet werden.

 

1. Beispielworkflow

Der User sagt: „Alexa, starte den Lieferdienst.“

  • Amazon Echo macht daraus einen LaunchRequest mit ID 47
  • Das Backend antwortet mit einem einfachen Response und lässt folgendes vorlesen:

Amazon Echo: „Willkommen beim Lieferdienst. Wollen Sie einen Hamburger?“
Der User antwortet: „ja“

  • Amazon Echo erkennt das ja und sendet einen IntentRequest. Die Session mit der ID 47 bleib weiter aktiv.
  • Das Backend antwortet mit einem einfachen Response und lässt folgendes vorlesen:

Amazon Echo: „Wollen Sie Pommes dazu?“
Der User antwortet: „Nein“

  • Amazon Echo erkennt das nein und sendet einen IntentRequest. Die Session mit der ID 47 bleib weiter aktiv.
  • Das Backend antwortet mit einem einfachen Response und setzt das Session-beenden-Flag. Abschließend wird folgendes vorgelesen:

Amazon Echo: „Danke! Ich habe ihre Bestellung erhalten.“
Damit ist die Interkation zu Ende.

 

2. Beispielworkflow

Der User sagt: „Alexa, starte den Lieferdienst.“

  • Amazon Echo macht daraus einen LaunchRequest mit ID 53
  • Das Backend antwortet mit einem einfachen Response und lässt folgendes vorlesen:

Amazon Echo: „Willkommen beim Lieferdienst. Wollen Sie einen Hamburger?“
Der User antwortet war nichts

  • Amazon Echo fragt nochmal nach

Der User antwortet weiterhin nichts

  • Amazon Echo erkennt das und sendet einen SessionEndedRequest. Die Session mit der ID 53 wird beendet.
  • Das Backend antwortet mit einem einfachen Response und lässt abschließend folgendes vorlesen:

Amazon Echo: „Es ist ein Fehler aufgetreten“
Damit ist die Interkation zu Ende.

 

Aufbau eines Request

Wir haben uns die Architektur und den Workflow eines Alexa Skills angesehen. Jetzt geht es um harte Fakten und zwar wie ein richtiger Request aussieht und was für Besonderheiten er hat.

 

Habt ihr noch keinen Echo?! Dann hier kaufen:)

 

Quellen und weitere Links

 

Copyright © 2017 AxxG – Alexander Gräsel




Keine Antworten : “Workflow eines Amazon Alexa Skills”

Trackbacks/Pingbacks

  1. Architektur eines Amazon Alexa Skills | AxxG Blog - […] Jetzt weißt du, wie ein Alexa Skill aufgebaut ist. Jetzt solltest du dir den Workflow anschauen! […]

Kommentar verfassen