IA conversacional en Vertex AI y Dialogflow CX

Para recapitular los conceptos básicos referentes a DialogflowCX puedes ver esta introducción a DialogflowCX y para entender de que va todo esto te aconsejo ver el siguiente video que resume los objetivos y las nuevas tecnologias que se han incorporado por parte del equipo de Google para la generación de agentes conversacionales capaces de brindar mejores experiencias a nuestros usuarios.

Cómo crear mejores experiencias conversacionales con IA generativa

Introducción a la IA generativa para Dialogflow CX

Dialogflow CX, la plataforma de creación de agentes virtuales de Google Cloud, ha evolucionado significativamente al incorporar capacidades de inteligencia artificial generativa. Estas nuevas características potencian la experiencia del usuario, permitiendo respuestas más precisas y naturales a través de consultas en lenguaje natural.

La IA generativa integrada en Dialogflow CX facilita la creación de experiencias multimodales, donde los usuarios pueden interactuar utilizando lenguaje natural sin estar restringidos a un conjunto rígido de preguntas, como ocurriría en un cuestionario tradicional. Esta flexibilidad permite que los usuarios expresen sus intenciones de manera más libre y directa, mejorando la efectividad y fluidez de las interacciones.

Una de las principales ventajas de Dialogflow con IA generativa es su capacidad para ser informativo, obteniendo información de documentos y sitios web de la empresa para proporcionar respuestas precisas o resúmenes gracias a la tecnología de modelos de lenguaje a gran escala (LLM, por sus siglas en inglés). Además, ofrece un entorno controlado y seguro, donde los desarrolladores pueden definir flujos y lógicas de negocio, reduciendo riesgos y mejorando la seguridad. Es posible configurar el grado de contenido generado que se presenta a los usuarios, asegurando que las respuestas estén alineadas con la información de la empresa y los objetivos del negocio.

Google Cloud ha diseñado Vertex AI Conversation con una visión clara: proporcionar una plataforma poderosa y unificada para la creación de soluciones de IA conversacional que incorporen IA generativa. Esta combinación de tecnologías permite la creación de agentes virtuales que no solo entienden y responden de manera natural, sino que también pueden gestionar solicitudes complejas, todo mientras permanecen bajo control gracias a un diseño conversacional basado en gráficos.

El objetivo es simple pero crucial: mantener las conversaciones en el camino correcto. A diferencia de un enfoque puramente basado en modelos de lenguaje, el uso de Vertex AI Conversation en Dialogflow CX permite a los desarrolladores tener un control total sobre la experiencia del usuario. Esto garantiza que los chatbots no solo proporcionen información precisa y útil, sino que las conversaciones sigan una trayectoria predefinida y que el contenido generado se limite a lo que se desea.

Vertex AI Search and Conversation es capaz de crear agentes virtuales que pueden manejar una amplia gama de tareas, desde responder preguntas frecuentes hasta realizar transacciones complejas, integrando de manera fluida las características de IA generativa dentro de la experiencia del usuario. Además, el ecosistema de Google Cloud ofrece herramientas adicionales como speech-to-text y text-to-speech, junto con socios de implementación y productos, lo que permite personalizar aún más la experiencia del usuario.

Google Cloud y Vertex AI Conversation también ofrecen beneficios clave adicionales como escalabilidad, seguridad, confiabilidad y resiliencia. Estos sistemas están diseñados para adaptarse fácilmente a un aumento en el número de usuarios o en el tráfico sin comprometer el rendimiento, mientras que la seguridad y la residencia de datos se gestionan según los estándares de Google Cloud, asegurando que los agentes virtuales cumplan con los requisitos de servicio.

En cuanto a la complejidad de las soluciones de IA conversacional, esta se determina por la combinación del tipo de agente virtual y el canal de usuario final. Google Cloud ha diseñado sus productos para reducir esta complejidad, de manera que construir agentes virtuales de alta calidad no implique un esfuerzo de implementación mucho mayor.

Tipos de Agentes Virtuales en Dialogflow CX

La plataforma de Dialogflow CX está diseñada para acomodar tres tipos principales de agentes virtuales:

  1. Informativos: Estos agentes están diseñados para proporcionar información a los usuarios, respondiendo a preguntas frecuentes o brindando detalles sobre productos o servicios.
  2. Transaccionales: Estos agentes ayudan a los usuarios a completar transacciones, como reservar citas, procesar pedidos, proporcionar soporte al cliente, o manejar otras interacciones comerciales.
  3. Compañeros: Una clase avanzada de agentes que anticipan las necesidades del usuario dentro de un contexto específico y proporcionan propuestas inteligentes y útiles. Por ejemplo, si un cliente pregunta sobre una factura telefónica más alta de lo habitual, un agente compañero podría sugerir un plan alternativo.

Canales de Interacción del Usuario

Para construir la experiencia de usuario de un agente virtual, es necesario exponerlo a través de un canal de usuario final, que puede incluir:

  • Texto o chatbot: Interacciones mediante texto en un sitio web o plataformas como SMS o WhatsApp.
  • Texto enriquecido: Respuestas con texto enriquecido que incluyen chips, botones, enlaces URL o resúmenes de respuestas.
  • Voz: Interacciones en tiempo real a través de la voz, generalmente en redes telefónicas.
  • Personalizado o multimodal: Experiencias más complejas que pueden combinar texto, voz e incluso imágenes, típicas en aplicaciones móviles o web personalizadas.

Tecnologías de Comprensión del Lenguaje Natural (NLU)

