Agentes de almacén de datos

Los agentes de almacén de datos son un tipo especial de agente de Dialogflow que puede proporcionar respuestas de agente generadas por LLM basadas en el contenido de tu sitio web y los datos subidos.

Para crear este agente, debes proporcionar almacenes de datos cuando lo crees.

Un agente de almacén de datos tiene controladores de estado especiales llamados controladores de almacén de datos. Con estos controladores de almacén de datos, tu agente de almacén de datos puede tener conversaciones sobre el contenido con tus usuarios finales.

Limitaciones

Se aplica la siguiente limitación:

  • Actualmente, esta función solo admite idiomas seleccionados en DG. Consulta la columna del almacén de datos en la referencia de idioma.
  • Solo se admiten las siguientes regiones: global, us multirregional y eu.

Control de acceso

Si eres el propietario del proyecto, tienes todos los permisos necesarios para crear un agente de almacén de datos. Si no eres el propietario del proyecto, debes tener los siguientes roles:

  • Administrador de Dialogflow
  • Administrador de Discovery Engine

Para obtener más información, consulta la guía de control de acceso de Dialogflow.

Crea un agente de almacén de datos

Para crear un agente de almacén de datos, sigue estos pasos:

  1. Si aún no lo has hecho, sigue las instrucciones de setup de Dialogflow.
  2. En la consola de Google Cloud, ve a la página Búsqueda y conversación.

    Búsqueda y conversación

  3. Selecciona tu proyecto en el menú desplegable de la consola.

  4. Si aún no activaste la API, lee y acepta las Condiciones del Servicio y, luego, haz clic en Continuar y activar la API.

  5. Haz clic en Create a New App o New App.

  6. Selecciona Chat.

  7. Proporciona el nombre de tu empresa en la sección Configuración del agente.

  8. Expande la sección de configuración de idioma y zona horaria.

  9. Selecciona una zona horaria.

  10. Selecciona un idioma predeterminado.

  11. Proporciona un nombre de agente en la sección Your agent name.

  12. Selecciona una región o multirregión en la sección Ubicación de tu agente.

  13. Haz clic en Continuar.

  14. Conecta un almacén de datos a tu agente mediante una de las siguientes opciones:

    • Selecciona un almacén de datos existente que creaste antes.
    • Crea un almacén de datos nuevo:
      1. Haz clic en Crear almacén de datos nuevo.
      2. Elige una fuente de datos.
      3. Proporciona los datos y la configuración de la fuente de almacén de datos que seleccionaste. La ubicación del almacén de datos debe corresponder a la ubicación del agente.
      4. Haz clic en Crear para crear el almacén de datos.
      5. Selecciona tu almacén de datos nuevo.
  15. Haz clic en Crear.

  16. Ahora se creó el agente y se te redireccionará de forma automática a la página Almacenes de datos disponibles, en la que puedes agregar más almacenes de datos según sea necesario.

  17. Si creaste un almacén de datos nuevo para un sitio web, debes verificar tu dominio.

  18. Para abrir tu agente con Dialogflow CX, haz clic en Preview en el panel izquierdo. En la consola de Dialogflow CX, puedes editar o agregar almacén de datos datos, implementar tu agente y, de manera opcional, agregar flujos que manejarán situaciones no cubiertas por los almacenes de datos.

Prueba tu agente

Puedes usar el simulador de Dialogflow CX para probar tu agente.

Mejora las respuestas generativas del agente

Si encuentras algunas respuestas durante las pruebas que no cumplen con tus expectativas, prueba lo siguiente.

Puedes reemplazar una respuesta si agregas una entrada de Preguntas frecuentes correspondiente a una pregunta específica.

Hay más personalizaciones disponibles para tu agente en la Consola de Dialogflow. Para navegar a la consola, haz clic en el nombre de tu agente en la lista de agentes disponibles en la consola. Luego, abre la página Agent Settings de Dialogflow y navega a la pestaña ML y, luego, a la pestaña secundaria Generative AI. Están disponibles las siguientes personalizaciones:

Fundamentos de la confianza

Para cada respuesta generada a partir del contenido de tus almacenes de datos conectados, evaluamos un nivel de confianza que mide la confianza en que toda la información de la respuesta es respaldada por la información de los almacenes de datos. Puedes personalizar los tipos de respuestas que deseas permitir seleccionando el nivel de confianza más bajo con el que te sientas cómodo. Si una respuesta regresa con una confianza estrictamente menor que ese nivel, no se mostrará.

Existen 5 niveles de confianza para elegir: muy bajo, bajo, medio, alto y muy alto.

Mensaje del almacén de datos

