Читать книгу: «Google Assistant. Desarrollo de aplicaciones IoT para Arduino y ESP8266», страница 2

Шрифт:

Unidad 3
SU PRIMER ASISTENTE

Antes de empezar a estudiar en profundidad cada una de las plataformas que intervienen en el desarrollo de un sistema conversacional con Google Assistant, va a realizar uno muy sencillo que, al ser invocado diciendo, por ejemplo, «quiero hablar con mi primer asistente», le responda presentándose. Aunque tendrá que navegar entre ventanas y opciones de Actions on Google y Dialogflow (servicios con los que todavía no está familiarizado), solo se verán los aspectos imprescindibles para completar el ejercicio, dejando de lado el resto. En cualquier caso, se explicará cada uno de los pasos que vaya dando para que entienda, en todo momento, el motivo de lo que está haciendo. Con este primer ejercicio, solo se pretende que tenga una visión general del proceso de desarrollo. Más adelante, estudiará en detalle el funcionamiento de cada una de estas herramientas.

3.1 CONCEPTOS BÁSICOS DE SISTEMAS CONVERSACIONALES

En este tipo de sistemas, la interacción con el usuario se inicia a través de una acción conversacional y finaliza cuando este decide terminar la conversación o, simplemente, acaba de forma natural, una vez obtenido el resultado solicitado.

Una acción conversacional es, por lo tanto, el punto de entrada de un sistema conversacional, una forma de iniciar un diálogo con él. Dicha acción será invocada por su nombre, que activará una intención. Esta última será la encargada de ejecutar las tareas necesarias para dar una respuesta al usuario o, de no ser posible, mantener el diálogo con el que se puedan activar otras intenciones que, finalmente, satisfagan su petición.

Un sistema conversacional puede realizar diversas tareas, cada una de las cuales es ejecutada por una intención específica. De todas ellas, la principal es la que desencadena la ejecución de la intención de bienvenida. Por ejemplo, si el nombre de invocación de la acción principal fuera «mi primer asistente», la conversación con el asistente se iniciaría cuando el usuario dijera determinadas expresiones, como «quiero hablar con mi primer asistente». Eso provocaría la activación de la intención de bienvenida, que le respondería dando pie al inicio de una conversación mediante la que el usuario podría realizar las peticiones que estuviera preparado para atender. Si su función principal fuera la de jugar, dicha intención de bienvenida serviría para preguntar al usuario: «Hola, ¿a qué quieres jugar conmigo?».

Las respuestas ofrecidas por las intenciones podrán ser estáticas o dinámicas. Las respuestas estáticas son las establecidas previamente por el desarrollador. Las dinámicas son las generadas por código (en el contexto de este libro, desarrollado en JavaScript), desde el que se tendría la posibilidad de establecer conexiones con otros servicios si fuera necesario dar o recibir información externa. Por ejemplo, si un usuario solicitara la temperatura, se podría utilizar un servicio (en su caso, Firebase) para acceder a un dispositivo ESP8266 al que estuviera conectado un sensor DHT11 para obtenerla.

Las acciones e intenciones residen y se ejecutan siempre en la nube, independientemente de que se use un teléfono móvil, un altavoz inteligente o cualquier otro dispositivo Android. La creación y posterior gestión de las acciones se realizará en la plataforma Actions on Google. Dicha plataforma se apoyará en Dialogflow, otra herramienta de Google en la que se creará el agente capaz de realizar el procesamiento del lenguaje natural. En ella, añadirá las intenciones necesarias para definir la estructura de la conversación que el asistente deberá entablar con el usuario para dar la información o realizar las acciones solicitadas.


En este libro, a los sistemas conversacionales realizados a partir de proyectos creados en Actions on Google se los llamará, generalmente, «asistentes».

3.2 REQUISITOS PREVIOS

Para poder empezar a utilizar Actions on Google o Dialogflow, es necesario tener una cuenta de Google con los siguientes permisos habilitados:

• Actividad en la web y en aplicaciones

• Grabaciones de audio

• Información sobre aplicaciones de tus dispositivos

Para ello, vaya a la página de control de actividad https://myaccount.google.com/yourdata/assistant e inicie sesión con su usuario Google.


Si no tuviera una cuenta de Google, entre en la página https://support.google.com/accounts/answer/27441?hl=es del centro de soporte y allí pulse «CREAR UNA CUENTA DE GOOGLE».

Una vez dentro, asegúrese de que tiene habilitados los permisos anteriores. Si no fuera así, pulse sobre el control correspondiente y actívelo.