Finalmente, la plataforma de IA Conversacional de Google Cloud ofrece cuatro tecnologías subyacentes de NLU, para implementar agentes virtuales según las necesidades:

  1. Basado en intenciones: Coincidencia altamente determinista basada en frases de entrenamiento.
  2. Máquina de estados y basado en intenciones: Similar al anterior, pero con la capacidad de controlar diferentes caminos conversacionales a través de una máquina de estados.
  3. Máquina de estados e intenciones con IA generativa: Añade características de IA generativa para manejar tareas complejas de lenguaje natural.
  4. Control basado en instrucciones LLM y NLU basado en LLM: Utiliza marcos como ReAct para implementar agentes virtuales que siguen instrucciones para cumplir una tarea.

Implementación de Capacidades de IA Generativa en Dialogflow CX

Hay dos formas principales de agregar capacidades de IA generativa a los agentes virtuales en Dialogflow CX, y ambas aprovechan el poder de Vertex AI Conversations.

1. Creación de un Nuevo Agente de IA Generativa

La primera opción es crear un nuevo agente de IA generativa utilizando Vertex AI Conversations. Este proceso comienza con la creación de un almacén de datos que contiene el contenido que el agente virtual utilizará para realizar búsquedas. Una vez configurado este almacén de datos, el nuevo agente virtual estará capacitado para responder preguntas sobre la información que ha indexado. Este enfoque es especialmente útil cuando se trata de agregar valor en situaciones donde el diseño basado en intenciones puede resultar costoso y complicado de implementar.

La creación de estos bots es increíblemente sencilla: puedes simplemente indicar al bot una URL, permitir que rastree ese contenido e indexe la información. Una vez completado el proceso de indexación, el bot estará listo para responder preguntas basadas en ese contenido. Incluso puedes automatizar la creación de bots a partir de contenido básico, como tu sitio web o documentos empresariales, lo que permite que el bot esté operativo en solo unos clics y sea capaz de encontrar o generar respuestas a preguntas complejas utilizando dicho contenido.

2. Mejorar Agentes Existentes con Vertex AI Search y Conversation

La segunda opción es mejorar tus agentes existentes en Dialogflow CX añadiendo almacenes de datos de Vertex AI Search y Conversation. Esto permite añadir una capa adicional de cobertura de preguntas a la capacidad de enrutamiento basada en intenciones de tu agente. La IA generativa ha potenciado significativamente las capacidades de Dialogflow CX, especialmente con la introducción del Generative AI Agent, una solución que añade valor en áreas donde el diseño tradicional basado en intenciones sería demasiado costoso o engorroso de implementar.

Capacidades y Usos de la IA Generativa en Dialogflow CX

Con la incorporación de agentes de IA generativa, es posible que los bots accedan a datos de diversas fuentes, ya sean sitios web, datos estructurados o no estructurados, para generar respuestas en tiempo real. Por ejemplo, un agente puede ser configurado para rastrear las preguntas frecuentes de un sitio web y utilizar esa información para generar respuestas precisas en función de las consultas de los clientes.

Además, con los generadores de Vertex AI, puedes utilizar los últimos modelos de lenguaje generativo de Google durante la fase de cumplimiento de Dialogflow CX. Estos generadores permiten generar respuestas del agente en tiempo de ejecución, manejando tanto el conocimiento derivado de grandes conjuntos de datos textuales como del contexto de la conversación actual. Esto incluye funcionalidades como la generación de resúmenes de conversación o la creación de respuestas de texto que pueden ser utilizadas como entrada en webhooks, por ejemplo, para generar el texto de un correo electrónico que el webhook enviará.

Una característica adicional clave es la respuesta de reserva generativa («Generative Fallback Responses»), que se configura con un texto prompt que instruye al modelo de lenguaje sobre cómo responder. Puedes utilizar prompts predefinidos o crear los tuyos propios. Con un prompt predefinido, el agente virtual puede manejar situaciones conversacionales básicas, como saludar y despedirse del usuario, repetir lo dicho por el agente en caso de que el usuario no haya entendido, mantener la línea cuando el usuario lo pide, y resumir la conversación.

Mejora de la Gestión de Conversaciones con IA Generativa

Consideremos un ejemplo práctico: si tienes un agente que entiende múltiples intenciones de cliente y un cliente plantea una pregunta que coincide con una ruta de intención relacionada con un producto, tu agente virtual en Dialogflow utilizará webhooks para obtener la respuesta de tus sistemas principales, como el motor de búsqueda de Retail Search, o de Vertex AI y Langchain. Pero, ¿qué ocurre si la pregunta del cliente no coincide con ninguna ruta de intención predefinida? O tal vez no has creado rutas de intención para ciertas consultas de clientes. Aquí es donde las nuevas soluciones de IA generativa pueden fortalecer a tus agentes virtuales.

Con Vertex AI Search y Conversation, puedes crear y configurar almacenes de datos para los documentos o sitios web de tu organización. Un agente de IA generativa puede acceder a estos dominios o documentos relevantes para proporcionar la respuesta adecuada, como buscar en las preguntas frecuentes existentes en el sitio web de la empresa para generar una respuesta a través de Dialogflow CX.

Los generadores y las respuestas de reserva generativa aprovechan los modelos de lenguaje a gran escala (LLMs) para proporcionar respuestas al cliente. Los generadores pueden crear texto para correos electrónicos o resúmenes de conversaciones, mientras que las respuestas de reserva generativa se utilizan para generar respuestas comunicativas cuando la conversación del cliente se desvía de la ruta prevista, como cuando un cliente deja de comunicarse o no sigue una línea directa de consulta con las intenciones diseñadas.

Rutas de Conversación y la Importancia de la IA Generativa

En Dialogflow CX, la detección de intenciones es fundamental para dirigir la conversación del cliente a través de una ruta definida para alcanzar un resultado deseado. Existen varias rutas posibles:

  1. Ruta de parámetros básicos: Una ruta paso a paso para la entrada de parámetros mientras se completa un formulario.
  2. Ruta condicional o de evaluación de parámetros: Evaluación basada en parámetros o condiciones específicas para dirigir la conversación.
  3. Manejador de conocimiento: Fuente de respuestas a preguntas particulares a partir de datos internos.
  4. Situación de no coincidencia o sin entrada: Se maneja cuando no hay coincidencia de intención o no hay entrada del usuario.

