Abstraktes Header-Bild in den Farben von tsjdev apps

Blogbeitrag

Fakten-Skill für Alexa in C# entwickeln

Im Rahmen der letzten Meetups, welche ich zum Bereich Skill-Entwicklung für Alexa zusammen mit meinem Kollegen Thomas gehalten habe, habe ich einen kleinen Fakten-Skill über medialesson entwickelt und den Teilnehmerinnen und Teilnehmern vorgestellt. Ausgehend von diesem Beispiel habe ich ein Template für Visual Studio entwickelt, welches es ermöglicht mit sehr wenig Aufwand seinen eigenen Fakten-Skill zu schreiben und diesen dann auch zur Zertifizierung an Amazon zu übersenden. In diesem Beitrag möchte ich das Template kurz vorstellen und vielleicht entwickelt der eine oder andere ja dadurch seinen eigenen Skill.

Zunächst müssen wir uns die Zip-Datei, welche alle notwendigen Daten beinhaltet, aus meinem GitHub-Repository herunterladen.

Diese Datei brauchen wir nicht entpacken, sondern können diese direkt an den angegebenen Pfad kopieren. Normalerweise sollte der unter der folgendem Pfad erreichbar sein:

%userprofile%\documents\Visual Studio 2017\Templates\ProjectTemplates

Anschließend können wir in Visual Studio ein neues Projekt anlegen und haben hier jetzt eine neue Vorlage zur Auswahl.

Wenn wir nun dieses TemplateAlexa Fact Skill auswählen, können wir direkt einen Namen für die Solution vergeben und mit OK bestätigen. Wir erhalten dann den folgenden Projekt-Aufbau.

Zunächst schauen wir uns den MessagesService an. Dieser beantwortet zum einen den Launch Request und zum anderen die notwendigen Amazon-Intents, wie Help, Stop und Cancel. Hier können in die jeweilige Liste nun kurze prägnante Sätze eingetragen werden, welche dann per Zufall ausgewählt und wiedergegeben werden. Durch die Verwendung von Listen ist es möglich eine gewisse Varianz in den Skill zu integrieren, denn Alexa antwortet nicht immer mit dem gleichen Satz und so wird es für den Zuhörer nicht so schnell langweilig.

/// <summary> 
/// The launch request messages 
/// </summary>
private static readonly List<string> LaunchRequestMessages = new List<string>
{ 
  "Willkommen.", 
  "Willkommen bei meinem Fakten-Skill.", 
};

Um nun den Skill mit Fakten zu füttern, gibt es die JSON-Datei facts.json im Ordner Data. Die Struktur dieser Datei ist relativ einfach gehalten, denn jedes Fact-Objekt besteht aus zwei Properties: intent und texts. Die Property intent ist der Name für einen Intent, welchen man im Developer-Portal angelegt hat. So weiß der Skill welche möglichen Antworten er präsentieren muss. Auch hier habe ich mich wieder für eine Liste von Antwortmöglichkeiten entschieden. Hier kann nun eine beliebige Anzahl von Fakten hinterlegt werden.

[
  {
    "intent": "IntentName",
    "texts": [
      "Text 1",
      "Text 2",
      "Text 3"
    ]
  }
]

Die eigentliche Logik passiert in der Datei Function.cs, aber diese wurde von mir bereits soweit vorbereitet, dass hier keine Änderungen notwendig sind.

Damit sind wir eigentlich schon fertig und der Skill kann entsprechend unter developer.amazon.com angelegt und mit Intents und Utterances gefüllt werden und anschließend kann der Skill bereits getestet und zur Zertifizierung eingereicht werden.

Ich wünsche viel Spaß beim Entwickeln eines eigenen Fakten-Skills für Alexa.

Weiterempfehlen

Diesen Beitrag teilen

Wenn dir der Beitrag gefallen hat: gern weiterreichen. Gute Links dürfen sich ruhig schnell verbreiten.

Vorheriger/Nächster Beitrag

Map Control mit bindable Pins erweitern Vorheriger Beitrag Map Control mit bindable Pins erweitern Back to the 80's - Surface RT im Jahre 2018 Nächster Beitrag Back to the 80's - Surface RT im Jahre 2018
Alexa: Amazon Developer Account anlegen Alexa: Amazon Developer Account anlegen BotTalk: Skill zu Amazon hochladen BotTalk: Skill zu Amazon hochladen BotTalk: Einfache Alexa Skill Entwicklung BotTalk: Einfache Alexa Skill Entwicklung Alexa Skills mit Azure Functions Alexa Skills mit Azure Functions
Lust auf ein kurzes digitales Hallo? Wenn du eine Idee teilen, eine Frage loswerden oder ein Projekt anschieben willst: mein Posteingang ist deutlich zuverlässiger als Brieftauben. apps@tsjdev-apps.de Mail schicken