3.3 CREACIÓN DEL PROYECTO EN ACTIONS ON GOOGLE

Para crear un proyecto, lo primero que tiene que hacer es acceder con su usuario a la consola de Actions on Google situada en https://console.actions.google.com/. Una vez dentro, pulse sobre el botón «New Project», para crear el proyecto dentro del cual podrá administrar, probar y publicar sus acciones conversacionales.


Le aparecerá una ventana emergente con las condiciones de uso del servicio. La única opción en la que obligatoriamente deberá seleccionar «Yes» es en la que se indica que acepta los términos de este servicio y el de Firebase (lo conocerá más adelante). No se olvide de seleccionar su país de origen y contestar sí o no (dependiendo de lo que prefiera) a las cuestiones que se le hacen sobre si quiere que le envíen actualizaciones y consejos que lo ayuden a trabajar con Actions on Google, o participar en encuestas y pilotos que mejoren el servicio. Cuando haya seleccionado una opción en todos estos radio buttons, le aparecerá el botón «Agree and continue», que deberá pulsar para crear su primer proyecto.



Esta ventana emergente le aparecerá solo durante la creación de su primer proyecto.

Surge una nueva ventana en la que deberá dar un nombre al proyecto («mi primer asistente»), el idioma de la acción («Spanish») y el país (en mi caso, «Spain»). Luego, pulse «Create project».



No se apure si tarda unos segundos en responder. Es el tiempo que emplea en las labores de creación del proyecto.

Se mostrarán las principales categorías de proyectos existentes. Como lo que se pretende hacer es un asistente que, al invocar su acción principal, se presente amablemente, aunque muy sencillo, sería de tipo personalizado. Por lo tanto, seleccione «Custom» y luego pulse sobre el botón «Next».



Los sistemas que va a desarrollar a lo largo del libro realmente podrían caer en la categoría «Smart Home» o «Game», pero, como lo que se quiere es tener total libertad a la hora de establecer la estructura de la conversación, se elegirá siempre el tipo personalizado.

En la siguiente pantalla, desplácese hacia abajo hasta ver el enlace «Click here to build your Action using DialogFlow». Eso es, precisamente, lo que va a hacer: configurar la acción principal de su primer asistente desde Dialogflow. Púlselo.


Hecho esto, se encontrará dentro de la pestaña «Overview» de su nuevo proyecto, en la que podrá crear la primera acción conversacional (la principal). Pero, antes, asegúrese de que el idioma en el que le hablará a su asistente sea el español y, en caso contrario, pulse sobre «Modify languages».



En la imagen anterior, puede observar que el idioma predeterminado es el inglés.

Surgirá una ventana en la que deberá desmarcar la casilla «English» y señalar «Spanish», situada algo más abajo. Hecho esto, vuelva a la parte superior de la pantalla, donde encontrará a la derecha el botón «Save». Púlselo para guardar los cambios realizados. Al seleccionar de nuevo la pestaña «Overview», verá que ahora el idioma que aparece es el español.



Junto con el idioma, también podrá establecer la configuración regional que permita al asistente trabajar con las diferentes particularidades del lenguaje en los diferentes lugares donde esté previsto usarlo; en el caso del español, en España o en Latinoamérica. Para ello, solo tiene que pulsar el botón «+Add locales», que aparece debajo del idioma, y marcar las opciones que desee.


Lo último que tendrá que hacer, antes de crear la acción principal (la que activará la intención de bienvenida), es establecer el nombre utilizado para invocarla explícitamente. Para ello, pulse el enlace «Decide how your Action is invoked».


Eso lo llevará a la pestaña «Develop», en la que podrá introducir la frase con la que invocará la acción principal de su sistema conversacional (aquella que permitirá la activación de la intención de bienvenida). Por lo tanto, en el campo que hay en la sección «Display name», escriba «mi primer asistente». De esta forma, cuando diga, por ejemplo, «hablar con mi primer asistente», «quiero hablar con mi primer asistente» o «abre mi primer asistente», podrá iniciar la interacción con el sistema conversacional que acaba de crear. Guarde este cambio pulsando el botón «Save».



No es obligatorio rellenar este campo. Si no lo hiciera, podría iniciar la conversación con su primer asistente diciendo: «hablar con mi aplicación de prueba».


Debajo del campo donde introdujo el nombre, verá un texto en color rojo avisando de que se están utilizando palabras restringidas. Eso indica que no lo podrá usar como nombre público para invocar su acción, pero no hay ningún problema en utilizarlo a nivel privado durante la realización de pruebas.

