Ich habe versucht, Alexa-Fähigkeiten mit Java zu erstellen

Umweltvorbereitung

Installieren eines Plugins zur Verwendung von AWS Lambda von Eclipse Bitte beachten Sie dies, wie es in ↓ vorgestellt wird. [AWS Toolkit für Eclipse - Yamamugi] (https://www.yamamanx.com/aws-toolkit-eclipse/)

Rauer Fluss

  1. Erstellen Sie eine Fertigkeit im Alexa Developer Portal
  1. Erstellen Sie eine Lambda-Funktion, die das Gehirn der Alexa-Fertigkeit sein wird
  1. Verknüpfen Sie Alexa-Fähigkeiten mit Lambda-Funktionen
  2. Testimplementierung

Alexa-Fähigkeiten erstellen

Zuerst [Amazon Developer Portal] Gehen Sie zu (https://developer.amazon.com/en/) und rufen Sie den Bildschirm zur Erstellung von Alexa-Fertigkeiten auf.

スクリーンショット 2018-05-31 23.40.04.png

スクリーンショット 2018-05-31 23.40.25.png スクリーンショット 2018-05-31 23.40.49.png

image.png

Entscheide dich für einen Skillnamen. Bitte behalten Sie die Sprache als Japanisch bei.

image.png

Wählen Sie diesmal eine benutzerdefinierte Fertigkeit aus.

image.png

Legen Sie einen Rufnamen fest. Es ist der Teil von ** "○○" ** von "Alexa, open ** ○○ **" und "△△ with ** ○○ **".

image.png

Machen Sie eine Absicht. Entspricht dem ** "△△" ** Teil von "○○ de ** △△ **".

image.png

Vorerst habe ich eine Absicht namens ** "Hallo Absicht" ** erstellt.

d8d9499b6ff2b28c5488cf0243e66221.png

Als nächstes werde ich ein Sprachbeispiel für HelloIntent festlegen. Ich werde auch den Intent-Slot verwenden, also setze ich einen Intent-Slot mit den Namen ** "Location" ** und Ich möchte den Standard-Slot von Amazon ** AMAZON.City ** verwenden. ** {Location} ** ist ein gebräuchlicher Ortsname, der bereits bei Amazon registriert ist. Vielleicht gibt es auch Osaka City. Ich weiß es nicht.

de046866c6b159c335d2ee183c9118d0.png

Verschränken Sie danach den Intent-Slot, den Sie zuvor in der Beispielrede erstellt haben. Registrieren Sie einige Beispiele für Äußerungen, die der Benutzer wahrscheinlich sagen wird. Drücken Sie nach der Registrierung zu einem gewissen Grad ** "Modell speichern" ** und ** "Modell erstellen" **. Sobald der Build erfolgreich ist, wird die Arbeit am Alexa Admin Portal hier unterbrochen.

Erstellen einer Lambda-Funktion

Verwenden Sie diesmal das zuerst installierte AWS Toolkit für Eclipse. Erstellen Sie eine Lambda-Funktion aus Eclipse.

Da wir das Java-Beispielprojekt von GitHub verwenden werden, [hier] Klonen Sie von (https://github.com/alexa/skill-samples-java) nach Eclipse. Importieren Sie nach dem Klonen nur das helloworld-Projekt und bearbeiten Sie HelloWorldSpeechlet.java.

HelloWorldSpeechlet.java(Zeile 49)



    @Override
    public SpeechletResponse onIntent(SpeechletRequestEnvelope<IntentRequest> requestEnvelope) {
        IntentRequest request = requestEnvelope.getRequest();
        log.info("onIntent requestId={}, sessionId={}", request.getRequestId(),
                requestEnvelope.getSession().getSessionId());
        //Holen Sie sich die Absicht von der Anfrage
        Intent intent = request.getIntent();
        String intentName = (intent != null) ? intent.getName() : null;
        //Holen Sie sich den Slot-Wert aus der Absicht
        Slot slot = intent.getSlot("Location");
        String slotValue = slot.getValue();

        if ("HelloIntent".equals(intentName)) {
            //Ändern Sie diese Option, um den Wert des Steckplatzes als Argument zu übergeben
            return getHelloResponse(slotValue);
        } else if ("AMAZON.HelpIntent".equals(intentName)) {
            return getHelpResponse();
        } else {
            return getAskResponse("HelloWorld", "This is unsupported.  Please try something else.");
        }
    }

HelloWorldSpeechlet.java(Zeile 93)


 private SpeechletResponse getHelloResponse(String slotValue) {

       String speechText = null;
       if(slotValue != null && slotValue.contains("Osaka")) {
       //Auf den Wert des Steckplatzes"Osaka"Wenn enthalten
           speechText = "Ups, ist es rentabel?";
       } else {
       //Andernfalls
           speechText = "Hallo wie geht's dir?";
       }
       // Create the Simple card content.
       SimpleCard card = getSimpleCard("HelloWorld", speechText);

       // Create the plain text output.
       PlainTextOutputSpeech speech = getPlainTextOutputSpeech(speechText);

       return SpeechletResponse.newTellResponse(speech, card);
   }

Laden Sie Lambda-Funktionen in AWS hoch

Klicken Sie im Projektexplorer von Eclipse mit der rechten Maustaste auf HelloWorldSpeechlet.java und wählen Sie in den Amazon Web Services die Option ** Funktion in AWS Lambda hochladen **. (Klicken Sie unter Windows mit der rechten Maustaste auf das helloworld-Projekt, um es anzuzeigen.) d3c3474569fca6c150038ca66131edf4.png

Wählen Sie einen S3-Bucket oder eine S3-Rolle aus und fahren Sie mit dem Bildschirm fort, um den Upload der Lambda-Funktion abzuschließen.

Assoziieren Sie Alexa-Fähigkeiten aus Lambda-Funktionen

0293130e647ab290557dfb07e844b017.png

Wählen Sie im Lambda-Verwaltungsbildschirm der AWS-Konsole das zuvor hochgeladene Lambda aus und wählen Sie Wählen Sie unter Trigger hinzufügen die Option Alexa Skills Kit aus. Am unteren Bildschirmrand wird dann ein Formular zur Angabe der Alexa Skill Skill ID angezeigt.

Kehren Sie zum Bildschirm Alexa Developer Portal zurück Kopieren Sie die ** Skill ID ** und fügen Sie sie ein, beginnend mit "amzn1.ask.skill". Im Endpunktmenü. Zum Schluss drücken Sie oben rechts auf "Speichern", um den Vorgang abzuschließen.

Link Lambda funktioniert aus Alexa Fähigkeiten

3bbe8b050fef15a338b89bd90c5c7bb0.png

Als nächstes wird im Gegenteil die ARN, die mit "arn: aws: lambda:" oben rechts im Verwaltungsbildschirm der Lambda-Funktion beginnt, angezeigt. Fügen Sie es in das Formular ** "Standardregion" ** im Alexa Admin Portal-Endpunktmenü ein. Drücken Sie abschließend ** "Endpunkt speichern" ** und Sie können loslegen.

Führen Sie es tatsächlich in einem Test aus

e6206ad13a96d39351f8665750bca0b2.png

Gehen Sie im Alexa Admin Portal zum Menü ** "Test" ** Geben Sie "Begrüßen Sie Osaka mit Ihren Beispielfähigkeiten" ein. Wenn Alexa antwortet: "Oh, verdienst du Geld?", Bist du erfolgreich!

Danke für deine harte Arbeit!

Recommended Posts

Ich habe versucht, Alexa-Fähigkeiten mit Java zu erstellen
Ich habe versucht, eine Clova-Fähigkeit in Java zu erstellen
Ich habe versucht, neunundneunzig in Java auszugeben
Ich habe versucht, Metaprogrammierung mit Java
Ich habe versucht, die Firebase-Push-Benachrichtigung in Java zu implementieren
# 2 [Anmerkung] Ich habe versucht, neunundneunzig mit Java zu berechnen.
Ich habe versucht, eine Anmeldefunktion mit Java zu erstellen
Ich habe versucht, die Methode der gegenseitigen Teilung von Eugrid in Java zu implementieren
~ Ich habe jetzt versucht, funktionale Programmierung mit Java zu lernen ~
Ich habe versucht herauszufinden, was sich in Java 9 geändert hat
Ich habe versucht, mit dem Alexa Skills Kit (ASK) eine Echo-Fähigkeit von Amazon zu erstellen, die kratzte Informationen in Java anzeigt.
Ich habe versucht, mit Java zu interagieren
Ich habe versucht, JWT in Java zu verwenden
Ich habe versucht, das Java-Lernen zusammenzufassen (1)
Ich habe jetzt versucht, Java 8 zusammenzufassen
Ich habe versucht, mit Chocolatey eine Java8-Entwicklungsumgebung zu erstellen
Ich habe versucht, in Java von einer Zeichenfolge in einen LocalDate-Typ zu konvertieren
Ich habe versucht, Dapr in Java zu verwenden, um die Entwicklung von Mikroservices zu erleichtern
Ich habe einen RESAS-API-Client in Java erstellt
Ich habe versucht, die Elasticsearch-API in Java zu verwenden
Ich habe versucht, Java-Lambda-Ausdrücke zusammenzufassen
Ich habe das neue Yuan-Problem in Java ausprobiert
Ich habe versucht, eine einfache Karten-App in Android Studio zu erstellen
Ich habe versucht, Java-Anfänger so einzustellen, dass sie Tastenkombinationen in Eclipse verwenden
Ich habe versucht, eine Standardauthentifizierung mit Java durchzuführen
Ich habe versucht, polymorph in Nogizaka zu implementieren.
Ich habe versucht, die Sitzung in Rails zu organisieren
Java Ich habe versucht, einen einfachen Block zu brechen
Versuchen Sie, ein Bulletin Board in Java zu erstellen
Ich wollte (a == 1 && a == 2 && a == 3) in Java wahr machen
Ich habe versucht, eine LINE-Klon-App zu erstellen
rsync4j - Ich möchte rsync in Java berühren.
Erstellen Sie JSON in Java
Ich habe versucht, eine Anwendung in 2 Sprachen zu entwickeln
Ich habe versucht, den Block mit Java zu brechen (1)
[Azure] Ich habe versucht, eine Java-App für die Erstellung von kostenlosen Web-Apps zu erstellen. [Anfänger]
Versuchte Mastodons Toot- und Streaming-API in Java
Ich habe versucht, TCP / IP + BIO mit JAVA zu implementieren
[Java 11] Ich habe versucht, Java auszuführen, ohne mit Javac zu kompilieren
[Java] Ich habe versucht, Paizas B-Rang-Problem zu lösen
Ich habe versucht, SQS mit AWS Java SDK zu betreiben
Ich möchte ES2015 auch in Java verwenden! → (´ ・ ω ・ `)
So erstellen Sie einen Daten-URI (base64) in Java
Ich habe versucht, Sterling Sort mit Java Collector zu implementieren
[Java] Ich habe versucht, die Yahoo API-Produktsuche zu implementieren
Ich habe versucht, die erweiterte for-Anweisung in Java zu verwenden
Ich habe versucht, Java Silver in 2 Wochen zu bestehen, ohne Java zu kennen
Ich habe ein Roulette in Java gemacht.
Ich habe Drools (Java, InputStream) ausprobiert.
Erstellen Sie Azure-Funktionen in Java
Ich habe versucht, Java REPL zu verwenden
Ich habe versucht, yum-cron zu verifizieren
Ich habe versucht, mit Java und Spring eine Funktion / einen Bildschirm für den Administrator einer Einkaufsseite zu erstellen
Ich habe versucht, Effective Java 3rd Edition "fast alle Kapitel" in "leicht lesbarem Japanisch" zu erklären.
[Azure] Ich habe versucht, eine kostenlose Java-App zu erstellen ~ Mit FTP verbinden ~ [Anfänger]
Ich habe versucht, innerhalb von 3 Monaten einen Antrag von unerfahren zu stellen