Está en la página 1de 4

Diseño de un sistema conversacional, nivel

prototipo con Google Actions


Bienvenido(a), si estás en este punto tienen un interés genuino de iniciar el desarrollo de
una solución soportada con un agente conversacional. Felicitaciones, espero que este
articulo ayude a llevar a un nivel de prototipo la solución planteada.

Para iniciar es importante contextualizar


conceptos mínimos que facilitaran el diseño
en pasos posteriores, ¡debemos construir un
lenguaje común!

El primer concepto clave es definir a un


agente conversacional, también llamado
sistema de diálogo, como un programa que
conversa con las personas a través del
lenguaje natural, funcionalmente esta
interacción se puede realizar de dos formas,
voz y texto, al ser un medio digital cabe la posibilidad también de envío de imágenes,
botones, hipervínculos e inclusive video, mientras existe la interacción, esto dependerá de
la creatividad que se le aplique a la solución. El medio utilizado son pantallas (móvil, tableta,
computador o un televisor) como ayuda audiovisual para complementar la conversación.

La construcción desde cero de un sistema conversacional es una tarea compleja que


requiere un equipo interdisciplinario que en la realiadad no es fácil de conformar, por lo
menos deben existir los siguientes perfiles: lingüistas, especialistas en inteligencia artificial,
expertos en manejo de datos no estructurados, programadores e ingenieros que tengan
conocimiento profundo de procesamiento digital de señal, y adicional al equipo humano
calificado, se hace necesario tener datos, muchos datos en idiomas y dialectos que ayudan
a implemetar los corpus que entrenaran al sistema implementado, sin olvidar la disponibiliad
de las maquinas para procesarlos.

Sin embargo, a hoy existen compañías tecnológicas que han realizado este esfuerzo y que
ofrecen disponiblidad de frameworks donde se puede implementar soluciones optimizando
tiempo de desarrollo con plataformas robustas en constante actualización, dejando solo
para preocuparnos del diseño de la solución, realmente sería una mala práctica no utilizar
estas herramientas.

Para iniciar con el diseño, el foco principal es la creación del flujo de la conversación, y de
la cual de forma innata somos expertos, solo debemos ser conscientes de las
características que la componen.

Una conversación se compone de turnos de palabra que se dan de forma consecutiva y


que alternan las opiniones de los interlocutores. En el caso de que dos personas mantengan
una conversación, el interlocutor A quiere expresar algo, el interlocutor B le responde, luego
el interlocutor A vuelve a interactuar, y así sucesivamente, es clave poder respetar los
momentos con el fin de poder capturar la información completa en doble vía.
En el dialogo que se diseñe, se debe mantener la interacción de turnos de palabra y al
mismo tiempo ir capturando la información necesaria para satisfacer la conversación, esta
captura de información se denota como “Entidades” o variables clave en la conversación,
después de obtenerla el siguiente paso es crear en el dialogo un punto de coincidencia que
no es mas que el parafraseo de las variables capturadas como punto de confirmación.

Ahora, cuando iniciamos a interactuar con los diálogos debemos tener en cuenta que la
conversación tiene un contexto origen (es decir de donde viene la conversación) y un
contexto de salida (que quiero hacer con las “Entidades” o variables capturadas), es
importante detectar este flujo e indicarlo correctamente cuando lo estemos diseñando.

Otro aspecto importante es dar personalidad a tu agente conversacional, es esencial,


escoge un nombre y una imagen llamativa, fácil de pronunciar y que genere recordación,
tus usuarios debe tener claro que estan conversando con un programa. No trates de
engañarlos, ¡Es simplemente para setear expectativas!, Entre humanos la expectativas de
interacción tienen el nivel mas alto, mientras que un humano que habla con un programa
sabrá que las preguntas tienen un límite definido por el tema en particular que tiene el
agente conversacional.

FrameWork de Google

Grandes líderes de tecnología se han interesado en este campo, al ver un gran potencial
de desarrollo en sus negocios y han generado soluciones disponibles como Software as a
Service (SaaS).