Al cabo de unos segundos, aparecerá una pequeña ventana emergente en la parte superior derecha de la ventana, informando que los cambios han sido guardados correctamente.


Ya se encuentra en disposición de crear la acción principal de su primer asistente. Para ello, vuelva de nuevo a la pestaña «Overview» y, allí, pulse sobre «Build your Action». Se desplegarán dos opciones: una para crear acciones y otra para probarlas (cuando tenga alguna). Pulse sobre la primera [«Add Action(s)»].



Más adelante se explicará el contenido de las diferentes pestañas de la herramienta. Lo que se pretende ahora es realizar una demostración práctica de los principales pasos que intervienen en el desarrollo de un sistema conversacional.

Se le informa que el proyecto no tiene acciones, por lo que procedería a crear la primera, que será la principal. Dicha acción es el punto de entrada a su asistente, la forma de entablar una conversación con él. No lo dude y pulse «Add your first action».


Aparecerá una nueva ventana con todas las categorías de acciones que existen. Podrá elegir entre cualquiera de las que ya trae incorporadas («Built-in intents») u optar por una personalizada («Custom intent»). Elija la personalizada, porque es la que le permitirá crear sus propias intenciones y expresiones de usuario que las activen. Por lo tanto, seleccione la opción «Custom intent» y luego pulse sobre el botón «BUILD».


Se creará una nueva pestaña en su navegador, desde la que podrá acceder a la consola de Dialogflow.

3.4 MODIFICACIÓN DE LA INTENCIÓN DE BIENVENIDA EN DIALOGFLOW

Para acceder a la consola de Dialogflow, pulse sobre «Sign-in with Google».


Se le pedirá que acepte los permisos necesarios para seguir adelante. Pulse «Permitir» en una de las ventanas y «ACCEPT» en la otra.


Entrará automáticamente en la consola de esta nueva herramienta, con el mismo usuario de Actions on Google.


Si usa el navegador Chrome, como yo, y ha iniciado sesión en varias cuentas, asegúrese de estar utilizando siempre el mismo usuario en ambas consolas.

¿Por qué es necesaria utilizar esta otra herramienta? Porque es la que le proporcionará los medios para realizar el análisis semántico que le permita al asistente entender lo que le diga el usuario. ¿Cómo se realiza dicho análisis semántico? Aplicando complejas técnicas de análisis y comprensión del lenguaje natural o NLU (Natural Language Understanting). Por eso es necesario el uso de Dialogflow, ya que le ocultará la complejidad de todas estas técnicas, creando un agente específico para su proyecto, capaz de entender determinadas expresiones dichas por el usuario, de las que extraerá la información (parámetros) necesaria para realizar la acción solicitada y elaborar la respuesta más adecuada. Por ejemplo, para encender un dispositivo domótico, un usuario puede decir «enciende la luz» o «pon la lavadora». Estas expresiones son totalmente diferentes, pero ambas activarían la misma intención, que ejecutaría la acción de encendido. Además, en ambas frases, se extraería el parámetro que contiene el dispositivo que se pretende encender: la luz, en el primer caso, y la lavadora, en el segundo.

En DialogFlow se establecerá la forma en la que se va a llevar la conversación, marcando los turnos de palabra (cada uno asociado a una intención concreta) que se irán sucediendo, hasta llegar a dar la respuesta adecuada al usuario.

La consola de Dialogflow tendrá el aspecto de la siguiente imagen. Asegúrese de que aparece el lenguaje y el área geográfica en la que se encuentra. Para crear el agente de dicho proyecto, que será el que lleve a cabo toda la lógica de la interacción con el usuario, pulse sobre el botón «CREATE».



Si en la parte superior izquierda de la consola apareciera «Dialogflow Essentials» en vez de «Dialogflow», puede que no disponga de todas las opciones utilizadas en las prácticas. En ese caso, antes de crear el agente tendría que desplegar el menú que hay a su derecha y seleccionar la opción «US» (localización de los servidores de Google que va a utilizar). En el momento de escribir este libro, Dialogflow está en proceso de evolución y su interfaz de usuario no es la misma en todas las regiones.

Transcurridos unos segundos, podrá ver seleccionada la opción «Intents» (‘intenciones’) del menú lateral izquierdo. Esta muestra las intenciones que se han creado automáticamente con su agente: la intención de bienvenida («Default Welcome Intent») y la intención alternativa («Default Fallback Intent»). Estudiará en detalle este tipo de intenciones más adelante.

