¿Cómo está compuesto una Alexa Skill?
Estos cuentan de dos componentes: Skill Interface y el Skill Service.
En este articulo nos centraremos en el primero, la cual se define como la interfaz de la habilidad.
1. Ing. Vicente Guzmán
@LucioMSP
Conceptos Generales [Construyendo mi Alexa Skill]
En mi artículo anterior (Hi Alexa [Skills]) vimos una introducción sobre el servicio de voz de Amazon y las
“aplicaciones (habilidades)” que se le pueden integrar, estas mejormente conocidas como Skills.
Si bien ya sabemos que podemos hacer que Alexa pueda ejecutar cualquier tipo de tarea a través de
comandos de voz, hay que saber como es que funciona dicho proceso.
Para poder desarrollar una Skill es necesario el Alexa Skill Kit (ASK), el cual recordemos que es una
colección de APIs y herramientas, que incluye el reconocimiento de voz, la codificación de texto a voz y el
procesamiento del lenguaje natural.
Ahora bien, ¿cómo está compuesto una Alexa Skill?
Los skills de Alexa constan de dos componentes principales: Skill Interface y el Skill Service.
En este articulo nos centraremos en el primero, la cual se define como la interfaz de la habilidad o como
me gusta definirlo, la parte del “cliente”, esto usando la Alexa Developer Console.
2. Ing. Vicente Guzmán
@LucioMSP
Una vez que accedemos con nuestra cuenta podemos iniciar a crear nuestras skills. Si ya hemos generado
una que otra, podremos ver el listado de estas con cierta información, así como con acciones directas
sobre algunas secciones como las analíticas o el poder editar la misma o eliminarla. Cabe mencionar que
cuando publiquemos una skill, esta aparecerá por partida doble, pero con distinto estado, la de desarrollo
(In Development) y la que está publicada (Live), en la "tienda de Alexa skills" de Amazon.
Manos a la obra
Al comenzar a crear nuestro skill se nos solicitan tres cosas: el nombre, idioma y el tipo.
Puedes consultar los distintos tipos aquí.
Los tipos disponibles dependen del idioma por defecto que seleccionemos. El idioma como bien saben
será el “Spanish (MX)” y el tipo que elegiremos para este tutorial será "Custom". Una vez generado, se
nos mostrará una ventana que nos dará acceso a todo lo necesario para el desarrollo de la skill.
Siendo sincero, la mayoría del tiempo nos centraremos en la pestaña "Build" de la consola.
3. Ing. Vicente Guzmán
@LucioMSP
Siguiendo el "Skill builder checklist" del lado derecho completaremos de manera rápida lo mínimo
necesario para tener un skill listo. Para esto, enfoquémonos en el lado izquierdo, aquí existen dos partes
básicas pero relevantes: el interaction model del skill y el endpoint, el que indica el server que gestionará
las peticiones al skill.
Recordemos, en este articulo trabajaremos solo en la primera parte, así como de todos sus descendientes.
Interaction Model
El interaction model consta de 4 partes, pero dos “obligatorias”:
• El nombre de invocación de la Skill.
• El conjunto de Intents (acciones) que deben corresponder con las peticiones de los clientes.
Nombre de Invocación
Este es de suma importancia, puesto que es el cual el usuario use para comenzar a interactuar con nuestra
skill y aunque parezca sencillo, debe cumplir una serie de requisitos. Por eso antes de querer tirar código
se recomienda demasiado el hacer una buena elección del nombre del skill que se quiere desarrollar,
debido a que referente a esto es que el usuario podrá invocarlo, el cual como sabemos ejecuta un intent
de una sola vez, por ejemplo, "Alexa, abre frases de películas".
4. Ing. Vicente Guzmán
@LucioMSP
Intents
Un intent es en pocas palabras “lo que el usuario quiere que haga la skill cuando se activa por una
determinada petición”. Ejemplo: Dime una frase de película.
Si nos adentramos más detalladamente, un intent está compuesto de dos partes: los utterances
(sentencias) que van a servir para invocarlo y los slots (argumentos) que puede tener, estos últimos son
opcionales.
A tener en cuenta:
• Un mismo intent no puede contener dos utterances repetidos.
• Los utterance los usa Alexa para inferir que intent corresponde a lo que desea hacer el usuario.
Nota: Cuando se manda a revisión, el proceso de certificación es una de las cosas que validan, en caso de
tener errores, nos harán saber a través de un correo y tendremos que corregirlo (experiencia propia).
Intents obligatorios
Al crear un nuevo skill, este conlleva 4 Intents obligatorios y predefinidos ya por Alexa, los cuales hay que
considerar puesto que son de suma importancia, estos se encuentran debajo de "Built-in Intents".
La verdad es fácil de comprender, debido a que no cuentan con slots, estos se pueden interpretar de la
siguiente manera:
• CancelIntent – se usa para cancelar alguna interacción en proceso
• HelpIntent – es utilizado para solicitar ayuda al skill en proceso
• StopIntent – normalmente se centra en detener por completo el skill
• NavigateHomeIntent – este se podría entender como un "regresa al inicio"
5. Ing. Vicente Guzmán
@LucioMSP
Para cada uno de estos, es necesario declararle un/os utterances para su invocación.
Custom Intents
Estos intents serán los que definan realmente los casos de uso que queremos cubrir en nuestro skill. Para
este ejemplo solo se necesita uno: solicitar las frases de las películas.
Al crear un intent tenemos la opción de hacer uso uno existente de la librería de Alexa, como los built-in
intent que eran obligatorios, o uno custom. Para este tutorial no hay uno existente que nos sirva.
El nombre del intent debe ser explicativo de la acción correspondiente que se quiere cubrir. Llamémosle
"FraseIntent", el cual servirá para cubrir la petición de las frases. Una vez creado, lo único que tenemos
que añadir son los utterance para ser invocado.
6. Ing. Vicente Guzmán
@LucioMSP
Hay que pensar bien los utterances para el intent que se agregaran, puesto que entre más se añadan
mejor será la identificación. Aquí les dejo una guía de buenas prácticas por idioma.
Build Model
En la parte superior se encuentra el botón que nos permitirá construir nuestro modelo, presionémoslo.
Cabe destacar que el modelo que se genera es un JSON con toda la información que hemos ido
construyendo con la consola. Susodicho se puede modificar una vez generado.
7. Ing. Vicente Guzmán
@LucioMSP
De momento es todo en esta primera entrega, en el siguiente articulo veremos como hacer la parte server
utilizando AWS Lambda y el cómo vincular este con nuestro skill para poder hacer una primera prueba
completa de su funcionamiento.
Mas información: Amazon Developer | Alexa Skills Kit