Tienes la opción de agregar información adicional sobre el agente que puede mejorar la calidad de las respuestas generadas a partir del contenido del almacén de datos y hacer que se sientan más como tu marca:

  • Nombre del agente (Agent name): Corresponde al nombre que debe llamar el agente. Si no la estableces, se usará el valor predeterminado de AI Assistant.
  • Identidad del agente: cuál será el arquetipo del agente Si no la estableces, se usará el valor predeterminado de AI Assistant.
  • En Nombre de la empresa, debes establecer el nombre de tu empresa. Esto ya debería haberse establecido como parte del flujo de creación del agente, pero se puede ajustar según sea necesario. Se recomienda configurar este campo de forma correcta (y, en especial, no dejarlo vacío), a menos que se vea afectada la calidad de las respuestas generadas.
  • Descripción de la empresa significa una descripción breve de lo que la empresa ofrece o hace.
  • Alcance del agente: Es el lugar en el que se usa el agente. Si no la estableces, se usará el valor predeterminado en el sitio web de la empresa.

Una vez que hayas completado esta sección de forma parcial o total, puedes inspeccionar en el lado derecho, en Tu instrucción, el párrafo corto que se derivó de estos parámetros de configuración y que se usará como parte de la generación de respuestas.

Frases bloqueadas

Tienes la opción de definir frases específicas que no deberían estar permitidas. Si la respuesta generada (o el contenido que aparece en la instrucción que se usó para generar la respuesta, por ejemplo, la declaración del último usuario) contiene alguna de las frases prohibidas, esa respuesta no se mostrará.

Mensaje de resumen y selección del modelo del almacén de datos

Cuando se procesa la consulta de un usuario, el agente realiza una búsqueda de los almacenes de datos para encontrar buenas fuentes. Luego, el agente envía la consulta del usuario y las fuentes encontradas al LLM, que realiza un resumen.

Puedes seleccionar qué modelo usar para el resumen y, de manera opcional, proporcionar tu propia instrucción.

Selecciona un modelo generativo

Puedes seleccionar el modelo generativo que usa un agente de almacén de datos para la solicitud generativa de resumen. Si no se selecciona ninguno, se usa text-bison@001. La siguiente tabla contiene las opciones disponibles:

Identificador de modelo Idiomas compatibles
text-bison@001 Disponible en todos los idiomas compatibles.
text-bison@002 Disponible en todos los idiomas compatibles.
text-bison@001 sintonizado (conversacional) Por el momento, solo se admite inglés.
text-bison@001 ajustado (informativo) Por el momento, solo se admite inglés.
gemini-pro Disponible en todos los idiomas compatibles.

Personaliza el mensaje de resumen

Puedes proporcionar tu propia instrucción para la llamada de resumen del LLM. La instrucción es una plantilla de texto que puede contener marcadores de posición predefinidos. Los marcadores de posición se reemplazarán por los valores adecuados en el tiempo de ejecución y el texto final se enviará al LLM.

Los marcadores de posición son los siguientes:

  • $original-query: El texto de la consulta del usuario
  • $rewritten-query: Dialogflow usa un módulo de reescritura para reescribir la consulta original del usuario a un formato más preciso.
  • $sources: Dialogflow usa Enterprise Search para buscar fuentes según la consulta del usuario. Las fuentes encontradas se procesan en un formato específico:

    [1] title of first source
    content of first source
    [2] title of second source
    content of first source
    
  • $conversation: El historial de conversaciones se renderiza con el siguiente formato:

    Human: user's first query
    AI: answer to user's first query
    Human: user's second query
    AI: answer to user's second query
    

Un mensaje personalizado debe indicarle al LLM que devuelva “NOT_ENOUGH_INFORMATION” cuando no pueda proporcionar una respuesta. El agente transformará esta constante en un mensaje fácil de usar para el usuario.

Implementa tu agente

Existen muchas formas de implementar tu agente:

  • La opción más simple es usar una integración de Dialogflow CX, que proporciona una interfaz de usuario para tu agente. Cada integración proporciona instrucciones para la implementación.

  • La integración de Dialogflow Messenger es una opción particularmente buena para los agentes de almacén de datos. Tiene opciones integradas para las funciones generativas.

  • Puedes crear tu propia interfaz de usuario y usar la API de Dialogflow CX para las interacciones. La implementación de tu interfaz de usuario tiene el control de la implementación.

Realiza un seguimiento del rendimiento de tu agente

Puedes supervisar el historial de conversaciones de tus agentes y usar la herramienta de estadísticas para obtener estadísticas.

Intents especiales

Además de manejar las preguntas sobre el contenido que proporcionas, el agente de almacén de datos puede manejar los siguientes tipos de preguntas:

  • Identificación del agente: Maneja preguntas como “¿Quién eres?” o “¿Eres humano?”.
  • Escalar a un agente humano: Maneja preguntas como “Quiero hablar con una persona” o “Quiero hablar con una persona real”.

Esto se logra mediante intents y rutas de intents generados automáticamente.

