arrow_back

Cómo compilar una entrega de agente virtual

Acceder Unirse
Pon a prueba tus conocimientos y compártelos con nuestra comunidad
done
Obtén acceso a más de 700 labs prácticos, insignias de habilidad y cursos

Cómo compilar una entrega de agente virtual

Lab 1 hora 30 minutos universal_currency_alt 1 crédito show_chart Introductorio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Pon a prueba tus conocimientos y compártelos con nuestra comunidad
done
Obtén acceso a más de 700 labs prácticos, insignias de habilidad y cursos

GSP792

Labs de autoaprendizaje de Google Cloud

Descripción general

En este lab, seguirás trabajando con el agente virtual de Pigeon Travel que creaste en el lab Diseña flujos conversacionales para tu agente, le agregarás contexto y configurarás la entrega para que busque y almacene entradas de reservas en Firestore.

Nota: Para continuar con este lab, necesitarás el archivo ZIP del agente exportado del lab Diseña flujos conversacionales para tu agente. En caso contrario, deberás compilar desde cero todos los intents y entidades del lab Diseña flujos conversacionales para tu agente antes de continuar con los pasos de este lab.

Qué aprenderás

En este lab, realizarás las siguientes tareas:

  • Crear una colección de Firestore
  • Configurar la entrega como un código de Cloud Functions para que el agente pueda buscar y cambiar el nombre en la reserva

Configuración y requisitos

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
Nota: Usa una ventana de navegador privada o de Incógnito para ejecutar este lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
  • Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Nota: Si ya tienes un proyecto o una cuenta personal de Google Cloud, no los uses en este lab para evitar cargos adicionales en tu cuenta.

Cómo iniciar tu lab y acceder a la consola de Google Cloud

  1. Haga clic en el botón Comenzar lab. Si debe pagar por el lab, se abrirá una ventana emergente para que seleccione su forma de pago. A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:

    • El botón Abrir la consola de Google Cloud
    • El tiempo restante
    • Las credenciales temporales que debe usar para el lab
    • Otra información para completar el lab, si es necesaria
  2. Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).

    El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.

    Sugerencia: Ordene las pestañas en ventanas separadas, una junto a la otra.

    Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usar otra cuenta.
  3. De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.

    {{{user_0.username | "Username"}}}

    También puedes encontrar el nombre de usuario en el panel Detalles del lab.

  4. Haz clic en Siguiente.

  5. Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.

    {{{user_0.password | "Password"}}}

    También puedes encontrar la contraseña en el panel Detalles del lab.

  6. Haz clic en Siguiente.

    Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud. Nota: Usar tu propia Cuenta de Google podría generar cargos adicionales.
  7. Haga clic para avanzar por las páginas siguientes:

    • Acepta los Términos y Condiciones.
    • No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No te registres para obtener pruebas gratuitas.

Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.

Nota: Para ver un menú con una lista de productos y servicios de Google Cloud, haz clic en el menú de navegación que se encuentra en la parte superior izquierda. Ícono del menú de navegación

Tarea 1: Habilita la API

  1. En la consola de Cloud, ve al menú de navegación (Ícono del menú de navegación) > APIs y servicios > Habilitar las APIs y los servicios.

  2. Haz clic en + Habilitar las APIs y los servicios.

  3. Busca Dialogflow.

  4. Haz clic en el mosaico API de Dialogflow. Si la API no está habilitada, haz clic en Habilitar.

  5. Busca Cloud function.

  6. Haz clic en la API de Cloud Functions y, si ya está habilitada, haz clic en Administrar.

  7. Luego, haz clic en Inhabilitar API.

    Si se te solicita que confirmes, haz clic en Inhabilitar.

  8. Después, haz clic en Habilitar.

    Cuando se haya habilitado de nuevo la API, se mostrará en la página la opción para inhabilitarla.

Configura los permisos de IAM

  1. En el menú de navegación (Ícono del menú de navegación), ve a IAM y administración > IAM.

  2. Para editar los permisos de tu agente de servicio de Google Cloud Functions, busca el agente de servicio en la lista de IAM y selecciona el ícono de lápiz. La cuenta de servicio tendrá el dominio @gcf-admin-robot.iam.gserviceaccount.com.

  3. Si no puedes ver ninguna cuenta de servicio, haz clic en la casilla de verificación Incluir asignaciones de roles proporcionadas por Google.

  4. Haz clic en Agregar otro rol en el diálogo y, luego, selecciona Artifact Registry > rol de Lector de Artifact Registry.

  5. Haz clic en Guardar.

Tarea 2. Crea tu agente de Dialogflow

Le asignarás el nombre “pigeon-travel”.

  1. Ve a la consola de Dialogflow.

  2. Haz clic en el botón Acceder con Google y asegúrate de seleccionar las credenciales que utilizaste para este lab. Luego, haz clic en Permitir.

  3. Desmarca las preferencias de correo electrónico y marca las Condiciones del Servicio. Haz clic en Aceptar.

  4. En el menú de la izquierda, haz clic en Create agent.

  5. Ahora agrega la información del agente tal como aparece en la captura de pantalla que se muestra a continuación:

  • Agent name: pigeon-travel
  • Default Time Zone: America/Denver
  • Google Project: usa el ID del proyecto del lab
  1. Haz clic en Create.

Haz clic en Revisar mi progreso para verificar el objetivo. Crear el agente de Dialogflow

Tarea 3: Importa tu agente de Dialogflow

En el lab anterior, exportaste el agente de Dialogflow que compilaste. Ahora volverás a importarlo para continuar su compilación.

Esto creará un proyecto de agente virtual nuevo. Ahora deberías importar el trabajo que ya realizaste.

  • Si no tienes archivos exportados para usar, usa este archivo:
https://storage.cloud.google.com/qwiklabs-resources-ccai-quest/pigeon-travel-gsp-792.zip
  • Descarga el archivo en tu estación de trabajo local.
  1. Haz clic en el ícono de ajustes Ícono de ajustes Configuración Configuración junto al nombre del agente.

  2. Selecciona la pestaña Export and Import.

Página con pestañas Importar y exportar

  1. Haz clic en Import from ZIP.

  2. Haz clic en Select file y navega al archivo ZIP que contenga la configuración de tu agente virtual. También puedes arrastrar y soltar el archivo si así lo prefieres.

  3. Escribe la palabra "IMPORT" todo en mayúsculas para habilitar el botón de importación y haz clic en Import.

Página Subir agente

  1. Haz clic en Done para cerrar la ventana de carga una vez que se complete la importación.

Se importó tu configuración actual a tu proyecto de agente nuevo.

Haz clic en Revisar mi progreso para verificar el objetivo. Importar tu agente de Dialogflow

Tarea 4: Configura la entrega con Cloud Functions para buscar reservas en Firestore

Hasta el momento, el agente hace un buen trabajo al comunicarse con el cliente para obtener su información, incluido el número de reserva. Sin embargo, la información que recopila no se verifica ni se registra en ningún otro lado para permitir posibles acciones adicionales. En esta sección, configurarás la entrega. Para ello, agregarás e implementarás un código Node.js como una Cloud Function para que tu agente busque la reserva actual y agregue el cambio.

Configura Firestore

  1. En la consola, dirígete al menú de navegación > Bases de datos > Firestore.

  2. Haz clic en Crear base de datos.

  3. En Elige tu modo de Firestore, selecciona Modo nativo (recomendado) y haz clic en Continuar.

  4. Para la ubicación, selecciona Multirregión y, luego, elige nam5 (Estados Unidos) para la multirregión.

  5. Haz clic en Crear base de datos. Una vez que se completa el proceso, podrás crear una colección nueva.

  6. Haz clic en Iniciar colección.

  7. Completa los detalles exactamente como se muestran a continuación y, luego, haz clic en Guardar.

  • ID de la colección: reservations

  • ID de documento: 100

  • Nombre del campo: fname

  • Tipo de campo: string

  • Valor del campo: Isabel

  1. Luego, haz clic en el botón Agregar un campo (+) para agregar otro:
  • Nombre del campo: lname
  • Tipo de campo: string
  • Valor del campo: Costa
  1. Luego, haz clic en el botón Agregar un campo (+) para agregar otro:
  • Nombre del campo: newname
  • Tipo de campo: string
  • Valor del campo:

Ya agregaste tu primer documento a una colección de Firestore.

Práctica recomendada relacionada con los IDs de documento de Firestore

  • No uses puntos (.) ni puntos suspensivos (…) en los IDs de documento.

  • No uses barras diagonales (/) en los IDs de documento.

  • No uses IDs de documento que aumenten monótonamente, como los siguientes ejemplos:

    • Cliente1, Cliente2, Cliente3…
    • Producto 1, Producto 2, Producto 3…

    Estos IDs secuenciales pueden generar hotspots que afectan la latencia.

Entrega de Dialogflow

  1. Navega a la consola de Dialogflow y haz clic en Fulfillment en el menú de la izquierda. Es posible que el aprovisionamiento de los recursos tarde unos minutos.

  2. Junto a la opción Inline Editor, desliza el control deslizante hacia la derecha para que se muestre como Enabled. Esto habilita el editor de Cloud Functions en tu agente de Dialogflow.

Nota: Si recibes un mensaje de error, intenta actualizar la página y, luego, habilita el control deslizante nuevamente.
  1. Una vez que se habilita, verás una plantilla predeterminada en el archivo index.js.

  2. Haz clic en el botón Deploy en la esquina inferior derecha. Esta operación podría tardar unos minutos.

  3. Una vez que se completa correctamente la implementación, dirígete a la consola de Google Cloud y, con el menú de la izquierda, navega a Cloud Functions para confirmar si la función se implementó.

Haz clic en Revisar mi progreso para verificar el objetivo. Configurar la entrega con una Cloud Function

  1. Vuelve a la sección Fulfillment en la consola de Dialogflow y haga clic en la pestaña index.js.

  2. Observa que ya hay un código de inicio, que incluye las funciones para administrar los intents de bienvenida y de resguardo predeterminados. Primero, agregarás las siguientes líneas para poder trabajar con Firestore.

Agrega el siguiente código por encima de la línea que dice process.env.DEBUG = 'dialogflow:debug';:

const admin = require('firebase-admin');

Agrega este bloque de código debajo de la línea que dice process.env.DEBUG = 'dialogflow:debug';:

admin.initializeApp(); admin.firestore().settings( { timestampsInSnapshots: true }); const db = admin.firestore();
  1. Para controlar las reservas, agrega el siguiente código después de las funciones de controlador para los intents de bienvenida y de resguardo.

Agrega el siguiente bloque de código debajo de la línea que dice

exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {:

function reservation(agent) { let id = agent.parameters.reservationnumber.toString(); let collectionRef = db.collection('reservations'); let userDoc = collectionRef.doc(id); return userDoc.get() .then(doc => { if (!doc.exists) { agent.add('I could not find your reservation.'); } else { db.collection('reservations').doc(id).update({ newname: agent.parameters.newname }).catch(error => { console.log('Transaction failure:', error); return Promise.reject(); }); agent.add('Ok. I have updated the name on the reservation.'); } return Promise.resolve(); }).catch(() => { agent.add('Error reading entry from the Firestore database.'); }); }
  1. Modifica el código intentMap para incluir una entrada que permita controlar la asignación de name.reservation-getname a la función que acabas de agregar:
intentMap.set('name.reservation-getname', reservation);

Debería ser similar a esto:

let intentMap = new Map(); intentMap.set('name.reservation-getname', reservation); intentMap.set('Default Welcome Intent', welcome); intentMap.set('Default Fallback Intent', fallback); agent.handleRequest(intentMap);
  1. En la pestaña package.json asegúrate de que firebase-admin esté configurado como "^5.13.1":
"firebase-admin": "^5.13.1"
  1. Haz clic en el botón Deploy para guardar y también implementar el código.

  2. Haz clic en Intents en el menú de la izquierda y ve a name.reservation-getname dentro del intent name.reservation, navega hasta Fulfillment, debajo haz clic en el interruptor de activación de la opción Enable the webhook call for this intent para habilitarla. Guarda el intent.

  3. Realiza una prueba en el simulador. Para ello, ingresa la pregunta: change name on booking.

Recibirás la respuesta predeterminada, como la siguiente: Sure I can help you to change your name on the reservation. Can I have your first name?.

  1. Prueba ingresando el nombre de usuario que desees.

  2. Luego, prueba ingresar 100 cuando obtengas la respuesta predeterminada que solicita el número de reserva.

  3. Luego, ingresa el nombre nuevo para el cual deseas crear una reserva, por ejemplo: Kelly.

  4. Luego de completar la reserva con éxito, recibirás la respuesta predeterminada como: Thank you dylan. I have changed the name on reservation number 100 to be kelly.

  5. Para confirmar esto, ve al menú de navegación de la consola de Cloud y, usando el menú de la izquierda, navega hasta Firestore > Datos.

Verás la entrada para tu cambio de nombre. Observa que se agregó un par clave-valor nuevo; de esta manera, puedes ver cuál era el nombre original y cuál es el nombre nuevo.

Par clave-valor nuevo. fname: "Isabel", lname: "costa", newname name: "kelly"

  1. Examina los registros en busca de errores de código en tu consola de Dialogflow. En la parte inferior izquierda de la sección Fulfillment, haz clic en View execution logs in the Google Cloud console para ver los registros.

  2. Examina los registros para ver si hay algún error. Haz clic en el menú de navegación > Operaciones > Logging.

  3. En el Explorador de registros, selecciona Cloud Function > dialogflowFirebaseFulfillment. Puedes verificar todos los registros relacionados aquí.

Como alternativa, puedes ir al menú de navegación > Cloud Functions. Haz clic en REGISTROS dentro de la función que creaste para ver los registros.

Haz clic en Revisar mi progreso para verificar el objetivo. Probar el agente con el simulador de Dialogflow

Tarea 5: (Opcional) Exporta tu código

Exporta tu trabajo para poder usarlo en el próximo lab. Haz clic en la pestaña Fuente de Cloud Functions, desplázate hacia abajo y haz clic en el botón Descargar archivo ZIP.

Exporta tu agente

Exporta tu agente como un archivo ZIP para poder importarlo más tarde, cuando comiences el próximo lab. Esto te permitirá reutilizar los intents y las entidades que hayas configurado hasta el momento.

  1. Haz clic en el ícono de ajustes ⚙ junto al nombre de tu agente, en el menú de la izquierda.

  2. Cuando se abra la página de configuración, dirígete a la pestaña Export and Import.

  3. Haz clic en Export as ZIP. Esta acción descargará tu agente de forma local en un archivo ZIP.

¡Felicitaciones!

Agregaste contexto a tu agente virtual y configuraste la entrega para buscar y almacenar entradas de reservas en Firestore.

Capacitación y certificación de Google Cloud

Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.

Última actualización del manual: 19 de julio de 2024

Prueba más reciente del manual: 19 de julio de 2024

Copyright 2024 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.

Este contenido no está disponible en este momento

Te enviaremos una notificación por correo electrónico cuando esté disponible

¡Genial!

Nos comunicaremos contigo por correo electrónico si está disponible