La IA generativa se convierte en un aliado esencial para gestionar estas rutas. Por ejemplo, en la segunda ruta, un generador puede ser utilizado para crear una respuesta de cumplimiento, como un resumen de contenido o de conversación, análisis de sentimientos, o responder preguntas complejas.

El manejador de estados puede ser sustituido por un agente de IA generativa que utiliza almacenes de datos para buscar y devolver la información relevante al cliente. Estos almacenes de datos pueden configurarse para datos web, estructurados o no estructurados, como dominios específicos, documentos internos o preguntas frecuentes.

Finalmente, en una ruta de no coincidencia o sin entrada, se puede proporcionar una respuesta de reserva generativa para manejar de manera amistosa y natural una conversación que se haya desviado o haya quedado inactiva.

En resumen, los generadores y las respuestas de reserva generativa, ambos basados en LLM, se apoyan en las capacidades de lenguaje natural y en la vasta cantidad de datos con los que han sido entrenados, proporcionando una experiencia conversacional más rica y flexible en Dialogflow CX.

Tipos de Agentes Generativos que Puedes Crear

Existen varios tipos de agentes generativos que se pueden desarrollar para diferentes casos de uso. Aquí algunos ejemplos:

Agente de sitio web: responde preguntas basadas en los contenidos de tu sitio.

Agente de preguntas frecuentes: aborda preguntas comunes extraídas de una base de datos de FAQs.

Agente interno para empleados: responde consultas relacionadas con soporte de TI, HR u otros documentos internos de la empresa.

Agentes Híbridos: Combina lo Mejor de Ambos Mundos

Si ya tienes un agente en Dialogflow CX, puedes actualizarlo a un Agente Híbrido, combinando el control preciso de las conversaciones que ofrecen los flujos, parámetros, intenciones y transiciones con la capacidad de consulta generativa de los data store handlers. Esta actualización te permite eliminar o desactivar temporalmente rutas de intenciones para ciertos escenarios, delegando esos casos a los data store handlers.

Al integrar nuevas capacidades generativas, es crucial recordar que la inteligencia artificial generativa no es la solución definitiva para todo. La clave está en mantener lo que ya funciona bien en Dialogflow CX e ir añadiendo capacidades de manera incremental o creando nuevos casos de uso donde sea necesario.

Con Dialogflow CX, puedes adoptar un enfoque híbrido, “mezclando y combinando” lo mejor de los agentes basados en intenciones y agentes generativos, según el flujo de la conversación y las necesidades del usuario.

Generadores en Dialogflow CX: Potenciando Agentes Virtuales con IA Generativa

Los generadores en Dialogflow CX están diseñados para manejar respuestas genéricas que involucran conocimientos generales extraídos de un vasto conjunto de datos textuales en los que fueron entrenados, o bien, basarse en el contexto específico de una conversación. Esta flexibilidad permite inyectar respuestas dinámicas basadas en modelos de lenguaje de gran escala (LLMs) directamente en los agentes de Dialogflow CX.

Algunas de las capacidades clave de los generadores incluyen:

  • Uso de Modelos de Lenguaje Generativo en el Cumplimiento: Durante el proceso de cumplimiento en Dialogflow CX, los generadores pueden utilizar modelos de lenguaje generativo para elaborar respuestas, lo que permite a los agentes virtuales manejar interacciones complejas con los usuarios.
  • Extracción de Contexto de la Conversación: Los generadores son capaces de extraer y utilizar el contexto de una conversación en curso, lo que permite, por ejemplo, generar un resumen de la conversación en tiempo real.
  • Personalización de Respuestas: Los generadores pueden añadir texto personalizado generado automáticamente, o utilizar este texto generado como entrada para un webhook, como podría ser la creación de un correo electrónico generado automáticamente, o para preestablecer parámetros.
  • Encadenamiento de Llamadas a LLM: Esta característica permite construir agentes virtuales completamente generativos en Dialogflow CX, encadenando múltiples llamadas a modelos de lenguaje para manejar diversas etapas de la conversación.

Control y Responsabilidad en el Uso de IA Generativa

Dado el poder de los generadores, es fundamental aplicar principios de IA responsable. Google Cloud permite a los desarrolladores controlar el contenido que se utiliza para fundamentar las respuestas del bot en datos relevantes y factuales, así como establecer límites sobre cómo el agente de IA generativa responde a los usuarios. Esto asegura que las interacciones sean seguras, precisas y alineadas con los objetivos del negocio.

Aplicaciones Prácticas de los Generadores en Dialogflow CX

Los generadores permiten realizar una amplia gama de tareas que pueden transformar la manera en que los agentes virtuales interactúan con los usuarios. Algunas de las aplicaciones más destacadas incluyen:

  • Resúmenes de Artículos: Utilizando un modelo de lenguaje generativo, un generador puede resumir artículos extensos, proporcionando a los usuarios un resumen conciso y relevante de la información.
  • Resúmenes de Conversación: Los generadores pueden crear resúmenes de las interacciones que han tenido lugar durante la conversación, lo que puede ser útil tanto para los usuarios como para el seguimiento interno.
  • Análisis de Sentimiento en Tiempo Real: Durante una conversación, un generador puede analizar el sentimiento del usuario en tiempo real, permitiendo que el agente ajuste su respuesta para mejorar la experiencia del cliente.
  • Actualización de Formatos de Datos Estructurados: Los generadores también pueden actualizar formatos de datos estructurados, como JSON, lo que facilita la integración de las respuestas generadas en otros sistemas.
  • Toma de Decisiones Basada en Contexto: Un modelo de lenguaje puede evaluar el resultado de un cuestionario de elegibilidad, por ejemplo, y tomar decisiones informadas sobre el progreso de un usuario, manejando la conversación de manera adecuada.