Agentes híbridos

Si tienes un agente de Dialogflow CX existente, puedes actualizarlo a un agente híbrido, que combina el poder de los controles de conversación precisos (flujos, parámetros, intents, condiciones, transiciones y más) con las funciones generativas de controladores de almacén de datos.

Como parte de esta actualización, es posible que quieras borrar o inhabilitar de forma temporal rutas de intents (mientras pruebas los controladores de almacenes de datos) para ciertas situaciones de conversación de tu agente, ya que los controladores del almacén de datos pueden manejar esas situaciones de forma más sencilla.

Las siguientes situaciones se recomiendan para los controladores de almacén de datos:

  • Preguntas que se pueden responder con los documentos o el sitio web de tu organización.
  • Preguntas frecuentes que no requieren búsquedas en bases de datos

Las siguientes situaciones no se recomiendan para los controladores de almacén de datos:

  • Contenido que no tiene respuestas a las preguntas deseadas
  • Preguntas que requieren búsquedas en bases de datos o solicitudes de servidor.
  • Situaciones que requieren ocultación de datos
  • Situaciones que requieren respuestas de agente deterministas.

Dialogflow evalúa la entrada del usuario final en el siguiente orden de preferencia:

  1. Coincidencia de intent para rutas dentro del alcance
  2. Contenido de preguntas frecuentes sobre el almacén de datos
  3. Contenido del almacén de datos no estructurados

Orden de evaluación de entrada

Dialogflow evalúa las entradas del usuario final en el siguiente orden para los agentes híbridos:

  1. Entrada del parámetro mientras se completa el formulario.
  2. Coincidencias de intents para rutas dentro del alcance.
  3. Controlador de almacén de datos con contenido de Preguntas frecuentes sobre el almacén de datos.
  4. Controlador de almacén de datos con contenido de almacén de datos no estructurado.

Agrega o edita controladores de almacén de datos para un agente existente

Los controladores de almacén de datos son un tipo especial de controlador de estado de Dialogflow. Esto significa que puedes aplicarlos a flujos o páginas, y que se evalúan mediante las mismas reglas de alcance.

Sigue estos pasos para agregar o editar un controlador de almacén de datos:

  1. Ir a la consola de Dialogflow CX
  2. Selecciona tu proyecto de Google Cloud.
  3. Selecciona el agente.
  4. Selecciona el flujo asociado con el controlador del almacén de datos. Por lo general, este es el flujo de inicio predeterminado.
  5. Selecciona la página asociada con el controlador del almacén de datos. Por lo general, es la página de inicio.
  6. Haz clic en Agregar controlador de estado en los datos de la página y, luego, selecciona almacén de datos.
  7. Si necesitas crear un almacén de datos, se te dirigirá a la interfaz de usuario de Vertex AI Search and Conversation. Consulta la información del almacén de datos para ayudarte a realizar selecciones.
  8. Si ya tienes un almacén de datos, haz clic en Editar almacén de datos.
  9. Realiza las actualizaciones necesarias y guárdalas cuando termines. Consulta la información que aparece a continuación sobre la configuración específica de almacén de datos.

Respuestas del agente

En la sección Respuestas del agente, puedes proporcionar respuestas personalizadas que hagan referencia a respuestas generativas. Usa $request.knowledge.questions[0] en la sección El agente dice para proporcionar la respuesta generativa.

Opciones de respuesta del almacén de datos

Puedes actualizar el campo Máximo de vínculos para indicar la cantidad máxima de vínculos complementarios que deben proporcionar las respuestas generativas.

Controla las digresiones de la conversación

Un usuario final puede hacer preguntas aclaratorias durante una conversación. Por ejemplo, durante la recopilación de información de tarjetas de crédito, es posible que quieran aclarar qué es un CVV. En este caso, tu agente debe responder la pregunta y volver a recopilar la información necesaria de la tarjeta de crédito. Para lograrlo, puedes crear un controlador de almacén de datos con almacenes de datos que respondan la pregunta, aplicarlo a la página de inicio del flujo que controla la recopilación de información de tarjetas de crédito y establecer un destino de transición para que este controlador regrese a la “página actual”.

Controla las coincidencias de intents no deseadas

Si tu agente establece coincidencias con intents cuando debería usar un controlador de almacén de datos, puedes intentar lo siguiente para corregir esto:

  • Borrar o modificar las frases de entrenamiento que sean poco precisas, para que todas las frases de entrenamiento manejen con precisión la intención deseada y no entren en conflicto con el contenido del almacén de datos.
  • Usa ejemplos negativos para evitar la coincidencia de intents.

Filtrado del almacén de datos