Ha llegado el momento de enseñar al asistente cómo quiere que responda a las solicitudes del usuario. De momento solo desea que, cuando lo invoque, únicamente salude como usted le haya indicado.

Tal como se explicó anteriormente, para iniciar la conversación con un asistente se debe invocar su acción principal, diciendo, por ejemplo: «Hablar con mi primer asistente». En ese momento, se cumplirá la intención de bienvenida (Welcome Intent), creada de forma automática por Dialogflow, que responderá con alguna frase de saludo inicial. Para ver cuáles son tales frases, pulse en dicha acción («Default Welcome Intent»).


La configuración de las intenciones se estructura en una serie de secciones que estudiará en detalle más adelante. Ahora, únicamente le interesa saber que las frases de bienvenida están en la sección de respuestas («Responses»). Para ver cuáles son, en la parte superior derecha, tiene un símbolo en forma de punta de flecha que tendrá que pulsar para desplegar la información que contiene. Allí podrá ver todas las expresiones de saludo. Como puede observar, hay tres: «¡Hola!», «¡Hey!» y «¡Buenos días!».


Dichos saludos de bienvenida le serán ofrecidos de forma aleatoria, cada vez que invoque la acción. ¿Quiere comprobarlo? En el menú lateral izquierdo de la consola, seleccione «Integrations». Luego, en el panel principal, donde se muestra el contenido de dicha opción, pulse el enlace «INTEGRATION SETTINGS» de Google Assistant.



Si no le apareciera la opción «Integrations», compruebe que a la derecha de «Dialogflow Essentials» esté seleccionada la opción «US». En caso contrario, tendría que borrar el agente (en el capítulo que describe la consola de Dialogflow se indica dónde hacerlo) y volver a crearlo desde Actions on Google (pestaña «Overview» → «Build your Action» → «Add Action(s)»), seleccionado previamente dicha región en el menú desplegable que hay a la derecha de «Dialogflow Essentials».

Surgirá una ventana emergente, en la que conviene activar la opción que permite propagar automáticamente los cambios que realice en Dialogflow hacia Actions on Google. De esta forma, ambos servicios se sincronizarán y el simulador tendrá en cuenta los cambios que vaya realizando durante el proceso de desarrollo de las intenciones. Finalmente, pulse sobre el botón «TEST».


Se habrá creado una nueva pestaña en el navegador, que lo habrá llevado, de nuevo, a la plataforma Actions on Google; en concreto, a su sección de pruebas (pestaña «Test»). En el panel derecho de la ventana, se mostrará el diálogo que mantenga con el asistente. En la parte superior del panel izquierdo, está situado el campo de entrada en el que tendrá que escribir las expresiones que quiera decir al asistente. Selecciónelo y pulse retorno de carro (Enter) ya que, de forma predeterminada, contiene el texto «Hablar con mi primer asistente», que invoca la acción principal de su asistente (o pulse el botón del mismo nombre, que aparece como sugerencia).


Enseguida oirá (si tiene activado el altavoz del ordenador) y verá escrita la respuesta dada por el simulador: «De acuerdo. Aquí tienes la última versión de asistente» y, luego, «¡Hola!» (podría haber sido también «¡Hey!» o «¡Buenos días!»).



El procesamiento de lenguaje natural realizado por el agente de Dialogflow le permitirá invocar su acción principal de distintas formas; por ejemplo, diciendo «quiero hablar con mi primer asistente» o «abre mi primer asistente». No valen todas las expresiones, por lo que tendrá que probar y quedarse con la que más le guste.

Aunque todavía no lo sepa, a partir de este momento, el asistente habrá iniciado una conversación, en la que le irá contestando según le haya enseñado a responder (de momento nada, ya que el comportamiento de bienvenida lo tiene por defecto). Compruébelo escribiendo cualquier frase (excepto expresiones de saludo del tipo «hola», «saludos», etc.). Siempre le contestará diciendo que no lo entiende utilizando, eso sí, diversas expresiones. Dichas expresiones están asociadas a otra de las intenciones que se crea por defecto con el agente Dialogflow, llamada «Default Fallback Intent» (‘intención alternativa’). Esta se activará cuando lo que diga el usuario no coincida con ninguna otra intención; es decir, cuando no se ha reconocido lo que ha dicho.