Casos de Uso de Generadores en Dialogflow CX

Los generadores en Dialogflow CX pueden ser implementados en una variedad de escenarios, adaptándose a diferentes necesidades y mejorando significativamente la capacidad de los agentes virtuales para interactuar de manera efectiva y eficiente. Estos son algunos de los casos de uso en los que los generadores pueden ofrecer un valor significativo:

  • Atención al Cliente: Mejora de la precisión y relevancia de las respuestas en consultas complejas.
  • Automatización de Tareas: Generación de resúmenes automáticos, correos electrónicos personalizados, y manejo de tareas repetitivas.
  • Soporte Interno: Asistencia a empleados con resúmenes de políticas, procedimientos y otras informaciones relevantes.

Personalización y Configuración de Generadores en Dialogflow CX

Los generadores en Dialogflow CX pueden ser personalizados y configurados para generar respuestas dinámicas o textos que se utilizarán durante el cumplimiento de la conversación con el usuario. Esta flexibilidad permite a los desarrolladores adaptar los generadores a las necesidades específicas de su agente virtual, mejorando así la interacción con los usuarios.

Cómo Funcionan los Generadores en Tiempo Real

Durante el cumplimiento en tiempo real, se envía un texto de solicitud (prompt) al modelo generativo. Este prompt debe ser una pregunta o solicitud clara para que el modelo pueda generar una respuesta satisfactoria. Los prompts pueden incluir preguntas, instrucciones, información contextual, ejemplos o entradas parciales que el modelo completará o continuará.

Un aspecto crucial de los generadores es la posibilidad de seleccionar el modelo de lenguaje que se utilizará, como text-bison o code-bison, y ajustar los parámetros del LLM (Large Language Model) como Temperature, Top P, y Top K. Estos ajustes permiten controlar la creatividad y variedad de las respuestas generadas.

Ejemplos de Prompts y Uso de Marcadores de Posición

Los prompts son totalmente personalizables, lo que significa que puedes configurar el texto que se envía al modelo generativo. Por ejemplo, podrías crear un prompt que instruya al LLM a actuar como un experto en resúmenes de texto, solicitándole que resuma un texto dado en una o dos oraciones. Además, puedes hacer que el prompt sea contextual marcando palabras como marcadores de posición (placeholders) mediante el uso del símbolo $ antes de la palabra.

Estos marcadores de posición pueden luego asociarse con parámetros de sesión en el cumplimiento, y durante la ejecución, serán reemplazados por los valores de esos parámetros de sesión. Por ejemplo, podrías tener un marcador de posición que se sustituya con la última conversación completa, la última intervención del usuario, o cualquier otro parámetro de sesión recopilado.

Parámetros de Sesión y Placeholders Incorporados

En Dialogflow CX, los parámetros de sesión son fundamentales, ya que capturan y referencian los valores proporcionados por el usuario final durante una sesión. Cada parámetro tiene un nombre y un tipo de entidad, y estos datos estructurados pueden ser utilizados para realizar lógica o generar respuestas.

Además de los marcadores de posición personalizados, existen placeholders incorporados en los generadores que no necesitan asociarse con parámetros de sesión. Algunos de estos placeholders son:

  • $conversation: Representa la conversación entre el agente y el usuario, excluyendo la última intervención del usuario.
  • $last-user-utterance: Refleja el último texto que el usuario ha enviado.

Estos placeholders incorporados permiten un manejo más eficiente del contexto de la conversación sin necesidad de configurar manualmente parámetros de sesión adicionales.

Comparación con Vertex AI PaLM 2 para Texto

Si ya estás familiarizado con Vertex AI PaLM 2 para Texto utilizando el modelo text-bison, notarás que la función de generador en Dialogflow CX es prácticamente idéntica y utiliza el mismo backend. Ambas plataformas permiten definir un prompt, elegir un modelo, y ajustar atributos del LLM.

Sin embargo, hay diferencias clave entre ambas. En Dialogflow CX, los parámetros pueden ser utilizados y reemplazados automáticamente dentro de la herramienta, mientras que en Vertex AI sería necesario analizar y enviar la respuesta completa. Además, las APIs de Vertex AI PaLM actualmente ofrecen más características integradas, como máximas respuestas, secuencias de parada, respuestas en streaming, y filtros de seguridad, características que podrían integrarse en los generadores de Dialogflow CX en el futuro.

Integración de Modelos Fundacionales de Vertex AI en Dialogflow CX

Dialogflow CX utiliza modelos fundacionales de Vertex AI, específicamente PaLM2 para Texto, text-bison, y code-bison, para potenciar la función de generadores. Estos modelos proporcionan la capacidad de manejar y procesar interacciones complejas con los usuarios, ofreciendo respuestas que son tanto contextualmente precisas como personalizadas.

Ejemplos de Prompts en Dialogflow CX para Generadores

Dialogflow CX permite personalizar los prompts que se envían a los modelos generativos para generar respuestas durante la interacción con los usuarios. A continuación, se presentan ejemplos de cómo escribir estos prompts para diferentes propósitos.

Ejemplo de Prompt para Resumir Contenidos

Imagina que necesitas crear un resumen de un texto. Para ello, el prompt debe incluir instrucciones claras para el generador, seguido de un prefijo de texto y un marcador de posición para el input del usuario. Finalmente, se describe el formato del output deseado. Por ejemplo:

  1. Instrucción: Se indica que el objetivo es generar un resumen conciso.
  2. Prefijo de texto: Se introduce un marcador de posición para el texto de entrada, por ejemplo, $input-text.
  3. Formato del output: Se solicita un resumen conciso del texto en una o dos oraciones.

Ejemplo de Prompt para Resumir Conversaciones