En algunos casos, es posible que solo quieras que ciertos almacenes de datos estén disponibles para las consultas, según los valores de los parámetros de sesión. Por ejemplo, puedes tener almacenes de datos únicos para las categorías de productos. Para aplicar el filtrado del almacén de datos por categorías de productos, sigue estos pasos:

  • Establece los parámetros de sesión en categorías de productos.
  • Crea rutas de condición que verifiquen los valores de los parámetros de sesión y realicen la transición a una página específica que tenga el controlador de almacén de datos deseado.
  • El controlador del almacén de datos debe regresar a la página de llamada para que la conversación pueda continuar.

Personalización

A fin de que las respuestas generativas sean más relevantes para los usuarios finales, puedes proporcionarle a Dialogflow información sobre los usuarios.

Esta información se proporciona en formato JSON. No hay un esquema esperado, por lo que puedes definir las propiedades del objeto. Este JSON se envía al modelo grande de lenguaje tal como está, por lo que los nombres y valores de propiedad descriptivos conducen a los mejores resultados.

Por ejemplo:

{
  "subscription plan": "Business Premium Plus",
  "devices owned": [
    {"model": "Google Pixel 7"},
    {"model": "Google Pixel Tablet"}
  ]
}

Personaliza con la API de Dialogflow

Puedes proporcionar estos datos a Dialogflow cuando envíes solicitudes de detección de intent. Esta información debe proporcionarse en cada solicitud de detección de intent, ya que no se conserva en la sesión.

Proporciona esta información en el campo queryParams.endUserMetadata del método Sessions.detectIntent.

Selecciona un protocolo y una versión para la referencia de sesión:

Protocolo V3 V3beta1
REST Recurso de la sesión Recurso de la sesión
RPC Interfaz de la sesión Interfaz de la sesión
C++ SessionsClient No disponible
C# SessionsClient No disponible
Go SessionsClient No disponible
Java SessionsClient SessionsClient
Node.js SessionsClient SessionsClient
PHP No disponible No disponible
Python SessionsClient SessionsClient
Rita No disponible No disponible

Cómo personalizar con Dialogflow Messenger

Puedes proporcionar estos datos a la integración de Dialogflow Messenger. Consulta el método setContext.

Configuración de búsqueda

Para tener un mejor control sobre el comportamiento del agente y mejorar la calidad de las respuestas, se exponen las configuraciones de búsqueda de boosting y filtro que te permiten mejorar, ocultar y filtrar documentos.

Los controles de mejora te permiten cambiar la clasificación de los resultados de la búsqueda aplicando un valor de mejora (superior a cero para una clasificación más alta o inferior a cero para una clasificación más baja) a documentos específicos.

Los controles de filtro te permiten conservar o quitar resultados de la búsqueda según los criterios de filtro especificados.

Esta información se proporciona a las solicitudes de Dialogflow en forma de JSON. El formato de JSON depende del tipo de control de búsqueda.

Mejora el control

La siguiente configuración de búsqueda describe un control de mejora:

"searchConfig": {
  "boostSpecs": [
    {
      "dataStores": [ "DATASTORE_ID" ],
      "spec": [
        {
          "conditionBoostSpecs": {
            "condition": "CONDITION",
            "boost": "1.0"
          }
        }
      ]
    }
  ]
}

Control de filtros

La siguiente configuración de búsqueda describe un control de filtro:

"searchConfig": {
  "filterSpecs": [
    {
      "dataStores": [ "DATASTORE_ID" ],
      "filter": "CONDITION"
    }
  ]
}
de Vertex AI Search and Conversation

Configura la búsqueda con la API de Dialogflow

Puedes proporcionar estos datos a Dialogflow cuando envíes solicitudes de detección de intent. Esta información debe proporcionarse en cada solicitud de detección de intent, ya que no se conserva en la sesión.

Proporciona esta información en el campo queryParams.searchConfig del método Sessions.detectIntent.

Selecciona un protocolo y una versión para la referencia de sesión:

Protocolo V3 V3beta1
REST Recurso de la sesión Recurso de la sesión
RPC Interfaz de la sesión Interfaz de la sesión
C++ SessionsClient No disponible
C# SessionsClient No disponible
Go SessionsClient No disponible
Java SessionsClient SessionsClient
Node.js SessionsClient SessionsClient
PHP No disponible No disponible
Python SessionsClient SessionsClient
Rita No disponible No disponible

Configura la búsqueda con Dialogflow Messenger

Puedes proporcionar estos datos a la integración de Dialogflow Messenger.

Para aplicar un control de búsqueda, debes agregar el siguiente fragmento al código de mensajería de DF cuando lo incorporas a un sitio web:

<script>
  document.addEventListener('df-messenger-loaded', () => {
    const dfMessenger = document.querySelector('df-messenger');
    const searchConfig = { ... }
    dfMessenger.setQueryParameters(searchConfig);
  });
</script>

Consulta el método setQueryParameters.