Architektur eines Amazon Alexa Skills

Amazon EchoDu willst also eine App für deinen Amazon Echo programmieren – hast aber nach 3 Stunden noch nichts zu Stande gebracht? Da geht es dir genauso wie mir^^ Keine Ahnung was IT-Firmen wie IBM, Google, Apple oder eben Amazon geritten hat, aber ich habe noch kein Tutorial von denen gefunden, wo ich auf Anhieb gesagt hätte: „Jo, das ist es! Das ist geil:) Lass uns XY darauf programmieren.“
Nichts, Nada, Niente, Nothing – einfach nix und das ist traurig. Es reicht heutzutage einfach nicht mehr aus irgendwelche Code-Beispiele über den Zaun auf Github zu werfen und zu hoffen, dass es die Communtiy irgendwie richtet. Es gibt zwar verrückte Softwareentwickler, aber ohne Doku und nur mit Try&Error wird das eben nichts. Aber genug gejammert – hier kommt die Rettung:) In diesem Beitrag geht es um Amazon Alexa Skills und die grundlegende Architektur.

 

Es gibt keine Apps

Zunächst halten wir mal fest, dass es keine Apps für Amazon Echo gibt. Es gibt nur so genannte Alexa Skills und die werden nicht installiert, sondern nur aktiviert. Und da ist auch schon der Knackpunkt – die Architektur eines Alexa Skills.

 

Architektur eines Alexa Skills

Ein Alexa Skill besteht aus mehreren Frontends und einem Backend. Ein Frontend kann zum Beispiel ein Amazon Echo, ein Amazon Dot oder ein LG Kühlschrank sein. Das Backend hingegen ist ein einfacher Web Service (also ein Skript was einen Request verabreiten kann) hinter einer HTTPS-URL. Dieses kann wahlweise auf dem eigenen Server oder auf Amazon Lambda betrieben werden. Anhand einer „Web-Konfiguration“ auf https://developer.amazon.com/ werden die zwei Teile miteinander verbunden. Die folgende Grafik zeigt den Aufbau.

 

Das Frontend und die Web-Konfiguration

Auf das Frontend ansich hat der Entwickler keinen Einfluss. Daher schauen wir uns lieber die Web-Konfiguration etwas genauer an. Die Web-Konfiguration beinhaltet folgende wichtigen Bestandteile:

  • Das Aktivierungswort (eng. invocation name): Das Wort, mit dem man den Skill aufruft. Bsp: Alexa, starte XY.
  • Der Programmname (eng. name): Der Name des Programms der auf Amazon.de und in der Alexa angezeigt wird
  • Das Absichtsschema (eng. Intent Schema): Ein Intent/Absicht ist die Reaktion auf eine Benutzeräußerung. Beispiel: Alexa fragt: „Möchten Sie Mayo?“ und der Benutzer antwortet mit „Ja“, „jo“, „gerne“ oder „immer doch“ wird das sogenannte AMAZON.YesIntent gesendet. Antwortet er hingegen mit „Nein“, „Nö“, „Ne“ oder „weniger“ wird das AMAZON.NoIntent gesendet. Ein Intent fasst also mehrere Äußerungen zu einer Reaktion zusammen. Das Absichtsschema hingegen enthält alle Intents/Absichten.Mehr Informationen hier.
  • Beispielaufrufe/Musteräußerungen (eng. Sample Utterances): Musteräußerungen werden für selbstdefinierte Intent/Absicht benötigt und enthalten Beispielaufrufe wie „FrageIntent Wann fährt die Linie {Busnummer}?“ oder „FrageIntent Wann fährt das nächste Mal die Linie {Busnummer}?“. usw. Tipp: so viele Beispiele wie möglich angeben!

 

Das Backend

Das Backend hingegen ist echt einfach. Es empfängt Requests im JSON-Format und antwortet im JSON-Format. fertig. Mehr macht es nicht^^

 

Der Workflow

Jetzt weißt du, wie ein Alexa Skill aufgebaut ist. Jetzt solltest du dir den Workflow anschauen!

 

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

 

Quellen und weitere Links

 

Copyright © 2017 AxxG – Alexander Gräsel




Keine Antworten : “Architektur eines Amazon Alexa Skills”

Trackbacks/Pingbacks

  1. Quickstart: Amazon Alexa Custom Skill mit PHP und ohne Amazon Lambda | AxxG Blog - […] Wenn ihr wissen wollt, wieso ihr das tut – einfach diesen Artikel lesen! […]

Kommentar verfassen