Creación y Configuración de un Agente de IA Generativa en Dialogflow CX con VertexAI

Ya hemos repasado los conceptos básicos que ofrecen estas herramientas de Google Cloud en los articulos Introducción a DialogflowCX para crear chatbots de atención al cliente y IA conversacional en Vertex AI y DialogflowCX. Ahora exploraremos cómo crear y configurar un Agente de IA Generativa para su uso en Dialogflow CX. Recuerda crear un primer proyecto en Google Cloud Dialogflow Platform.

Hay dos formas de crear un agente híbrido en Dialogflow CX:

1. Auto-generate (Generación automática).

2. Build your own (Construir tu propio agente).

New Agent in DialogflowCX

Opción 1: Auto-generate (Generación Automática)

Seleccionar la opción Auto-generate te llevará a Vertex AI Search and Conversation, donde puedes crear un agente de IA generativa y un almacén de datos para que responda preguntas de clientes enfocadas en documentos y dominios específicos.

Puedes elegir crear un buscador con la opción search, un chatbot o un sistema de recomendaciones basado en tus datos.

Chat Aplication in DialogflowCX

Comenzaremos por crear nuestro agente de chat:

  1. Primer paso: Seleccionar aplicación de chat
  2. Proporcionar un nombre de la empresa, zona horaria e idioma.
  3. Definir un agente con su nombre y ubicación.

En esta etapa, puedes añadir almacenes de datos existentes a tu agente de IA generativa o crear un nuevo almacén de datos. Si decides crear uno nuevo, selecciona el tipo de datos que tu aplicación indexará: sitio web, datos no estructurados o datos estructurados.

Más adelante en este artículo me explayaré más en cómo ingerir datos en tu almacén con más detalle.

Una vez que hayas creado o vinculado los almacenes de datos a tu agente, podrás conectar dichos almacenes a un agente existente para que las respuestas se generen a partir de intenciones específicas.

Opción 2: Build your own (Construir tu propio Agente)

La opción Build your own te lleva directamente a Dialogflow CX, permitiéndote tener control total sobre la experiencia y aprovechar herramientas avanzadas como Generadores y Fallbacks Generativos, todo a través de una interfaz sencilla.

Para añadir funciones de un agente de IA generativa a un agente existente, primero debes habilitar el manejador de estado de almacenes de datos:

  1. Selecciona tu flujo desde la sección FLOWS en la pestaña de Build.
  2. Selecciona una página del flujo para abrir la ventana de configuración.
  3. Haz clic en Add state handler (Añadir manejador de estado).
  4. Marca la casilla junto a Data stores (Almacenes de datos) para habilitar el manejador de conocimiento.
  5. Haz clic en Apply (Aplicar).

Una vez que los almacenes de datos han sido habilitados, puedes editar qué almacenes serán utilizados en cada página del flujo de conversación. En las propiedades de una página, selecciona Edit data stores para abrir un menú en el lado derecho de la pantalla con una lista de almacenes de datos configurados.

Configuration in DialogflowCX

Aquí puedes añadir tres tipos de almacenes de datos: sitio web, documentos no estructurados y documentos de FAQ. Para cada campo, puedes seleccionar un almacén de datos existente o crear uno nuevo, lo que te llevará nuevamente a Vertex AI Search and Conversation para definir el tipo de aplicación y el nombre del almacén.

Conexión entre Vertex AI y Dialogflow CX

Una vez que el almacén de datos se ha propagado a tu agente de Dialogflow CX, podrás aprovechar las capacidades de IA generativa asociadas con Vertex AI Search and Conversation. Además, puedes moverte fácilmente entre Dialogflow CX y Vertex AI Conversation haciendo clic en el enlace Data stores en la pestaña Manage de Dialogflow CX.

Puedes utilizar las respuestas generadas por Vertex AI Conversation junto con texto adicional en el cuadro de texto Agent says (Respuesta del agente). En la sección Agent responses (Respuestas del agente), puedes proporcionar respuestas personalizadas que hagan referencia a las respuestas generativas.

Por ejemplo, usa $request.knowledge.questions[0] en la sección Agent says para incluir la respuesta generativa.

Agent response DialogflowCX

Control y Personalización de Respuestas

