Come creare una Skill Alexa con Xenioo (Parte 1)

voice chatbots

La naturale evoluzione dei chatbot conversazionali è con tutta probabilità la trasformazioni verso veri e propri assistenti virtuali vocali.

Amazon Alexa, Google Assistant, Duplex ed altre tecnologie emergenti, si integreranno perfettamente all’interno dei nostri dispositivi, consentendo esperienze di conversazione sempre più simili a quelle di solito affrontate con persone reali.

Il “business della voce” è un trend in crescita e molte grosse realtà, a partire da Bezos di Amazon, stanno investendo molto nel mercato degli applicativi vocali.

Inoltre molti nostri clienti ci hanno chiesto di rendere disponibile questo tipo di integrazione all’interno di Xenioo.

Non potevamo non accettare questa sfida.

Con Xenioo è ora possibile progettare, costruire e pubblicare una Skill Alexa semplicemente creando un chatbot Xenioo come faresti per qualsiasi dei canali già disponibili.

In questo articolo andremo a vedere nel dettaglio esattamente come costruire una Skill Alexa capace di riprodurre la tua musica personale indipendentemente da dove si trova il tuo dispositivo.

Fantastico, vero? Continua a leggere.

Se ti interessa scoprire come costruire una Action Google Assistant, Xenioo supporta anche questo. Dettagli nel nostro articolo dedicato.

Creaiamo il Developer Account di Alexa

Ogni Skill di Alexa deve essere creata all’interno di un account di sviluppatore Alexa (Alexa Development Account).

La creazione di questo account è gratuita e puoi utilizzare, se preferisci, lo stesso account che già utilizzi per gli acquisti su Amazon.

Ogni Skill in stato di test viene automaticamente distribuita su tutti i dispositivi associati al tuo account di sviluppo. E’ quindi una buona idea utilizzare lo stesso account che stai utilizzando sui tuoi dispositivi.

Tieni presente che se desideri aggiornare lo stato del tuo account su ogni dispositivo, sarà necessario procedere prima alla de-registrazione e successivamente alla registrazione, come spiegato nella documentazione tecnica di Alexa.

Dopo che l’account di sviluppo è stato impostato, sei pronto per creare la tua prima Skill Alexa.

Esistono una moltitudine di templates che ti permettono di creare Skills con uno sforzo minimo e molto rapidamente, ma con il limite di lasciare poco controllo su quelle che la Skill potrà fare.

Per il nostro esempio andremo a selezionare una Skill completamente personalizzata (“Custom”).

Successivamente, andremo a selezionare che intendiamo cominciare da zero (“Start from scratch”), proseguendo nella sezione Builder.

Dal momento che vogliamo costruire una Skill che faccia streaming audio, andremo a cliccare sul bottone “Interfaces” per poi abilitare l’interfaccia “Audio Player”.

Perfetto! Per ora non ci serve più niente dal pannello sviluppatore di Alexa. Possiamo quindi procedere nella configurazione del servizio di streaming.

Configuriamo il servizio di Streaming

Nel nostro esempio non vogliamo usare un servizio di streaming generico, come tanti disponibili online.

Ci interessa invece ascoltare musica dalla nostra collezione musicale che abbiamo pazientemente creato e curato nel corso degli anni e che si trova depositata su uno o più dischi del nosto network casalingo.

Per fare tutto questo, dobbiamo integrare Xenioo con un altro eccezionale servizio: Epicentric.

Epicentric è un servizio online che ti consente di caricare la tua musica personale per ascoltarla ovunque ti trovi.

Inoltre ti permette di creare playlist multiple ed avanzata, basate su mappe mentali e che verranno automaticamente gestite dalla intelligenza artificiale della piattaforma.

Esattamente come abbiamo fatto per l’account Alexa, dovremo procedere a creare un account anche su Epicentric. E’ gratuito e dopo una veloce introduzione per capire come utilizzarlo, saremo pronti per procedere con la creazione della nostra Skill.

La conversazione con Alexa

Alexa è costruito attorno al concetto di interazione conversazionale libera: la conversazione tra l’utente ed Alexa (e quindi il tuo chatbot) non può avere veri flussi predefiniti.

Infatti un utente potrebbe dire qualsiasi cosa, in qualsiasi momento e con diversi livelli di informazioni presenti.

Vediamo un esempio qui sotto:

Seppure estramente semplice, l’esempio di conversazione sopra riportato rappresenta il perfetto scambio utente – Alexa: l’utente esprime esattamente la sua richiesta e la Skill risponde di conseguenza.