Para generar un resumen de una conversación entre un humano y un AI, el prompt puede especificar los prefijos de los turnos de conversación. Además, se debe incluir la última intervención del usuario utilizando $last-user-utterance, ya que esta no está incluida en $conversation.

Ejemplo de Conversación:

  • AI: ¡Buen día! ¿En qué puedo ayudarte hoy?
  • Humano: Hola, ¿qué modelos puedo usar en los generadores de Dialogflow CX?
  • AI: ¡Puedes usar todos los modelos que proporciona Vertex AI!
  • Humano: ¡Gracias, eso es increíble!

El generador estaría encargado de proporcionar un resumen conciso de esta conversación en una o dos oraciones.

Ejemplo de Prompt para Responder Preguntas con Conocimiento Propio

Aquí se muestra cómo escribir un prompt para responder preguntas de manera educada:

  1. Primera Opción: Puedes confiar en el conocimiento interno del modelo generativo, que proporcionará respuestas basadas en los datos de entrenamiento. Sin embargo, es importante notar que esta información podría no ser precisa o actualizada.
  2. Segunda Opción: Puedes enriquecer el prompt con información adicional, conectando el generador a un sistema de recuperación de información, como una base de datos o un motor de búsqueda. El objetivo del prompt es responder preguntas de manera educada basándose en la información proporcionada. Si la pregunta no puede ser respondida con la información disponible, el modelo debe declinar educadamente la respuesta.

Ejemplo de Prompt para Manejar Escalaciones a un Agente Humano

En situaciones donde un usuario solicita hablar con un operador, el prompt debe instruir al generador para que actúe como un agente de servicio al cliente educado. El generador debe responder de manera adecuada a la solicitud del usuario utilizando $last-user-utterance y asegurar al usuario que hará todo lo posible por ayudarle. Las instrucciones finales en el prompt deben prevenir que el modelo sea demasiado extenso, indicando que no debe hacer preguntas adicionales ni preguntar si hay algo más en lo que pueda ayudar.

Ejemplo de Prompt para Optimizar una Búsqueda en Google

Este ejemplo muestra cómo un generador puede optimizar una búsqueda en Google. Se instruye al generador para que actúe como un experto en búsquedas de Google y utilice «Google Fu» para construir términos de búsqueda concisos que proporcionen los mejores resultados de calidad.

  • Entrada del Usuario: Un query de búsqueda proporcionado por el usuario.
  • Salida del Generador: Una versión optimizada de ese query para maximizar la eficacia de la búsqueda en Google.

Cada uno de estos ejemplos demuestra la flexibilidad y el poder de los generadores en Dialogflow CX, permitiendo a los desarrolladores diseñar prompts que maximicen la eficacia y relevancia de las interacciones del agente virtual con los usuarios.

Configuración de Generadores en Dialogflow CX

Para implementar generadores en Dialogflow CX, debes seguir algunos pasos clave que incluyen la creación y configuración del generador, y su integración en los flujos de conversación. A continuación, se describe el proceso detalladamente:

1. Asignar un Nombre Descriptivo y Configurar el Prompt

  • Nombre Descriptivo: Primero, ingresa un nombre descriptivo para el generador. Este nombre te ayudará a identificarlo fácilmente en los paneles de configuración.
  • Configurar el Prompt: Configura el prompt de texto, selecciona el modelo de lenguaje (por ejemplo, text-bison o code-bison) y ajusta los controles como la Temperatura, Top P, y Top K según sea necesario.

2. Guardar y Seleccionar el Generador

  • Una vez que hayas configurado y guardado el generador, este estará disponible para ser seleccionado en el panel de configuración de rutas.
  • Al configurar la ruta de cualquier página en un flujo, puedes habilitar los generadores en la sección de cumplimiento (Fulfillment) seleccionando el generador que creaste.

3. Asociar Marcadores de Posición con Parámetros de Sesión

  • Después de seleccionar un generador, debes asociar los placeholders del prompt con los parámetros de sesión.
  • Si en tu prompt solo utilizas placeholders integrados, como $conversation o $last-user-utterance, no verás la sección de parámetros de entrada.

4. Encadenamiento de Generadores

  • Es posible agregar varios generadores en un solo cumplimiento, que se ejecutarán secuencialmente. El output de un generador puede ser utilizado como input para otro.
  • Este encadenamiento de múltiples modelos de lenguaje (LLMs) facilita la depuración de pasos específicos y mejora la precisión de las respuestas.

Por ejemplo, un generador podría proporcionar información sobre destinos, y otro podría formatear o resumir esa información antes de presentarla al usuario. Esto permite tener respuestas concisas con prompts separados que dan instrucciones claras al LLM.

5. Utilizar el Output de los Generadores

  • El output del generador se almacena en una variable, por ejemplo, request.generative.destination. Este nombre único puede ser usado posteriormente como input para otros generadores o para las respuestas del Agente.
  • En el ejemplo dado, se muestra cómo request.generative.destination es utilizado como la respuesta del agente.
  • Además, el output generativo del request se puede utilizar como cualquier otro parámetro de sesión en la sección «Agent Says», en webhooks o en parámetros predefinidos.
Generative Fallback in DialogflowCX

Generative Fallback

La función de generative fallback utiliza modelos de lenguaje grandes (LLMs, por sus siglas en inglés) para generar respuestas cuando el chatbot no sabe cómo responder a una pregunta del usuario. A diferencia de las respuestas genéricas que pueden frustrar a los usuarios, el generative fallback permite que el asistente virtual continúe la conversación de manera coherente y contextual, mejorando significativamente la experiencia de usuario.

Un Ejemplo Práctico: Consulta sobre Suscripciones

Imaginemos una conversación en la que un usuario pregunta sobre su suscripción a un servicio. La interacción podría llevar a varias acciones, como identificar al usuario, actualizar su plan de suscripción, confirmar la actualización y luego preguntar si necesita algo más. Durante cualquiera de estas fases, existe la posibilidad de que el asistente virtual no pueda emparejar la intención del usuario con una respuesta adecuada.

