Sapevate che Alexa di Amazon offre un'interfaccia a mani libere che vi permette di usare la vostra voce per creare molte cose creative? Queste funzionalità integrate sono chiamate "abilità". Per Amazonle capacità di Alexa includono la riproduzione di musica da più fornitori, la risposta a domande, le previsioni del tempo e l'interrogazione di Wikipedia".
In questo post, costruiremo una semplice skill chiamata "My Skill" utilizzando SnapLogic come back-end. Questo semplice esercizio che utilizza le pipeline di SnapLogic e i servizi di Amazon dimostrerà come sia possibile integrare Alexa nelle applicazioni e nei dati.
Questa abilità sarà in grado di gestire due intenti: "Hello World" e "Get Tweet about Person". Nell'intento "Hello World", Alexa risponderà semplicemente con un messaggio di congratulazioni costruito all'interno di una pipeline SnapLogic. Per l'intento "Get Tweet about Person", Alexa chiederà alla pipeline SnapLogic di trovare e segnalare un tweet relativo a una persona specificata dall'utente. Di seguito è riportato il processo passo-passo di come abbiamo fatto.
Per completare questa Alexa Skill, si lavorerà nella piattaforma SnapLogic e nella Amazon Developer Console per creare tre componenti principali: SnapLogic Pipeline, Alexa Skill Interface e Lambda Function. Non è nemmeno necessario avere un Echo per testarlo, basta la Console per sviluppatori di Amazon.
Creare una pipeline SnapLogic
Per ora, ci concentreremo solo sulla creazione di un'abilità con l'intento "Hello World". Costruiremo "Get Tweet about Person" più avanti. La pipeline SnapLogic non riceve alcun parametro e produce un messaggio di "congratulazioni" pronunciato da Alexa. Questo intento necessita di un solo Snap per generare il messaggio di congratulazioni. È possibile utilizzare un generatore JSON, un generatore CSV o uno Snap mapper. È possibile scaricare questa pipeline SnapLogic qui.
Per prima cosa, creare un task, facendo clic sull'icona del calendario nella barra dei menu, in modo che questa pipeline possa essere richiamata con un'API REST da Lambda. Si può scegliere un task Triggered o Ultra. Per questa esercitazione, utilizzeremo il task Ultra, in quanto comporta un tempo di risposta più breve.
Quindi, andare alla pagina di SnapLogic Manager per vedere i dettagli del task. Sono necessarie le informazioni sull'endpoint e sull'autorizzazione, in modo che Lambda possa eseguire il task.
Creazione dell'interfaccia dell'abilità Alexa
Ora siamo pronti per Alexa. Andare alla Console per gli sviluppatori di Amazone scegliere la scheda Alexa.
Fare clic su "Inizia" sotto "Alexa Skills Kit", quindi su "Aggiungi una nuova abilità". Compilare il nome dell'abilità e il nome dell'invocazione che si desidera utilizzare. Il nome dell'abilità è il nome che verrà visualizzato nell'app Alexa. Il nome dell'invocazione è la fase che si utilizzerà per avviare l'abilità.
Il passo successivo è la progettazione del modello di interazione. Fare clic su "AGGIUNGI +" nella sezione degli intenti e specificare il nome dell'intento. Un intento può essere una domanda o un comando. Nella maggior parte degli scenari, un intento sarà mappato con un task SnapLogic.
Aggiungere alcuni esempi di enunciati. Non è necessario pronunciare frasi esatte per utilizzare l'abilità, poiché Amazon fornisce un buon modello NLP abbastanza flessibile. Nota: nel nostro intento "Hello World", non è necessario utilizzare uno slot. (Parleremo di slot più avanti, nella lezione sull'intento "Ottieni Tweet su una persona").
Fare clic su "Build Model" (Costruisci modello) e tenere presente che potrebbero essere necessari alcuni minuti. Quindi, passare alla fase di configurazione per specificare l'endpoint ARN della Lambda Function, che verrà creata successivamente.
Creare una funzione Lambda
Accedere alla console di sviluppo Lambda e fare clic su "Crea funzione". Selezionare "alexa-skill-kit-sdk-factskill".
Compilate le informazioni di base come da schermata sottostante e fate clic su "Crea funzione".
Ora è possibile vedere l'endpoint ARN necessario per la configurazione di Alexa di cui sopra.
Assicurarsi che il kit di abilità Alexa sia incluso. Se non lo è, aggiungerlo dal pannello di sinistra.
Quindi, sostituire il contenuto JavaScript con il nostro modello SnapLogic Lambda per Alexa Skill, che si trova qui qui. È inoltre possibile scaricare il codice completo di questa skill qui.
Compilare le informazioni sulle competenze.
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.
Congratulazioni, la vostra prima Alexa Skill è completa!
Prova di abilità
È possibile testare l'abilità in Alexa Development Console, nell'app Amazon Shopping o in Amazon Echo. Per questo esercizio, testeremo nella Console di sviluppo di Alexa.
Andare alla sezione "Test", fare clic su "Vai al simulatore di test". È possibile digitare o pronunciare la richiesta. Le vostre conversazioni con Alexa saranno mostrate sul pannello di sinistra. Sul lato destro, la richiesta dell'interfaccia Alexa Skill in formato json sarà visualizzata nella metà sinistra e la risposta di Lambda nella metà destra. È possibile fare clic sul pulsante play per ascoltare la voce di Alexa.
Creare l'intento "Ottieni un tweet sulla persona".
Si inizia con la seguente pipeline. Questa pipeline contiene tre snap: una query snap dal Twitter Snap Pack, un mapper per estrarre nome utente e testo dalla risposta di Twitter e l'ultimo mapper per costruire la frase che Alexa leggerà. È possibile scaricare questa pipeline SnapLogic qui.
Nel Query Snap, la parola di query sarà il nome della persona che si dice ad Alexa. Per il task Ultra, i parametri (slot) di Alexa saranno inseriti nell'oggetto "query". Per il task Triggered, gli slot saranno passati come parametri della pipeline. Nota: è necessario aggiungere il proprio account Twitter a questo Snap.
Nel primo Snap Mapper, estraiamo il nome utente e il testo che vogliamo far leggere ad Alexa. Potrebbe essere necessario prestare attenzione alla risposta API di una terza parte. La risposta potrebbe contenere testo illeggibile che sarà necessario rimuovere o trasformare in testo leggibile. Ad esempio, l'API di Twitter può inviare un link invece del testo completo se il tweet è molto lungo. In questo caso, si può usare il linguaggio di espressione di SnapLogic per gestirlo.
Nell'ultimo snap del mapper, possiamo costruire la frase che invieremo ad Alexa. È sufficiente usare "+" per concatenare le stringhe, ma è buona norma avvolgere la stringa con "JSON.stringify" per assicurarsi che la risposta sia una stringa json valida.
Quindi è possibile avviare un'attività Ultra. Il passo successivo consiste nel creare l'intento "Get Tweet about Person" nel modello di interazione Alexa e aggiungere un gestore di intenti nella funzione Lambda.
Andare al Modello di interazione di Alexa, creare un intento, quindi specificare gli enunciati. Avremo bisogno di uno slot per catturare il nome di una persona, che sarà passato alla nostra Lambda Function. È possibile specificare lo slot utilizzando le parentesi graffe, ad esempio {person}. Nel pannello di destra, assicurarsi che "REG" sia selezionato. Significa che questo slot è richiesto e Alexa chiederà se non può ottenere le informazioni per gli slot richiesti. Per gli slot richiesti, è necessario specificare una richiesta e un esempio di pronuncia con cui si desidera che Alexa risponda. Quando tutto è a posto, procedere con la creazione del modello.
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.
Ed ecco fatto. Avete creato la vostra prima skill utilizzando una pipeline SnapLogic e Alexa, un altro modo per evidenziare la potenza unica dell'architettura SnapLogic.
Forse un giorno si potrà chiedere ad Alexa "Alexa, prendi i dati da Sumo Logic e inviali al nostro data lake". Alexa attiverà quindi la pipeline che esegue l'integrazione dei dati e invierà un'e-mail di conferma al completamento dell'attività. Bello, no? Quello che farete in seguito dipende da voi. Le possibilità sono infinite.
Quale sarà la vostra prima Alexa Skill?