Wenn SnapLogic auf Alexa trifft - Erstellen Sie Ihren ersten Skill in wenigen Minuten

6 Minuten lesen

Wussten Sie, dass Amazons Alexa eine Freisprecheinrichtung bietet, die es Ihnen ermöglicht, mit Ihrer Stimme eine Menge kreativer Dinge zu schaffen? Diese integrierten Fähigkeiten werden als Skills bezeichnet. Unter Amazon"Alexa kann unter anderem Musik von verschiedenen Anbietern abspielen, Fragen beantworten, Wettervorhersagen liefern und Wikipedia abfragen."

In diesem Beitrag werden wir einen einfachen Skill namens "My Skill" mit SnapLogic als Back-End erstellen. Diese einfache Übung mit SnapLogic-Pipelines und Amazons Diensten wird zeigen, wie Sie Alexa in Anwendungen und Daten integrieren können.

Dieser Skill wird zwei Intents verarbeiten können: "Hello World" und "Get Tweet about Person". Bei der Absicht "Hello World" antwortet Alexa einfach mit einer Glückwunschnachricht, die in einer SnapLogic-Pipeline erstellt wird. Bei der Absicht "Get Tweet about Person" bittet Alexa die SnapLogic-Pipeline, einen Tweet zu einer von Ihnen angegebenen Person zu finden und zu melden. Nachfolgend finden Sie eine schrittweise Anleitung, wie wir das gemacht haben.

Um diesen Alexa Skill fertigzustellen, werden Sie in der SnapLogic-Plattform und der Amazon Developer Console arbeiten, um drei Hauptkomponenten zu erstellen: SnapLogic Pipeline, Alexa Skill Interface und Lambda-Funktion. Zum Testen benötigen Sie nicht einmal einen Echo - die Amazon Developer Console reicht aus.

Aufbau einer SnapLogic-Pipeline

Im Moment konzentrieren wir uns nur auf die Erstellung eines Skills mit der Absicht "Hello World". Wir werden später "Get Tweet about Person" erstellen. Die SnapLogic-Pipeline erhält keine Parameter und erzeugt eine von Alexa gesprochene "Glückwunsch"-Nachricht. Dieser Intent benötigt nur einen Snap, um die resultierende Glückwunschnachricht zu erzeugen. Sie können entweder einen JSON-Generator, einen CSV-Generator oder einen Mapper-Snap verwenden. Sie können diese SnapLogic-Pipeline herunterladen hier.

Erstellen Sie zunächst eine Aufgabe, indem Sie auf das Kalendersymbol in der Menüleiste klicken, damit diese Pipeline mit einer REST-API von Lambda aufgerufen werden kann. Sie können entweder Triggered oder Ultra task wählen. Für diese Übung werden wir die Ultra-Aufgabe verwenden, da sie zu einer kürzeren Reaktionszeit führt.

Gehen Sie anschließend zur Seite SnapLogic Manager, um die Details der Aufgabe anzuzeigen. Sie benötigen die Endpunkt- und Autorisierungsinformationen, damit Lambda diese Aufgabe ausführen kann.

Erstellen der Alexa Skill-Schnittstelle

Jetzt sind wir bereit für Alexa. Rufen Sie die Amazon-Entwickler-Konsoleund wählen Sie dann die Registerkarte Alexa.

Klicken Sie unter "Alexa Skills Kit" auf "Get Started" und dann auf "Add a New Skill". Geben Sie sowohl den Skill-Namen als auch den Aufforderungsnamen ein, den Sie verwenden möchten. Der Skill-Name ist der Name, der in der Alexa-App angezeigt wird. Der Aufforderungsname ist die Phase, die Sie zum Starten des Skills verwenden werden.

Der nächste Schritt ist der Entwurf des Interaktionsmodells. Klicken Sie im Abschnitt "Intents" auf "ADD +" und geben Sie den Namen des Intents an. Ein Intent kann eine Frage oder ein Befehl sein. In den meisten Szenarien wird ein Intent mit einer SnapLogic-Aufgabe verknüpft.

Fügen Sie einige Beispiele für Äußerungen. Sie müssen keine exakten Äußerungen sprechen, um die Fähigkeit zu nutzen, da Amazon ein gutes NLP-Modell bereitstellt, das recht flexibel ist. Hinweis: In unserer Absicht "Hello World" brauchen wir keinen Slot zu verwenden. (Wir werden über Slots später in der Lektion "Get Tweet about Person" sprechen).

Klicken Sie auf "Build Model" und seien Sie sich bewusst, dass dies ein paar Minuten dauern kann. Gehen Sie anschließend zum Konfigurationsschritt, um den ARN-Endpunkt für die Lambda-Funktion anzugeben, die wir als Nächstes erstellen werden.

Erstellen einer Lambda-Funktion

Rufen Sie die Lambda-Entwicklungskonsole auf und klicken Sie auf "Funktion erstellen". Wählen Sie "alexa-skill-kit-sdk-factskill".

Füllen Sie die grundlegenden Informationen aus und klicken Sie auf "Funktion erstellen".

Sie können nun den ARN-Endpunkt sehen, den Sie für die oben erwähnte Alexa-Konfiguration benötigen.

Stellen Sie sicher, dass das Alexa Skills Kit enthalten ist. Wenn dies nicht der Fall ist, fügen Sie es über das linke Bedienfeld hinzu.

Als nächstes ersetzen Sie den JavaScript-Inhalt durch unsere SnapLogic Lambda-Vorlage für Alexa Skill, die Sie hier finden können hier. Sie können auch den kompletten Code für diesen Skill herunterladen hier.

