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:
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:
Mehr Informationen findest du hier.
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.
Der User sagt: „Alexa, starte den Lieferdienst.“
Amazon Echo: „Willkommen beim Lieferdienst. Wollen Sie einen Hamburger?“
Der User antwortet: „ja“
Amazon Echo: „Wollen Sie Pommes dazu?“
Der User antwortet: „Nein“
Amazon Echo: „Danke! Ich habe ihre Bestellung erhalten.“
Damit ist die Interkation zu Ende.
Der User sagt: „Alexa, starte den Lieferdienst.“
Amazon Echo: „Willkommen beim Lieferdienst. Wollen Sie einen Hamburger?“
Der User antwortet war nichts
Der User antwortet weiterhin nichts
Amazon Echo: „Es ist ein Fehler aufgetreten“
Damit ist die Interkation zu Ende.
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.
Copyright © 2017 AxxG – Alexander Gräsel
Kommentar verfassen