Dicha intención, al igual que sucedía con la de bienvenida, dispondrá de una variedad de respuestas; en este caso, para indicar al usuario que no le ha entendido. Para verlas, vaya a la pestaña de su navegador donde está la consola de Dialogflow. Allí, seleccione la opción «Intents» del menú lateral izquierdo y, en el panel principal, seleccione la intención «Default Fallback Intent».


Aparecerá la información de configuración de dicha intención, en cuya sección «Responses» podrá ver todas las respuestas posibles. Al igual que en la intención de bienvenida, se podrán añadir y/o quitar las que quiera.


Como todavía no sabe cómo finalizar la conversación, estará en ella hasta que diga alguna de las palabras que Google Assistant tenga programadas por defecto para tal fin. Diga, por ejemplo, «cancelar» (o pulse sobre el botón «Cancel», que se ofrece como sugerencia). Observará un mensaje en el que se indica que su primer asistente ha abandonado la conversación. Para reanudarla, tendría que volver a decir de nuevo: «hablar con mi primer asistente».


Para no tener que salir de la conversación cada vez que quiera volver a invocar su acción conversacional, va a establecer que la intención de bienvenida sea también la que finalice dicha conversación. Además, aprovechará para hacer que se presente amablemente, en vez de utilizar las típicas palabras de cortesía que tiene por defecto.

Vaya de nuevo a la pestaña de su navegador donde está la consola de Dialogflow y acceda a la intención de bienvenida. Para borrar todas las frases de saludo que tiene, presione en el icono con forma de papelera que aparece en la parte superior, a la derecha de «Text Response», tal como se muestra en la siguiente figura, o vaya pulsando el mismo icono que aparece a la derecha de cada una de las frases de bienvenida cuando sitúa el cursor del ratón encima de ellas. De esta forma, las iría borrando de una en una.


A continuación, pulse sobre el botón «ADD RESPONSES» y, en el menú que se despliega, seleccione «Text Response».


Introduzca las frases con las que quiera que el asistente lo salude. Yo he elegido «Bienvenido a su primer asistente» y «Hola, soy su primer asistente». Usted puede poner otras diferentes.

Aproveche también para habilitar la opción «Set this intent as end of conversation»; es decir, que, una vez que lo haya saludado, finalice la conversación. Para guardar los cambios realizados en la intención, no se olvide de pulsar sobre el botón «SAVE».


Espere hasta ver aparecer una serie de mensajes emergentes en la parte inferior derecha de la ventana, indicando no solo que dichos cambios se han guardado correctamente, sino que el algoritmo de aprendizaje del agente ha sido convenientemente entrenado para tenerlos en cuenta.


Para probar que el asistente lo saluda de la forma prevista, vaya de nuevo a la pestaña en la que se encuentra el simulador. Allí, invoque la acción principal de su primer asistente pulsando sobre el botón «Hablar con mi primer asistente», que se ofrece como sugerencia. Observará que, ahora, contesta con una de las nuevas frases de respuesta introducidas, saliendo automáticamente de la conversación. Lo puede saber por el mensaje final «mi primer asistente ha abandonado la conversación».


Vuelva a invocar la acción principal. Verá cómo, efectivamente, su primer asistente le vuelve a responder con otra de las frases de saludo introducidas por usted en la intención de bienvenida. Esta vez, no ha tenido que decir previamente «cancelar», como sucedía anteriormente.

Otra forma de probar el comportamiento de su asistente sin necesidad de salir de Dialogflow es mediante la utilidad situada en la parte superior derecha de la ventana principal de la consola.


Desde allí, podrá escribir una frase y comprobar cuál es la respuesta del asistente. En este caso, no será necesario invocar la acción conversacional, porque se parte del hecho de que ya se encuentra dentro de su asistente. Sin embargo, diciendo una de las frases de entrenamiento de la intención de bienvenida (por ejemplo, «hola»), tendrá el mismo efecto.


Esta utilidad tiene diversas limitaciones, entre la que destaca que solo muestra el último turno de palabra o que no informa del contenido de los mensajes HTTP de petición y respuesta intercambiados en la comunicación. Como ventaja, presenta el nombre de la última intención cumplida, la acción que lo ha provocado y los contextos activos (estos dos últimos conceptos se estudiarán más adelante), así como información útil de depuración.

Жанры и теги
Возрастное ограничение:
0+
Объем:
740 стр. 667 иллюстраций
ISBN:
9788426732415
Издатель:
Правообладатель:
Bookwire
Формат скачивания:
epub, fb2, fb3, ios.epub, mobi, pdf, txt, zip

С этой книгой читают