Geben Sie Ihre Qualifikationsdaten ein.

In the intent section. Fill in <intent> with the one you defined in the Alexa Skill Interface. If you have more than one intent, simply copy and paste with a different <intent>.

In this case, <intent> is “HelloWorld.”

Then fill in the SnapLogic task information that you’d like to use with this intent. You can get <cloud_url> and <bearer_token> from the Triggered or Ultra task you started in SnapLogic. You do not need to fill in the slot section for this intent. When everything is ready, save the function.

Herzlichen Glückwunsch, Ihr erster Alexa Skill ist fertig!

Testen Sie Ihr Können 

Sie können Ihren Skill entweder in der Alexa Development Console, in der Amazon Shopping App oder auf Amazon Echo testen. Für diese Übung werden wir in der Alexa-Entwicklungskonsole testen.

Gehen Sie zum Abschnitt "Test" und klicken Sie auf "Go to Test Simulator". Sie können die Anfrage entweder eintippen oder sprechen. Ihre Unterhaltungen mit Alexa werden auf der linken Seite angezeigt. Auf der rechten Seite wird die Anfrage vom Alexa Skill Interface im json-Format in der linken Hälfte und die Antwort von Lambda in der rechten Hälfte angezeigt. Sie können auf die Schaltfläche "Play" klicken, um die Stimme von Alexa zu hören.

Aufbau der Intention "Tweet über Person abrufen

Beginnen Sie mit der folgenden Pipeline. Diese Pipeline enthält drei Snaps: einen Abfrage-Snap aus dem Twitter Snap Pack, einen Mapper zum Extrahieren von Benutzernamen und Text aus der Twitter-Antwort und den letzten Mapper zum Konstruieren des Satzes, den Alexa vorlesen wird. Sie können diese SnapLogic-Pipeline herunterladen hier.

Im Abfrage-Snap ist das Abfrage-Wort der Name der Person, den Sie Alexa mitteilen. Für die Ultra-Aufgabe werden die Parameter (Slots) von Alexa in das "Query"-Objekt gepackt. Für die Triggered-Aufgabe werden die Slots als Pipeline-Parameter übergeben. Hinweis: Sie müssen Ihr Twitter-Konto zu diesem Snap hinzufügen.

Im ersten Mapper Snap extrahieren wir den Benutzernamen und den Text, den Alexa lesen soll. Bei der API-Antwort eines Drittanbieters müssen Sie möglicherweise vorsichtig sein. Die Antwort kann unlesbaren Text enthalten, den Sie entfernen oder in lesbaren Text umwandeln müssen. Beispielsweise kann die Twitter-API einen Link anstelle des vollständigen Textes senden, wenn der Tweet sehr lang ist. In diesem Fall können wir die SnapLogic-Ausdruckssprache verwenden, um dies zu verarbeiten.

Im letzten Mapper-Snap können wir den Satz konstruieren, den wir an Alexa zurücksenden werden. Verwenden Sie einfach "+", um Strings zu verketten. Es ist jedoch eine gute Praxis, Ihren String unter "JSON.stringify" zu verpacken, um sicherzustellen, dass Ihre Antwort ein gültiger JSON-String sein wird.

Dann können Sie eine Ultra-Aufgabe starten. Der nächste Schritt besteht darin, die Absicht "Get Tweet about Person" im Alexa-Interaktionsmodell zu erstellen und einen Absichtshandler in der Lambda-Funktion hinzuzufügen.

Rufen Sie das Alexa-Interaktionsmodell auf, erstellen Sie eine Absicht und geben Sie dann Äußerungen an. Wir benötigen einen Slot, um den Namen einer Person zu erfassen, der an unsere Lambda-Funktion übergeben wird. Sie können den Slot mit geschweiften Klammern angeben, zum Beispiel {person}. Vergewissern Sie sich, dass im rechten Feld "REG" markiert ist. Das bedeutet, dass dieser Slot erforderlich ist und Alexa fragt, wenn sie die Informationen für die erforderlichen Slots nicht erhalten kann. Für erforderliche Slots müssen Sie eine Eingabeaufforderung und Beispielsätze angeben, mit denen Alexa antworten soll. Wenn alles gut aussieht, fahren Sie fort und erstellen Sie das Modell.

The last step is to add an intent handler to the Lambda Function. In this case, you will need to specify “slot_param_map.” It starts with <slot_name> which you can get from the Alexa Interaction Model. <task_param> is the same as specified in “query” object from the SnapLogic Twitter Snap. You do not need the default value here since the person’s name is a required slot. Alexa will keep asking until she gets the person’s name. Finally, click “save” and your skill is ready to go.

Und das war's. Sie haben nun Ihren ersten Skill mit einer SnapLogic-Pipeline und Alexa erstellt - nur eine weitere Möglichkeit, die einzigartige Leistungsfähigkeit der SnapLogic-Architektur hervorzuheben.

Vielleicht können Sie eines Tages Alexa bitten: "Alexa, hole die Daten von Sumo Logic und sende sie an unseren Data Lake." Alexa wird dann die Pipeline auslösen, die die Datenintegration durchführt, und eine Bestätigungs-E-Mail senden, wenn die Aufgabe abgeschlossen ist. Schön, nicht wahr? Was Sie als nächstes tun, bleibt Ihnen überlassen. Die Möglichkeiten sind endlos.

Was wird Ihr erster Alexa Skill sein?

Führender Ingenieur für maschinelles Lernen bei SnapLogic

Wir stellen ein!

Entdecken Sie Ihre nächste große Karrierechance.