Es en este punto donde entra en juego el generative fallback, brindando al asistente la capacidad de resolver situaciones donde el usuario se desvía del flujo esperado sin desencadenar una nueva acción o flujo.

Casos Comunes de Uso

Aunque se diseñen agentes virtuales robustos con diversas intenciones predefinidas, siempre hay margen para errores, como los conocidos errores de No Coincidencia (No-Match errors). Por ejemplo, los usuarios pueden decir algo inesperado o cometer un error al completar un formulario. Este tipo de errores no se pueden evitar por completo, pero gracias a generative fallback, los agentes virtuales pueden generar respuestas personalizadas que no solo evitan la frustración del usuario, sino que mantienen la conversación en el camino correcto.

Principios de Conversación Eficiente: El Principio Cooperativo

Para manejar de manera efectiva las interacciones, incluso cuando ocurren errores, los asistentes virtuales deben seguir el Principio Cooperativo, que es la base del diseño conversacional. Este principio, desarrollado por el filósofo Paul Grice, se basa en cuatro reglas conocidas como las Máximas de Grice:

  1. Máxima de Calidad: Decir la verdad.
  2. Máxima de Cantidad: Proporcionar la cantidad justa de información.
  3. Máxima de Relevancia: Aportar solo lo que es relevante para la conversación.
  4. Máxima de Manera: Ser claro, evitando la ambigüedad.

Estas máximas guían la comunicación humana, y las personas esperan que los asistentes virtuales sigan las mismas reglas, lo que refuerza la necesidad de diálogos fluidos y contextuales.

Principio Cooperativo de Paul Grice

Para comprender mejor cómo opera esta teoría del principio cooperativo a los flujos conversacionales de nuestra interfaz vean esta masterclass(40 minutos) que está plagada de ejemplos sobre cómo y cuánto podemos mejorar la experiencia de usuario:

Applying Built-in Hacks of Conversation to Your Voice UI (Google I/O ’17)

Desafíos en la Comprensión del Contexto

Aunque los avances en reconocimiento automático del habla permiten que los agentes casi siempre entiendan lo que el usuario dice, comprender lo que quiere decir sigue siendo un reto. Las frases no suelen tener sentido en aislamiento, por lo que es esencial que el asistente pueda rastrear el contexto de la conversación.

Por ejemplo, si un usuario pregunta por entradas para un concierto, el agente puede preguntar a qué concierto se refiere. Si el usuario luego pregunta “¿Cuándo viene él a la ciudad?”, el asistente debe interpretar que “él” se refiere al cantante del concierto mencionado anteriormente. Sin un manejo adecuado del contexto, la conversación puede desviarse o volverse confusa.

Dialogflow CX y la Gestión del Flujo de Conversación

En Dialogflow CX, cada página en el flujo del agente virtual está compuesta por elementos que determinan el estado de la conversación, como diálogos de entrada, parámetros, condiciones, rutas y cumplimiento. Aquí es donde se le indica a Dialogflow qué decir, qué hacer y cuál debe ser el siguiente paso.

Flujo de Conversación en DialogflowCX

Manejo de Eventos y la Función de Generative Fallback

En una conversación, es posible que el usuario no proporcione la información adecuada para que el agente avance al siguiente estado. Es en estos casos donde los manejadores de eventos entran en juego. Estos manejadores permiten que el asistente actúe de manera proactiva cuando no se siguen las rutas previstas. Con la ayuda de generative fallback, el agente puede gestionar estas situaciones sin la necesidad de configurar manualmente cada escenario posible.

Generative Fallback en DialogflowCX

El objetivo es asegurarse de que el usuario no se sienta abandonado durante la interacción, y que el asistente siempre pueda corregir el rumbo de la conversación, ofreciendo una experiencia más natural y efectiva.

Cómo Generative Fallback Mejora la Cobertura de Intenciones y Maneja Errores

El uso de la función Generative Fallback en Dialogflow CX no solo permite que los agentes virtuales manejen errores con mayor naturalidad, sino que también aumenta la cobertura de intenciones y mejora la interacción general con los usuarios. Activando esta función, los agentes tienen la capacidad de gestionar los llamados eventos de no coincidencia (no-match events), ofreciendo respuestas generadas cuando no se logra emparejar la entrada del usuario con una intención específica.

Habilitando Generative Fallback en No-Match Event Handlers

Una de las características más útiles del generative fallback es que puede ser habilitada en los manejadores de eventos de no coincidencia. Esto se puede aplicar en flujos completos, páginas específicas, o durante el llenado de parámetros en una conversación. Cuando un evento de no coincidencia se activa y esta función está habilitada, Dialogflow CX intentará generar una respuesta basada en un modelo de lenguaje grande (LLM). Si la generación no es exitosa, el agente recurrirá a la respuesta estándar previamente configurada.

Esta flexibilidad es esencial para mantener conversaciones naturales, incluso cuando el flujo de la interacción no sigue el camino esperado. La capacidad de adaptarse sobre la marcha reduce la frustración de los usuarios, ya que el agente ofrece respuestas útiles, en lugar de mensajes genéricos que podrían hacer que los usuarios abandonen la interacción.

Generative fallback enablement levels in DialogflowCX

Generative Fallback en Flujos Completos

Si se habilita el generative fallback para eventos de no coincidencia en la página de inicio de un flujo, se cubrirán todos los eventos de no coincidencia que no estén manejados explícitamente en el flujo. Esto permite que el asistente virtual genere respuestas automáticamente en cualquier parte del flujo, lo que mejora la experiencia del usuario al asegurar que la conversación no se interrumpa de manera abrupta.