Cada respuesta generada a partir del contenido de tus almacenes de datos recibe una puntuación que indica la probabilidad de que esté fundamentada y, por ende, sea precisa. Puedes personalizar qué tipos de puntuaciones permitir. Si una respuesta tiene una puntuación por debajo de lo permitido, no será mostrada, lo que te permite ajustar el rango de respuestas que proporcionarás según el contexto.

Grounding confidence in DialogflowCX

Dependiendo del servicio que estés construyendo, podrías querer proporcionar respuestas estrictamente basadas en tus datos. Por ejemplo, si estás ofreciendo asesoramiento legal, probablemente querrás que las respuestas sean lo más precisas posibles. En cambio, si el servicio es más informativo, como un asistente de viajes, podrías permitir respuestas más creativas y abiertas.

Mejora de la Calidad de las Respuestas

Proporcionar información contextual sobre tu almacén de datos puede mejorar la calidad de las respuestas generadas, haciéndolas más coherentes con la identidad de tu marca. De forma similar a los generadores, puedes dar un tono de voz e identidad a tu agente virtual generativo.

Data store prompts in DialogflowCX

Un ejemplo de prompt para un almacén de datos podría ser:

“Tu nombre es el Asistente Virtual de ACME, y eres un asistente de IA servicial y educado de ACME Co., un sitio de comercio electrónico ficticio. Tu tarea es asistir a los humanos en el sitio web de la empresa.”

Esta característica es compatible con varios idiomas, incluidos: danés, neerlandés, inglés, francés, alemán, hindi, italiano, portugués brasileño, español, y sueco. Actualmente, solo se admite la región global y no se permite el uso de claves de cifrado gestionadas por el cliente.

Supported languages in DialogflowCX

Con estas opciones, puedes configurar un agente de IA generativa que se ajuste a tus necesidades y personalizar la experiencia del usuario utilizando datos de tus almacenes, todo dentro del entorno flexible y poderoso de Dialogflow CX y Vertex AI.

Gestión de Datos con Vertex AI

Una de las características más destacadas de Vertex AI es su facilidad de uso para los desarrolladores. En este módulo, exploraremos cómo crear un motor de búsqueda, ingerir datos en un almacén de datos, y gestionar los datos dentro de dicho almacén. A continuación, se detalla el proceso para configurar un almacén de datos y un motor de búsqueda básico.

Creación de un Almacén de Datos

Una de las ventajas de Vertex AI es su capacidad para indexar y buscar datos desde varias fuentes, ya sea un sitio web accesible públicamente o tipos específicos de datos estructurados o no estructurados. Estos son los pasos clave para crear un almacén de datos:

1. Elección del tipo de datos: Lo primero es elegir qué tipo de datos deseas importar. Puede ser un sitio web, datos estructurados o no estructurados. Todos los datos deben residir en BigQuery, Cloud Storage, o ser un sitio web.

Puedes ingresar las URLs de los sitios web que desees incluir en tu almacén de datos, no solo los sitios de los que eres dueño. Además, tienes la opción de excluir cualquier sitio web que no quieras que sea buscado. Sin embargo, solo los sitios web públicos pueden ser ingeridos en este momento. Si deseas incluir sitios privados, deberás crear un almacén de datos no estructurados y subir los archivos HTML de los sitios en cuestión.

Data Store in VertexAI

2. Preparación de los datos: Los datos estructurados en Cloud Storage deben estar en formato NDJson o Json Lines. Los datos no estructurados, como HTML, PDFs, o archivos de texto plano, pueden ser ingeridos automáticamente o con metadatos adicionales. Estos metadatos se almacenan en Cloud Storage o en una tabla de BigQuery para mejorar los resultados de búsqueda.

Los datos estructurados en BigQuery no necesitan modificaciones adicionales y pueden importarse directamente a tu almacén de datos.

Si estás trabajando con sitios web públicos, Vertex AI Search aprovecha la información indexada por Google Search, por lo que cualquier motor basado en sitios externos será inmediatamente accesible.

Type of data store in VertexAI

3. Esquema de los datos: Al importar datos estructurados, puedes optar por que el sistema detecte automáticamente el esquema o proporcionar uno personalizado. La detección automática es recomendada para los primeros motores de búsqueda, ya que simplifica el proceso, aunque puede generar resultados de menor calidad. Puedes mejorar estos resultados editando el esquema después de la detección automática, aunque esto requerirá reindexar los datos, lo cual puede ser un proceso largo.