Purtroppo non possiamo aspettarci che tutte le conversazioni siano cosi lineari e precise. Anzi, molto spesso il tipo di conversazione che avvine è più simile all’esempio sottostante:

Come puoi vedere, l’utente non stà dando tutte le informazioni alla prima interazione, e questo porta la Skill a dover riformulare alcune domande per poter arrivare ad ottenere tutte le informazioni necessarie a completare la richiesta.

Le informazioni richieste dalla Skill sono chiamate Slots e possono essere paragonate a quelle che in Xenioo sono le Entità NLP e Variabili durante un conversazione standard con un chatbot.

Creiamo il chatbot vocale

Con le informazioni che abbiamo appreso nel paragrafo precedente, possiamo ora proseguire finalmente nella creazione del nostro chatbot per Alexa.

Non sarà molto diverso dalla creazione di un chatbot conversazionale standard: dal momento che, come abbiamo detto precedentemente, non ci sarà un vero e proprio flusso guidato, possiamo andare direttamente nella sezione AI per configurare tutta la NLP necessario per guidare la nostra Skill.

All’interno della sezione AI di Xenioo, andremo a definire tutti gli intenti e le espressioni che saranno usate per creare il modello conversazionale della Skill, definendo allo stesso tempo come verrà eseguito il flusso.

In base al tipo di Skill che si sta creando, potrebbe essere necessario implementare degli specifici intenti.

Per la nostra Skill di streaming, per esempio, è necessario implementare almeno due tipi di intenti specifici: Pause e Resume.

Oltre questi due, obbligatori, potrai poi creare quanti più intenti ti servono per far gestire la conversazione ad Alexa nel modo desiderato.

Qualsiasi cosa venga detto ad Alexa verrà processato dagli intenti definiti e passato a Xenioo, che a sua volta redirigerà il flusso alle interazioni configurate.

Lo schema sottostante illustra cosa effettivamente accade dietro le quinte:

Xenioo utilizza l’ Alexa SSML in ogni testo che è spedito indietro all’utente. Sei quindi libero di poter usare ogni interruzione, sospiro o qualsiasi altro tag supportato per ottenere specifici effetti vocali.

Una volta che hai creato i tuoi intenti, ricordati di collegarli alle interazioni del chatbot. Infatti qualsiasi cosa detta dall’utente attiverà uno degli intenti esistenti e solo gli intenti che sono collegati ad una interazione esistente saranno pubblicati nella Skill.

Inoltre, se vuoi implementare o sovrascrivere uno degli intenti predefiniti in Alexa (come per esempio il Resume oppure Pause), ricorda di specificare la chiave Alexa nel campo Key dell’intento, come mostrato nell’immagine sottostante.

Pubblichiamo il chabot in una Skill Alexa

Siamo arrivati al punto in cui finalmente possiamo pubblicare il nostro chatbot nella nostra prima Skill Alexa e cominciare a fare dei veri test sui dispositivi.

Possiamo farlo come sempre cliccando sul bottone Publish dalla sezione Build del chatbot.

Nella sezione dei canali, selezioniamo Alexa e clicchiamo sul bottone di login con logo Amazon. Seguite la procedura che vi porterà a connettere il vostro profilo Amazon con Xenioo: è in questo modo che Xenioo potrà pubblicare la vostra Skill per voi.

Dopo aver confermato il collegamento tra gli account ed i permessi richiesti, possiamo continuare con la configurazione della pubblicazione della Skill.

Nella sezione Deploy dovrete selezionare la Skill da pubblicare, la localizzazione ed il testo per l’attivazione.

Il testo di attivazione sarà usato da Alexa per attivare la tua skill, quindi cerca di utilizzare una parola o una frase che isa semplice da ripetere e che non possa andare in conflitto che le frasi di default di Alexa.

La configurazione più importante in questa sezione è l’ Hook Url: copiate questo URL ed incollatelo nella configurazione dell’endpoint nel pannello di Alexa per skill che si sta configurando.

Tieni presente che Xenioo aggiornerà unicamente l’ Invocation Model della Skill, dal momenteo che è ciò che permette la gestione della conversazione. Xenioo non andrà mai a sovrascrivere nessun settaggio configurato dal pannello nativo di configurazione della Skill Alexa.

Xenioo è il “middleware back-end” perfetto e la piattaforma basata su intelligenza artificiale ideale per progettare anche le skill più compesse. E lo fa decisamente bene.

Una volta che tutto è stato configurato correttamente, cliccate Publish e la Skill sarà pronta per essere testata dal dispositivo.

Nel nostro prossimo articolo, vedremo come funzionano nel dettaglio lo Streaming, Account Linking (collegamento degli account) e Device State Management (gestione dello stato del dispositivo).