Las alexa skills son como las apps para los móviles, pero para Amazon Echo, es decir orientadas a voz en lugar de a pantalla táctil.

Se lanzó inicialmente en USA, UK y Alemania y ahora se está extendiendo a otros paises, incluido España. Aunque lleva ya unos años, yo creo que es un sector con un potencial enorme y en el que todavía queda mucho por desarrollar.

Diseñar una skill es tan fácil o tan difícil como decidir qué tipo de conversación te gustaría tener con un robot. Ejemplos: jugar a algo, que te cuenten las noticias, que te guíe al cocinar, sonidos raros, bonitos, curiosos …

Hasta donde yo he visto, que llevo más de un año en este tema, la mayor parte de las skills tienen conversaciones muy robóticas: sencillas y poco flexibles. Algunas son poco más que adaptaciones de los ejemplos publicados por Amazon.

¿Qué cosas se pueden añadir a una skill?

Nota: todo son ejemplos basados en mi experiencia directa.

Inicialmente, seguro que estarás pensando en diseñar una skill en tu idioma y para usuarios que vivan en tu pais. Eso está bien, hay que empezar por algún sitio.

Afortunadamente, no es difícil extender una skill a otros idiomas o países.

Ejemplo: tienes una skill en español para España y la quieres extender a español para México […]

Es importante tener una mecanismo para guardar información de sesión para no tener que preguntarle al usuario lo mismo más de una vez. Algunos ejemplos:

Si es un juego, se puede querer guardar el estado, si ya ha comenzado o no, si el tiempo se ha cumplido …

Si es un juego de palabras encadenadas, como el mío, se deben guardar las palabras ya utilizadas por el usuario y por Alexa para que no se repitan.

‘alexa-sdk’ implementa esta funcionalidad de una manera muy sencilla […]

Las skills necesitan usar datos que se guardan en el back-end. Inicialmente, se puede usar una variable en la funcion node.js, pero enseguida surgirán otras necesidades. Yo uso AWS como back-end y DynamoDB como base de datos.

Algunos ejemplos: Query para recuperar un registro de una tabla con los campos: lang, word […]

La interacción con Alexa siempre la inicia el usuario, las skills son reactivas y las funciones del back-end realizan siempre estos pasos:

Recoger y validar las estructuras event y context que contienen la entrada proporcionada por el usuario, información del dispositivo y otra información como la fecha y hora de la interacción, identificadores de sesión, de usuario y otros.

Producir la respuesta que se le enviará al usuario

Enviar la respuesta

Está claro que el tiempo de respuesta es crítico y se debe minimizar pero en ocasiones puede ser necesario realizar un procesamiento que lleve varios segundos […]

Durante el desarrollo de una skill se hacen pruebas y cuando lo lanzas estás (casi) seguro de que todo funciona bien. La informática no es una ciencia exacta y los sistemas dejan de funcionar sin saber bien por qué. Por eso es bueno tener un sistema de monitorización […]

Una vez que la skill esté funcionando de manera estable, no hará falta que estemos mirando los logs cada rato, asumiremos que todo funciona bien. Pero como decía en otro post, la informática no es una ciencia exacta y los sistemas dejan de funcionar a veces sin razón aparente […]

Todos hemos leído sobre el IoT (Internet of Things, el Internet de las cosas). No es más que conectar aparatos que no van a ser manejados por humanos, es decir, que funcionan solos. Por ejemplos, sensores que activan la calefacción o el aire acondicionado a una determinada temperatura. También pueden ser sensores de humedad que activan el riego en los campos cuando hace falta o sensores que avisan al repartidor cuando la máquina expendedora se va a quedar sin latas de refresco. El uso del IoT está creciendo mucho y las posibles  aplicaciones son muy numerosas […]

Se puede solicitar al usuario que autorice a una Alexa skill a utilizar ciertos datos. Para ello, se debe marcar en la pestaña “Permissions” los datos que se utilizarán.

[…]

En algunas skills, como mi Baúl de Noticias, se utiliza almacenamiento intermedio que no necesita estar en Base de datos.

Baúl de Noticias lee artículos de varios RSS, que se generan en https://blaya.club/NewsChest utilizando WordPress. Os voy a contar cómo la solución ha evolucionado desde la más básica hasta la actual con la que estoy bastante contento.

[…]