Por ejemplo, en el caso de un asistente virtual que gestiona la búsqueda y reserva de servicios, el flujo puede describirse como “Buscar, encontrar y reservar”. Al usar el parámetro $flow-description, se asegura que las respuestas generadas estén alineadas con el propósito general del flujo, ayudando a mantener la coherencia en las interacciones con los usuarios.

Generative Fallback a Nivel de Página

En muchos casos, los usuarios pueden desviar la conversación cuando se encuentran en una página específica del flujo. Si habilitas el generative fallback a nivel de página, el asistente puede generar respuestas cuando el input del usuario no coincida con las intenciones activas dentro de esa página.

Por ejemplo, si un usuario está en una página destinada a la confirmación de una reserva y su mensaje no coincide con las intenciones activas en esa página, el generative fallback puede generar una respuesta que ayude a mantener la conversación alineada con las intenciones del usuario, en lugar de simplemente emitir un mensaje de error o redirigir al inicio del flujo.

En este contexto, si el texto de la solicitud ha sido configurado correctamente para usar el parámetro $route-descriptions, el agente aprovechará las descripciones de las intenciones activas en la página para generar un mensaje adecuado. Esto no solo mejora la adaptabilidad del agente, sino que también proporciona una mayor precisión y contexto en las respuestas generadas.

Respuestas Contextuales y Personalizadas

Al combinar los parámetros de flujo con descripciones específicas de ruta y página, el agente puede generar mensajes que estén en sintonía con el objetivo de la interacción, brindando una experiencia mucho más fluida. Además, el uso de descripciones claras en las rutas permite al agente generar respuestas que están alineadas con la etapa actual de la conversación.

Por ejemplo, si el flujo principal de un agente está diseñado para gestionar reservas de actividades, y en una de las páginas se necesita confirmar detalles específicos de la reserva, un generative fallback bien configurado podrá generar respuestas que respondan adecuadamente incluso si el input del usuario no coincide con una intención clara, pero sí con el contexto general del flujo.

El uso de generative fallback no solo mejora la capacidad de los asistentes virtuales para manejar situaciones inesperadas, sino que también refuerza la percepción de naturalidad en la conversación. Los usuarios tienden a responder mejor cuando el asistente parece seguir un flujo lógico y contextual, incluso cuando ocurren errores o se presentan inputs inesperados.

Personalización de Prompts

El Generative Fallback puede configurarse para diversos eventos como saludos, despedidas, resumen de la conversación o manejo de errores. Sin embargo, para que el agente mantenga un tono coherente con la experiencia del usuario, es fundamental proporcionar contexto adecuado en los prompts.

En la pestaña ML de la configuración del agente, en la subpestaña Generative AI, tienes dos opciones:

1. Seleccionar una plantilla predefinida como “Default” o “Example”.

2. Crear y personalizar una nueva plantilla desde cero.

Plantillas Predefinidas y Personalizadas

La plantilla por defecto no es modificable directamente, pero puedes influir en las respuestas añadiendo detalles a los prompts en la sección de Data store. Por otro lado, la plantilla “Example” es totalmente editable y puede servir de guía para crear tus propios prompts.

Para modificar la plantilla “Example”, haz clic en editar, lo que te llevará a una ventana donde podrás ingresar un nombre de plantilla y un prompt de texto. Aquí es donde puedes agregar contexto y establecer el tono de voz del agente. Por ejemplo, el tono de un agente de soporte al cliente sería diferente al de un agente diseñado para un juego infantil.

Uso de Marcadores y Placeholders

Dentro del prompt, es crucial usar los marcadores (placeholders) correctos para asegurar que el modelo genere respuestas contextuales. Los placeholders más comunes son:

  • $conversation: Muestra el historial de la conversación, excepto la última interacción del usuario.
  • $last-user-utterance: Muestra el último mensaje enviado por el usuario.
  • $flow-description: Extrae la descripción del flujo activo.
  • $route-descriptions: Extrae las descripciones de las intenciones activas en la página actual.
Prompt placeholders in DialogflowCX

Estos marcadores permiten que el modelo genere respuestas que no solo sean correctas, sino que también estén en sintonía con la situación actual del usuario y el estado del agente.

Ejemplo de Personalización de Prompt

Veamos un ejemplo de cómo funciona esta personalización. En un escenario en el que un asistente ayuda a buceadores a encontrar y reservar viajes en barco, el prompt personalizado podría leerse así:

«Eres un agente amigable que ayuda a buceadores viajeros.
Actualmente solo puedes asistir en $flow-description.
No puedes ayudar con buceo en tierra ni recomendar tiendas locales de buceo o resorts de buceo. Actualmente puedes $route-descriptions.»

Este prompt también incluye el historial de la conversación entre el humano y el agente, formateado de la siguiente manera:

«Conversación hasta ahora: $conversation.
El humano dijo: $last-user-utterance.»

Cuando los placeholders se reemplazan con la información correspondiente, el prompt podría leerse así:

  • $flow-description: “Actualmente solo puedes ayudar con la búsqueda, localización y reserva de viajes en barco.”
  • $route-descriptions: “Actualmente puedes asistir a usuarios que buscan reservas grupales o charters completos. Inicialmente, debes recolectar detalles como periodo de salida, destino y número de invitados (mínimo 4, máximo 15). Los destinos deben ser en el Pacífico: Costa Rica, México, Islas Galápagos.”
  • $conversation: “Humano: Hola, mi nombre es Alessia. AI: Hola Alessia, ¿en qué puedo ayudarte hoy? Humano: ¿Puedes ayudarme a encontrar un barco para mi familia?”
  • $last-user-utterance: “Los niños quieren ir a las Maldivas.”

Con toda esta información incorporada en el prompt, el LLM puede generar una respuesta precisa y contextualizada. En este ejemplo, el output sería algo como:

«Lo siento, Alessia. Actualmente solo podemos ayudarte con viajes en barco en Costa Rica, las Islas Galápagos y algunas ubicaciones en México.»