Entre los más importantes se encuentran Microsoft ->(LUIS-> Cortana), Amazon (AWS ->
Alexa), Google (Google Actions à Google), Apple (Siri), IBM (Watson), SAP (Kick-ass). En
esta oportunidad vamos a trabajar con el framework de Google, algo importante es que en
general todos los sistemas enunciados anteriormente, manejan los mismos conceptos, los
costos en producción son similares, y los lenguajes de programación son los estándares
utilizados en la industria, inclusive un concepto importante es que no importa el framework
utilizado, lo realmente importante es el diseño de la solución, poder mantener un diálogo
fluido con nuestro interlocutor, tener un proceso de mantenimiento que ayude a entrenar
correctamente el sistema y la información que suministra el agente sea veraz y actualizada,
teniendo control sobre lo anterior realmente va ser el éxito de la solución y no dependerá
de la plataforma a utilizar.
Google es una empresa de tecnología pionera en sistemas conversacionales, un gran
ejemplo de lo que se puede diseñar en conjunto, es cuando comenzamos a utilizar de forma
periódica el asistente de Google “OK Google”, que está disponible nativamente en todos
los sistemas que tengan como soporte de sistema operativo Android y con la posibilidad de
instalación en otros sistemas operativos como aplicación.

En extensión al asistente, Google tiene parlantes inteligentes dedicados que pueden


interactuar con hardware (control de luces, sonido, televisión (Chrome cast), cámaras,
control de puertas, etc.) que nos muestra hasta donde podría llegar una solución.

Para poder iniciar se requiere tener una cuenta creada en gmail, es el punto de entrada a
todas las aplicaciones de Google.

Las aplicaciones que interactúan con un sistema conversacional se detallan y se explican


a continuación.

Google Actions
Es una plataforma que permite desarrollar software para ampliar la funcionalidad de Google
Assistant, el asistente de Google, como desarrollador, puede utilizar Google Actions para
crear y administrar experiencias de conversación entre los usuarios y el servicio de terceros.

DialogFlow
Es un servicio basado en la web de Google que utiliza un agente para procesar las entradas
de los usuarios (voz y texto). que permite manejar PLN (Procesamiento de Lenguje Natural)
fácilmente. Dialogflow simplifica la tarea de comprender la entrada del usuario, extrayendo
las palabras y frases clave de la entrada y devolviendo las respuestas. Este servicio permite
integrar aplicaciones de conversación con el Asistente, así como con otras plataformas de
conversación.

Firebase
Es un base de datos NoSQL, los datos se almacenan como JSON, es perfecta para
interactuar con un agente conversacional, debido a la eficiencia que tiene en el manejo de
información en tiempo real.

Conceptos

• Intent: “Intención” El objetivo o tarea que los usuarios desean realizar, como pedir
un café o escuchar una canción. En Google Actions, esto se representa con un
identificador único y las expresiones de usuario correspondientes que pueden
desencadenar el “intent”.

• Action: Una acción es un punto de entrada que desencadena una interacción que
construyes para el Asistente. Los usuarios pueden solicitar su action escribiendo o
hablando con el Asistente.

• Fullfilment: Es la lógica mediante código que administra un evento para realizar la


acción correspondiente, es el lugar donde se programa las interacciones especiales
y la comunicación a entes externos, por ejemplo, base de datos, API especiales,
que ayudan a darle interacción al agente conversacional.
Funcionamiento

Las acciones (actions) se ejecutan siempre en la nube, independientemente del dispositivo


(móvil, Google Home o smartwatch), Cada action da soporte a un intent específico y tiene
un fullfilment correspondiente que procesa el intent.

Cuando un usuario envía una petición al asistente éste trata de satisfacer la petición
mediante solicitudes del tipo POST de HTTPS

El fullfilment envía el servicio de respuesta al asistente y finalmente éste se le retransmite


al usuario.

Para crear actions se debe, crear un proyecto (Actions Project) en la consola de acciones
(Actions Console) que contiene las acciones.

Actions Project: Es el proyecto donde se administran un conjunto de actions. Estas


acciones se almacenan en la nube.

Actions Console: Es la herramienta online de Google para desarrollar actions, donde


puedes crear, mantener, probar y publicar cada action.

El siguiente diagrama se muestra un ejemplo de cómo Dialogflow (cuarta columna) maneja


la entrada del usuario desde el Asistente y envía solicitudes a su cumplimiento (fullfilment)
(representado por la columna más a la derecha).

¡Hasta aquí toda la teoría! ¡vamos a la práctica!, seguro todo será más claro.

La acción sigue con la segunda parte, espérala.

También podría gustarte