Para acelerar este proceso, se sugiere ingerir un pequeño subconjunto representativo de los datos, revisar el esquema auto-detectado, realizar las ediciones necesarias, y luego ingerir el resto de los datos. La forma más rápida y eficiente es proporcionar un archivo Json con el esquema definido manualmente, aunque este método requiere crear el archivo sin soporte directo desde la consola de Google Cloud.

4. Mapeo de propiedades clave: Al definir o editar un esquema, es importante centrarse en los campos clave como título, descripción, URI y categoría. Estos campos ayudan a asignar significado semántico a los documentos. Las propiedades tienen tipos primitivos (booleano, objeto, array, número, cadena o entero) y pueden configurarse para ser:

  • Indexables: Si pueden ser filtrados, facetados, aumentados o clasificados.
  • Buscables: Si se pueden indexar de manera inversa para consultas de texto no estructurado.
  • Recuperables: Si los campos pueden devolverse en una respuesta de búsqueda.
  • Facetables dinámicos: Si se pueden utilizar para organizar información en encabezados de sección.
  • Autocompletables: Si pueden ser usados directamente como sugerencias.

Las propiedades de los esquemas auto-detectados son, por defecto, indexables, buscables y recuperables siempre que cumplan con los requisitos de tipo y se mantengan dentro de los límites máximos.

Ingesta de Datos y Creación del Motor de Búsqueda

Una vez que los datos están preparados y el esquema está configurado, el siguiente paso es importar los datos como documentos en el almacén de datos. Después, puedes crear un motor de búsqueda o conversación, y vincularlo al almacén de datos correspondiente.

Los almacenes de datos pueden compartirse entre motores, lo que permite que los mismos datos impulsen tanto soluciones de búsqueda como de conversación. Además, un motor puede tener varios almacenes de datos, lo que resulta útil cuando deseas realizar consultas sobre datos de diferentes tipos.

Limitaciones en la Ingesta de Datos

Es importante tener en cuenta algunas limitaciones cuando trabajas con los almacenes de datos de Vertex AI:

  • La búsqueda en sitios web solo admite sitios públicos.
  • Para la búsqueda no estructurada, puedes importar como máximo 100,000 archivos por vez, con un límite total de 40 millones de archivos. Cada archivo individual no puede superar los 100 MB.
  • Para la búsqueda estructurada, se pueden importar hasta 100 archivos por vez, y el tamaño de cada archivo no puede exceder los 2 GB.
  • El rendimiento de ingestión es de aproximadamente 200 filas por segundo, por lo que para 100 millones de filas tomaría alrededor de 1,4 horas completar la ingestión.
VertexAI data limitations

Mejora de los Resultados de Búsqueda con Eventos de Usuario

Los eventos de usuario pueden mejorar la calidad de tus recomendaciones y el ranking de los resultados de búsqueda. Por ejemplo, los resultados de búsqueda con una mayor tasa de clics se potenciarán, mientras que los resultados con una tasa de clics más baja se reducirán en importancia.

Para enviar eventos en tiempo real, puedes utilizar la API de Vertex AI o un pixel de JavaScript. Además, puedes importar eventos históricos desde Cloud Storage, BigQuery o mediante un método inline. A continuación, se muestra un fragmento de código en Python para registrar eventos de usuario en tiempo real:

Real Time user event in DialogflowCX

Importación de Eventos Históricos

Si ya tienes datos de eventos históricos, también puedes importarlos en bloque para mejorar la calidad de las recomendaciones y el ranking de los resultados de búsqueda. Utilizando la API de Discovery Engine, puedes importar eventos históricos desde BigQuery o Cloud Storage.

Este enfoque te permite ajustar el rendimiento de tu motor de búsqueda con base en interacciones pasadas, optimizando continuamente la experiencia del usuario.

Recursos Adicionales

Este contenido proviene del curso oficial de Vertex AI Search and conversation with Dialogflow CX que puedes tomar tu mismo.

Con estos pasos, puedes crear tu agente y cargar en su entrenamiento los datos necesarios para trabajar con ellos. Espero que te haya servido y que puedas compartir conmigo tus casos de uso y recuerda que si estás buscando consultoria o desarrollo IA puedes contactarme!

Deja un comentario

Scroll al inicio