Es esencial tener buenas descripciones de flujo e intenciones, ya que estos son los pilares que guían al LLM para generar respuestas que mantengan coherencia y contexto con la conversación. Las descripciones claras permiten que el modelo comprenda mejor el propósito del agente y las interacciones del usuario, lo que garantiza una experiencia más fluida.

¿Cuándo usar flujos basados en intenciones y cuándo IA generativa?

Flujos basados en intenciones: Se utilizan cuando se requiere una respuesta completamente determinista, un proceso auditable paso a paso, solicitudes transaccionales o se necesita cumplir con estrictas normas de seguridad y cumplimiento de datos. Estos flujos son implementados mediante intenciones manuales, frases de entrenamiento, rutas y transiciones de conversación que apoyan una lógica de negocio específica, generalmente en casos de alto volumen.

Aunque los flujos basados en intenciones tienden a requerir más tiempo de construcción, son esenciales cuando se necesita precisión y control total sobre el comportamiento del bot.

IA Generativa con LLMs: Es ideal cuando se permite cierta variabilidad en las respuestas, para ofrecer una cobertura dinámica a preguntas más amplias, y donde las necesidades de seguridad y cumplimiento de datos son menos estrictas. Este enfoque permite que el bot escanee contenido o que se le describa una tarea, y el modelo de IA diseña el flujo conversacional.

La IA Generativa trabaja con datos no estructurados, como sitios web y documentos, para habilitar flujos dinámicos y ampliar las capacidades de los bots de intenciones.

Intent-driven and generative AI use cases in DialogflowCX

El Enfoque de Google Cloud: Un Bot Híbrido con lo Mejor de Ambos Enfoques

La plataforma de Google Cloud permite a los clientes diseñar recorridos de usuario combinando flujos basados en intenciones y IA generativa dentro del mismo diseño de bot en Dialogflow CX. Este diseño híbrido aprovecha lo mejor de ambos mundos:

  • Casos de uso basados en intenciones: Son ideales para respuestas totalmente deterministas, procesos auditables paso a paso, o bots ya existentes que logran una alta contención en las consultas de los usuarios.
  • Casos de uso de IA generativa: Son perfectos para extraer respuestas de datos no estructurados y encadenar llamadas a LLMs para construir flujos de agentes virtuales completamente generativos.

Agentes Híbridos: El Poder de la Flexibilidad

Con los Agentes Híbridos, puedes mezclar flujos basados en intenciones e IA generativa para cubrir una variedad de casos de uso. Algunas posibilidades incluyen:

  • Ampliar la cobertura de preguntas a partir de datos no estructurados en un bot basado en intenciones.
  • Utilizar respuestas generativas como fallback cuando los flujos basados en intenciones no coincidan con la consulta o se ingrese un valor de parámetro no válido.
  • Añadir resúmenes o respuestas personalizadas generadas automáticamente a los flujos basados en intenciones.
Hibrid Agents in DialogflowCX

¿Cómo Dialogflow Aprovecha los Almacenes de Datos de Vertex AI?

Al tener un agente de Dialogflow CX configurado para las necesidades de tu negocio, puedes crear y gestionar tus propios almacenes de datos en Vertex AI Search y Conversation. Estos almacenes pueden cubrir dominios de sitios web, documentos no estructurados y FAQs estructuradas.

Los agentes virtuales utilizan la detección de intenciones para dirigir las preguntas de los clientes hacia la información relevante. Para la mayoría de los casos de uso, las intenciones deben definirse manualmente, emparejando las consultas de los clientes con las intenciones correspondientes.

Sin embargo, el flujo de rutas de intenciones puede ser reemplazado por un Agente Generativo que utiliza los almacenes de datos para buscar y devolver la información relevante al cliente. Además, rutas como las evaluaciones condicionales o los eventos de no coincidencia (no match) pueden ser gestionadas por respuestas generativas basadas en LLM durante el proceso de cumplimiento.

Este es un resumen general de cómo las nuevas características de IA generativa se integran en los procesos existentes para ayudar a los agentes virtuales a manejar interacciones específicas con los clientes.

Un Caso de Uso Práctico: Soporte al Cliente con Vertex AI

Imaginemos que un cliente utiliza una aplicación de chat empresarial y formula una pregunta en lenguaje natural relacionada con los manuales operativos de un producto. Un agente de Dialogflow redirige esta pregunta a Vertex AI Search y Conversation para acceder al almacén de datos relevante y proporcionar una respuesta.

Los modelos de lenguaje extenso de Vertex AI generan la respuesta, ofreciendo los resultados de la búsqueda, fragmentos y resúmenes de los documentos relevantes, y facilitando una conversación multivuelta con el cliente para brindar más soporte en esa línea de consulta.

La información se devuelve al cliente en forma de una respuesta en lenguaje natural, potenciada por el modelo fundacional PaLM 2 para Text y el modelo de lenguaje Text-Bison.

Lo mejor de todo es que el cliente puede continuar la conversación de manera fluida y cómoda a través de la aplicación de chat, sin ser consciente de la complejidad que ocurre tras bambalinas.

Este apartado del artículo subraya cómo la combinación de flujos de intenciones tradicionales y capacidades de IA generativa puede ofrecer una experiencia de usuario más flexible y robusta, permitiendo a las empresas aprovechar tanto datos estructurados como no estructurados.

Cierre

Con las capacidades avanzadas de Dialogflow CX y Vertex AI, las empresas pueden construir asistentes conversacionales que no solo cumplan con las expectativas del usuario, sino que también ofrezcan una experiencia altamente personalizada y eficiente, manteniendo siempre la fluidez y el contexto de la interacción.

Espero que este artículo introductorio de DialogflowCX te sirva para comenzar tu camino en el desarrollo de agentes chatbots y más. Todo comentario es bienvenido! =) y recuerda que si estás buscando consultoria o desarrollo IA puedes contactarme!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio