En esta página, se explica cómo compilar una app de Google Chat que pueda comprender y responder con lenguaje natural mediante Dialogflow. En esta guía, se usa Dialogflow CX, que tiene integración directa con Google Chat. También puedes usar Dialogflow ES para compilar una app de Dialogflow ES de Google Chat; para ello, sigue la guía de Dialogflow ES Google Chat.
Por ejemplo, imagina una app de Chat que ayuda a las personas a alquilar automóviles. Un usuario podría escribir: "Me gustaría alquilar un automóvil". La app de Chat podría responder con una pregunta como "¿Dónde te gustaría recoger el vehículo?", lo que inicia una conversación similar a la humana con el usuario en la que la app de Chat entiende y responde con un lenguaje humano cuando se reserva el alquiler del vehículo.
Este es solo un ejemplo. Las apps de Chat de Dialogflow son útiles en todo tipo de interacciones. Si requiere una voz humana natural, llama a una app de Dialogflow para Chat. Los agentes compilados previamente te ayudan a comenzar con rapidez y te muestran lo que Dialogflow puede hacer, por ejemplo:
- Reservar vuelos
- Programe citas con el médico
- Pedir comida a domicilio
- Responder preguntas sobre un catálogo de productos de venta minorista, como si los artículos están disponibles en otros colores
-
Figura 2: Probar el agente en Dialogflow CX para asegurarse de que la lógica y la configuración del agente funcionen según lo previsto. En el diagrama, se muestra un conjunto secuencial de páginas temáticas que se refieren a pasos específicos de la conversación, como establecer una ubicación de recogida y devolución para un auto alquilado, y configura la lógica que las conecta. La conversación se prueba en un simulador. -
Figura 3: La configuración de una app de Chat para procesar respuestas con el agente de Dialogflow CX en la página de configuración de la API de Chat en la consola de Google Cloud. -
Figura 4: Conversar sobre la reserva de un auto de alquiler con la app de Chat de Dialogflow en Google Chat
Objetivos
- Configurar el entorno
- Crear e implementar un agente de Dialogflow CX.
- Crea e implementa una app de chat con la tecnología del agente de Dialogflow CX.
- Prueba la app de Chat.
Requisitos previos
- Una cuenta de Google Workspace con acceso a Google Chat
- Un proyecto de Google Cloud.
- Asegúrate de activar la facturación para tu proyecto de Cloud. Obtén información para verificar el estado de facturación de tus proyectos.
Arquitectura
En el siguiente diagrama, se muestra la arquitectura de una app de Chat compilada con Dialogflow:
En el diagrama anterior, un usuario que interactúa con una app de Chat de Dialogflow tiene el siguiente flujo de información:
- Un usuario envía un mensaje en Chat a una app de Chat, ya sea en un mensaje directo o en un espacio de Chat.
- Un agente virtual de Dialogflow, que reside en Google Cloud, recibe y procesa el mensaje para producir una respuesta.
- De forma opcional, mediante un webhook de Dialogflow, el agente de Dialogflow puede interactuar con servicios externos de terceros, como un sistema de administración de proyectos o una herramienta de generación de tickets.
- El agente de Dialogflow envía una respuesta al servicio de la app de Chat en Chat.
- La respuesta se entrega al espacio de Chat.
Configura el entorno
Antes de usar las APIs de Google, debes activarlas en un proyecto de Google Cloud. Puedes activar una o más APIs en un solo proyecto de Google Cloud.En la consola de Google Cloud, habilita la API de Google Chat y la API de Dialogflow.
Confirma que estás habilitando las APIs en el proyecto de Cloud correcto y, luego, haz clic en Siguiente.
Confirma que estás habilitando las APIs correctas y, luego, haz clic en Habilitar.
Crear un agente de Dialogflow CX
Un agente de Dialogflow CX es un agente virtual que maneja conversaciones simultáneas con tus usuarios finales. Es un módulo de comprensión del lenguaje natural que comprende los matices del lenguaje humano. Dialogflow traduce el texto del usuario final durante una conversación a datos estructurados que tus aplicaciones y servicios pueden comprender. Diseñas y compilas un agente de Dialogflow para manejar los tipos de conversaciones que requiere tu sistema.
Un agente de Dialogflow es como una persona de un centro de atención telefónica. Lo entrenas para manejar las situaciones de conversación esperadas, y el entrenamiento no necesita ser demasiado explícito.
A continuación, se muestra cómo crear el agente de Dialogflow CX:
En la consola de Dialogflow CX, abre la consola de Dialogflow CX. Haz clic en Menú > Dialogflow CX.
Elige un proyecto de Google Cloud. Para encontrar tu proyecto, es posible que debas hacer clic en Todos y, luego, buscarlo.
Ahora tienes la opción de elegir un agente precompilado o crear el tuyo propio. Si prefieres explorar la personalización del agente en detalle más adelante, elige uno de los agentes compilados previamente, que también son útiles para conocer lo que pueden hacer los agentes.
Para elegir un agente precompilado, sigue estos pasos:
- Haz clic en Usar agentes precompilados.
Selecciona un agente compilado previamente. Para esta guía, selecciona Viajes: alquiler de automóviles.
Los agentes se califican como principiante, intermedio o avanzado según la cantidad de funciones que use y la sofisticación de su lógica de conversación. La elección de un agente intermedio o avanzado puede requerir personalizaciones y configuración específicas del agente, incluida la habilitación de funciones y APIs en la consola de Google Cloud.
Haz clic en Import as agent.
Para crear tu propio agente, sigue estos pasos:
- Haz clic en Create Agent.
- Selecciona Generar automáticamente para crear un agente de almacén de datos o selecciona Crear el tuyo para crear otros tipos de agentes.
Para obtener una explicación detallada del proceso de compilación del agente, consulta Crea un agente de Dialogflow CX.
Establece la configuración básica del agente:
- En Nombre visible (Display name), ingresa un nombre visible.
- Selecciona tu ubicación preferida. Si quieres cambiar la configuración de ubicación avanzada, haz clic en Editar.
- Selecciona tu zona horaria preferida.
- Selecciona el idioma predeterminado para tu agente. No puedes cambiar el idioma predeterminado de un agente después de su creación.
Haz clic en Crear. Dialogflow CX comienza a crear el agente y, luego, muestra el flujo de inicio predeterminado del agente.
De forma opcional, personaliza el agente. Para obtener una explicación detallada del proceso de personalización del agente, consulta Crea un agente de Dialogflow CX.
Como práctica recomendada, prueba el agente:
- Haz clic en Test agent.
- Selecciona Agente de prueba en el entorno.
- En Entorno, selecciona Borrador.
- En Flujo, selecciona Flujo de inicio predeterminado.
- En Página, selecciona Página de inicio.
- En la barra para escribir Hablar con el agente, escribe
Hello
y presiona Intro. El agente responde presentando a sí mismo. - Completa la prueba en la conversación de prueba de muestra.
Se crea el agente de Dialogflow CX. Regresa a la consola de Dialogflow CX. Haz clic en Menú > Dialogflow CX.
En Agentes, haz clic en > Copiar nombre. Guarda este nombre, ya que lo usas cuando configuras la app de Chat.
Crea una app de Chat y conéctala con el agente de Dialogflow
Después de crear un agente de Dialogflow CX, sigue estos pasos para convertirlo en una app de Chat:
En la consola de Google Cloud, ve a la API de Google Chat. Busca “API de Google Chat” y haz clic en API de Google Chat; luego, haz clic en Administrar.
Haz clic en Configuración y configura la app de Chat:
- En Nombre de la app, ingresa
Dialogflow App
. - En URL del avatar, ingresa
https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png
. - En Descripción, ingresa
Responds to real human conversation
. - En Funcionalidad, selecciona Recibir mensajes 1:1 y Unirse a espacios y conversaciones grupales.
- En Configuración de conexión, selecciona Dialogflow.
- En Configuración de Dialogflow, selecciona Dialogflow CX.
- En Agent or Environment resource name, pega el nombre del agente de Dialogflow CX que copiaste al final de Crea un agente de Dialogflow CX.
- Haz que esta app de Chat esté disponible para personas y grupos específicos de tu dominio y, luego, ingresa tu dirección de correo electrónico.
- En Registros, selecciona Registrar errores en Logging.
- En Nombre de la app, ingresa
Haz clic en Guardar.
La app de Chat está lista para recibir y responder mensajes en Chat.
Prueba la app de Chat
Para probar la app de chat de Dialogflow CX, envíale un mensaje en Google Chat.
Abre Google Chat con la cuenta de Google Workspace que proporcionaste al agregarte como verificador de confianza.
- Haz clic en Nuevo chat.
- En el campo Add 1 or more people (Agrega 1 o más personas), escribe el nombre de tu app de Chat.
Selecciona tu app de Chat en los resultados. Se abrirá un mensaje directo.
En el nuevo mensaje directo con la app, escribe
Hello
y presionaenter
.La app de Chat de Dialogflow responde presentándose.
- Completa la prueba en la conversación de prueba de muestra.
Ejemplo de conversación de prueba
Para probar la app de chat de Dialogflow CX en la consola de Dialogflow CX o en Google Chat, ten en cuenta la siguiente conversación. La explicación te ayuda a comprender cómo el agente de Dialogflow CX interpreta el lenguaje natural del usuario y produce su propia respuesta en lenguaje natural en cada paso de la conversación. Esta conversación de muestra se basa en un agente creado previamente llamado Viajes: alquiler de vehículos.
De diálogo | Explicación |
---|---|
Usuario final: Hola Agente: ¡Hola! Soy el agente virtual de alquiler de autos. Puedo ayudarte a iniciar una nueva reserva de alquiler de un automóvil. ¿En qué puedo ayudarte hoy? |
|
Usuario final: Me gustaría alquilar un auto. Agente: ¿Dónde quieres retirar el vehículo? |
|
Usuario final: Las Vegas Agente: Bien, el punto de partida será en Las Vegas. Agente: ¿Tu ubicación de llegada es diferente a la de retiro? |
|
Usuario final: Sí. Dejaré el auto en Los Ángeles. Agente: Bien, tu destino será en Los Ángeles. Agente: ¿En qué fecha y hora quieres retirar el vehículo? |
|
Usuario final: Me gustaría retirar el auto el 5 de marzo al mediodía. Agente: ¿En qué fecha y hora te gustaría dejar el vehículo? |
|
Usuario final: 15 de marzo al mediodía Agente: Quiero confirmar lo siguiente: Recogerás el vehículo en Las Vegas el 5/3/2024 a las 12:00:00 a.m. y lo entregarás en Los Ángeles |
|
Usuario final: Sí, gracias. Agente: Perfecto. Ahora elijamos un vehículo. Agente: ¿Te gustaría un vehículo económico o de lujo? |
|
Usuario final: Economía, por favor. Agente: ¿Te gustaría el automóvil Cymbal o el camión Cymbal? |
|
Usuario final: Cymbal Truck. Agente: El camión de Cymbal cuesta $50.33 al día. Tiene capacidad para 4 personas y viene con una radio AM/FM. ¿Quieres continuar con el pago? Usuario final: Sí. |
|
Agente: ¿Qué tipo de tarjeta usarás? Usuario final: Altostrat Agente: Ingresa el número de la tarjeta. Usuario final: 1234 1234 1234 1234 Agente: ¿Cuál es el nombre que aparece en la tarjeta? Usuario final: Carlos. Agente: ¿Cuál es la dirección de facturación? Usuario final: 1800 Amphibious Blvd. Mountain View, CA Agente: ¿Cuál es el código postal de facturación? Usuario final: 94045 Agente: Recogerás el automóvil Cymbal en Las Vegas, el 5 de marzo de 2024 a las 12:00:00 y lo dejarás, 15/03/2024 a las 12:00:00. El total de este viaje será de USD 175.38. Agente: Gracias por alquilarlo con nosotros. Que tengas un buen día. |
|
Envía mensajes de tarjetas desde Dialogflow
Dialogflow puede responder con mensajes de texto o de tarjeta. Para responder con un mensaje de tarjeta, especifícalo como una carga útil personalizada en entrega.
En el siguiente JSON, se muestra cómo enviar un mensaje de tarjeta como una carga útil personalizada en la entrega:
json
{
'cardsV2': [{
'cardId': 'createCardMessage',
'card': {
'header': {
'title': 'A card message!',
'subtitle': 'Sent from Dialogflow',
'imageUrl': 'https://developers.google.com/chat/images/chat-product-icon.png',
'imageType': 'CIRCLE'
},
'sections': [
{
'widgets': [
{
'buttonList': {
'buttons': [
{
'text': 'Read the docs!',
'onClick': {
'openLink': {
'url': 'https://developers.google.com/workspace/chat'
}
}
}
]
}
}
]
}
]
}
}]
}
Límites y consideraciones
- Los eventos de interacción por chat tienen asistencia limitada y se deben tener en cuenta las siguientes consideraciones:
- Se admiten los siguientes tipos de eventos de interacción:
MESSAGE
ADDED_TO_SPACE
CARD_CLICKED
- En el caso de los eventos
MESSAGE
oADDED_TO_SPACE
, la entrada de la consulta enviada al agente de Dialogflow corresponde al valor del campoargumentText
en el mensaje de Chat. Si el mensaje incluye un comando de barra, se usa el valor del campotext
en su lugar. - Para los eventos
CARD_CLICKED
, la entrada de la consulta enviada al agente de Dialogflow tiene el formatoCARD_CLICKED.functionName
, en el quefunctionName
corresponde al valor del campofunction
del objeto Action adjunto al elemento de la tarjeta interactiva (como un botón). - La carga útil completa de JSON de cada evento de interacción de Chat se envía a Dialogflow como una carga útil personalizada en el parámetro de consulta, y se puede acceder a ella con un webhook de Dialogflow si se consulta el valor del campo
WebhookRequest.payload
.
- Se admiten los siguientes tipos de eventos de interacción:
- Los comandos de barra tienen compatibilidad limitada:
- Cuando las apps de Chat de Dialogflow reciben un mensaje con un comando de barra, la entrada de la consulta solo contiene el valor del campo
text
. El campotext
comienza con el nombre del comando de barra (por ejemplo,/command
), que puedes usar para configurar el intent de un agente de Dialogflow a fin de que detecte un comando de barra. - Si el agente de Dialogflow necesita procesar la carga útil de JSON del evento de interacción con Chat del comando de barra, puede hacerlo con un webhook de Dialogflow para inspeccionar la carga útil personalizada en el parámetro de consulta.
- Cuando las apps de Chat de Dialogflow reciben un mensaje con un comando de barra, la entrada de la consulta solo contiene el valor del campo
- Los comandos de barra que abren diálogos y reciben datos de tarjetas o diálogos se admiten como parte del Programa de Versión preliminar para desarrolladores de Google Workspace.
- Para mostrar un diálogo del agente de Dialogflow, responde con una única carga útil de JSON personalizada que incluya un mensaje que contenga una respuesta de acción
DIALOG
. - Para procesar los datos que ingresan desde las tarjetas, el agente de Dialogflow puede detectar los intents que comienzan con el texto
CARD_CLICKED
y responder con una única carga útil de JSON personalizada que contenga la acción adecuada.
- Para mostrar un diálogo del agente de Dialogflow, responde con una única carga útil de JSON personalizada que incluya un mensaje que contenga una respuesta de acción
- Las vistas previas de vínculos no son compatibles.
- Si el agente de Dialogflow responde con un solo mensaje, este se envía a Google Chat de forma síncrona. Si el agente de Dialogflow responde con varios mensajes, todos los mensajes se envían a Chat de forma asíncrona mediante una llamada al método
create
en el recursospaces.messages
en la API de Chat una vez por cada mensaje. - Cuando se usa la integración de Dialogflow CX con Chat, el agente de Dialogflow y la app de Chat deben configurarse en el mismo proyecto de Google Cloud. Si necesitas configurar Dialogflow y Chat en diferentes proyectos de Cloud, puedes configurar un servidor intermedio para facilitar la conexión. Si quieres aprender a hacerlo, consulta este ejemplo de integración de Chat para Dialogflow CX en GitHub.
Solucionar problemas
Cuando una app o una tarjeta de Google Chat devuelve un error, la interfaz de Chat muestra un mensaje que dice "Se produjo un error". o "No se pudo procesar la solicitud". A veces, la IU de Chat no muestra ningún mensaje de error, pero la app o la tarjeta de Chat producen un resultado inesperado, por ejemplo, es posible que no aparezca un mensaje de tarjeta.
Si bien es posible que no se muestre un mensaje de error en la IU de Chat, hay mensajes de error descriptivos y datos de registro disponibles que te ayudarán a corregir errores cuando se activa el registro de errores para apps de Chat. Si necesitas ayuda para ver, depurar y corregir errores, consulta Cómo solucionar problemas de Google Chat.
Limpia
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en este instructivo, te recomendamos que borres el proyecto de Cloud.
- En la consola de Google Cloud, ve a la página Administrar recursos. Haz clic en Menú > IAM y administración > Administrar recursos.
- En la lista de proyectos, selecciona el proyecto que deseas borrar y haz clic en Borrar .
- En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrarlo.
Temas relacionados
- Dialogflow CX adopta un enfoque de máquina de estados para el diseño de agentes de Dialogflow, lo que te brinda un control claro y explícito sobre una conversación, una mejor experiencia del usuario final y un mejor flujo de trabajo de desarrollo. Cuando compiles una app de Chat de Dialogflow, te recomendamos usar Dialogflow CX.
- Para obtener más información sobre la compilación y configuración de agentes, consulta Agentes de Dialogflow CX.
- Para obtener una explicación detallada sobre cómo compilar y configurar agentes, consulta Crea un agente de Dialogflow CX.
- Cómo compilar apps para Google Chat con Gemini. Codelab: Para ver un ejemplo de cómo compilar un agente de almacén de datos de Dialogflow CX, consulta la app de Chat de conocimiento del codelab
- Compila apps para Google Chat con Gemini. Codelab: Para ver un ejemplo de cómo compilar un agente conversacional Dialogflow CX, consulta la app de Chat con comentarios del codelab
- Dialogflow ES es otra forma de usar Dialogflow con una app de chat.