Entrando en el mundo de las aplicaciones (Skills o Actions) para Alexa y/o Google Assistants, se nos plantea el reto de reutilizar, en todo lo posible, los elementos que forman parte de nuestra aplicación, la lógica de negocio, el NLP, etc.
La aplicación de un asistente es, básicamente una API que implementa una lógica de negocio junto con un servicio de procesamiento de lenguaje natural o NLP (Natural Language Processing). Alexa y Google Assistants se encargan de convertir nuestras palabras en texto para que podamos implementar nuestros diálogos con la funcionalidad necesaria para que nuestra aplicación interactúe con los usuarios.
La arquitectura propuesto por Alexa para que implementemos una Skills se basa en utilizar un modelo de interacción donde podemos definir todos los Intents (intenciones) junto con los Slots (entidades) extraídas de las frases del usuario. Este es el proceso más básico, ya que existen otras funcionalidades para implementar diálogos y validaciones.
Con estos Intents y Slots, Alexa hace una petición POST a un EndPoint donde implementamos nuestra lógica de negocio y devolvemos la respuesta para que Alexa se la entregue al usuario.
La arquitectura de Google Assistants es muy similar a la de Alexa, una Action se implementa sobre la base de Intents y Entities que se definen en la herramienta Dialogflow de Google.
A nivel de dispositivo está claro que no vamos a reutilizar y tampoco vamos a necesitar implementar ningún servicio de Speech to Text, ya que de esto se encarga el dispositivo.
La lógica de negocio la podemos tener en una API que implemente la especificación de Alexa y Google para recibir y responder ante una petición de un usuario. Hay que tener en cuenta que Alexa y Google hablan diferentes idiomas y que el código que procesa la petición y el código que responde al asistente no pueden ser el mismo, pero si pueden utilizar la misma lógica de negocio.
Dialogflow de Google permite, de una forma sencilla, deshabilitar o, realmente, no hacer ningún tipo de procesamiento del lenguaje y enviar todo el texto del Speech del usuario al Webhook definido en el servicio. Básicamente nos creamos un único Intent vacío con las llamadas al Webhook activadas.
Alexa no lo tiene del todo claro. Han deprecado un elemento de configuración (AMAZON.Literal) que nos permitía no hacer ningún tipo de procesamiento de lenguaje y pasar todo el texto al Endpoint. Aún así, es posible implementar un Intent que procese cualquier frase y que envíe el texto al Endpoint usando un Slot personalizado.
Nuestra lógica de negocio junto con el procesamiento de lenguaje natural (NLP), sí que se puede reutilizar.No tiene que ser al 100% (porque seguro que podemos hacer uso de las capacidades especiales de cada asistente), pero sí en la medida en que nos permita interactuar con nuestra capa de negocio y/o con nuestros sistemas o aplicaciones.
Este sitio web utiliza cookies para que tengas la mejor experiencia de usuario. Si continuas navegando, estás dando tu consentimiento para aceptar las cookies y también nuestra política de cookies (esperemos que no te empaches con tanta cookie 😊)