Читать книгу Alexa. Desarrollo de aplicaciones IoT para Arduino y ESP8266 - Tomás Domínguez Mínguez - Страница 11
3.2 MODELO DE INTERACCIÓN
ОглавлениеUn modelo de interacción establece la estructura de la conversación que Alexa mantendrá con el usuario en el contexto de una habilidad. Se compone de los siguientes elementos principales:
• Intenciones (intents). Son las acciones que el usuario puede llegar a solicitar, cada una de las cuales corresponde (como indica el nombre de este componente) a una intención específica. Por ejemplo, una habilidad que controlara la luz de una habitación podría tener tres intenciones: las que atienden las órdenes para encenderla o apagarla, y una tercera que permita preguntar por el estado en el que se encuentra (encendida o apagada).
• Expresiones de muestra (Sample Utterances). Son las palabras o frases utilizadas por los usuarios para invocar una intención. Estas expresiones deben abarcar todas las formas posibles de solicitar la ejecución de una determinada acción. Cuantas más haya y más variadas sean, mayor facilidad tendrá Alexa para saber a qué intención corresponden. Por ejemplo, para encender la televisión, se podría decir: “pon la televisión” o “enciende la tele”. Ambas expresiones deberían invocar la misma intención, es decir, realizar la misma acción: encender la televisión.
Es muy difícil introducir todas las variaciones posibles de expresiones empleadas para solicitar las acciones. Por eso, Alexa dispone de algoritmos de inteligencia artificial que le permiten generalizar dichas frases. Aplicando estos algoritmos, podrá saber si lo que ha dicho el usuario “encaja” con alguna de las expresiones de ejemplo, aunque no coincida exactamente con ella. En cualquier caso, cuantas más declaraciones de ejemplo tenga una intención, más probabilidades habrá de que se invoque la más adecuada.
• Tipos de slots. Las expresiones de los usuarios representan texto libre difícil de procesar por un programa informático, que es el que realmente tiene que realizar las acciones. Por ese motivo, es necesario extraer la información relevante de dichas expresiones (lo que vulgarmente se conoce separar la paja del grano), función que realizan los slots. Estos componentes pueden verse como variables, que recogen la información proporcionada como entrada al programa encargado de realizar la acción solicitada.
Al igual que cada variable es de un determinado tipo, los slots también pertenecen a un tipo de slot (slot type). Por ejemplo, si un usuario dijera: “Alexa, enciende la luz de la sala”, la palabra “sala” podría ser el valor de un tipo de slot que sirviera para identificar la habitación en la que está situada la luz. Ese valor sería el utilizado por el programa encargado de atender la petición para saber a qué dispositivo (en este caso, el situado en la sala) tiene que dirigir la orden.
• Modelo de diálogo. Este último componente, que es opcional, identifica la conversación que sería necesario mantener con el usuario para recopilar toda la información requerida para invocar una intención. Si este dijera, por ejemplo: “Enciende la luz” y hubiera varias luces en la casa, para poder llevar a cabo esta orden habría que preguntarle en qué habitación se encuentra. Este diálogo puede ser delegado en Alexa, que se encargaría de hacer las preguntas y recoger la información necesaria de las respuestas dadas por el usuario, simplificando el código de la habilidad. Siguiendo con el ejemplo de la luz, Alexa preguntaría: “¿En qué habitación está la luz que desea encender?”. Si la respuesta fuera: “La de la cocina”, recogería el valor del slot que contiene la habitación (en este caso “cocina”) de la misma forma que si el usuario hubiera dicho en un primer momento: “Enciende la luz de la cocina”.
En un próximo capítulo estudiará con más detalle todos estos conceptos mientras practica con ellos desarrollando una habilidad que le permitirá “hablar” con una máquina de café para que se lo prepare a su gusto.