Agentes de almacenes de datos

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

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

Un agente del almacén de datos tiene controladores de estado especiales llamados controladores del almacén de datos. Con estos controladores del almacén de datos, el agente del 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 de almacén de datos en la referencia de idioma.
  • Solo se admiten las siguientes regiones: global, us multirregional y eu multirregional.
  • El único tipo de almacén de datos estructurados que se admite son las Preguntas frecuentes.
  • No se admiten las apps con almacenes de datos fragmentados y no fragmentados.

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, haz lo siguiente:

  1. Si aún no lo has hecho, sigue las instrucciones de setup de Dialogflow.
  2. Ve a la consola de Agent Builder:

    Consola de Agent Builder

  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. 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 para el agente en la sección Nombre de tu agente.

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

  13. Haz clic en Continuar.

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

    • Selecciona un almacén de datos existente que hayas creado 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 del 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 nuevo almacén de datos.
  15. Haz clic en Crear.

  16. Se creará 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 (Vista previa) en el panel izquierdo. En la consola de Dialogflow CX, puedes editar o agregar controladores de almacén de datos, implementar tu agente y, de manera opcional, agregar flujos que controlarán situaciones no cubiertas por los almacenes de datos.

Prueba tu agente

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

Configuración

Está disponible la siguiente configuración del agente del almacén de datos.

Fundamentos

Para cada respuesta generada a partir del contenido de tus almacenes de datos conectados, se calcula un nivel de confianza, que mide la confianza de que toda la información en la respuesta está respaldada por la información de los almacenes de datos. Puedes seleccionar el nivel de confianza más bajo permitido y el agente no mostrará respuestas inferiores a ese nivel.

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

También puedes aplicar un filtro de heurística de fundamentos. Si se habilita, se suprimen las respuestas que incluyen contenido que probablemente sea inexacto debido a alucinaciones comunes.

Mensaje de almacén de datos

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

  • Nombre del agente: cómo debe llamarse el agente. Si no la estableces, se usará el valor predeterminado AI Assistant.
  • Identidad del agente: cuál será el arquetipo del agente. Si no la estableces, se usará el valor predeterminado AI Assistant.
  • Nombre de la empresa: Ingresa 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 correctamente (y sobre todo no dejarlo vacío), para que no se vea afectada la calidad de las respuestas generadas.
  • Descripción de la empresa: Una descripción breve de lo que ofrece o hace la empresa.
  • Alcance del agente: Donde se diseñó el agente para usarlo. 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 el párrafo corto que se derivó de esta configuración en el lado derecho, en Tu instrucción. Se usa como parte de la generación de respuestas.

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

Cuando se procesa una consulta de usuario, el agente realiza una búsqueda en los almacenes de datos para encontrar fuentes buenas. 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.

Seleccionar modelo generativo

Puedes seleccionar el modelo generativo que usa el agente del almacén de datos para la solicitud generativa de resumen. La siguiente tabla contiene las opciones disponibles:

Identificador de modelo Idiomas compatibles
Predeterminado Esta es la configuración recomendada actualmente y está sujeta a cambios con el tiempo. Si usas esta opción, es posible que experimentes cambios en el comportamiento del agente (posibles mejoras). Si deseas más coherencia en el comportamiento del agente, selecciona un modelo específico.
text-bison@001 Disponible en todos los idiomas compatibles. Nota: Las actualizaciones a gemini-1.0-pro-001 después del 15 de junio de 2024
text-bison@002 Disponible en todos los idiomas compatibles.
text-bison@001 ajustado (conversacional) Por el momento, solo se admite el idioma inglés.
text-bison@001 ajustado (informativo) Por el momento, solo se admite el idioma inglés.
gemini-1.0-pro-001 Disponible en todos los idiomas compatibles.

Personaliza la instrucción de resumen

Puedes proporcionar tu propia instrucción para la llamada de LLM de resumen. 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: Es el texto de la consulta del usuario.
  • $rewritten-query: Dialogflow usa un módulo de reescritura para reescribir la consulta del usuario original en un formato más preciso.
  • $sources: Dialogflow usa Enterprise Search para buscar fuentes según la consulta del usuario. Las fuentes encontradas se renderizan en un formato específico:

    [1] title of first source
    content of first source
    [2] title of second source
    content of second source
    
  • $conversation: El historial de la conversación se renderiza en 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
    

Una instrucción personalizada debe indicar al LLM que devuelva "NOT_ENOUGH_INFORMATION" cuando no pueda proporcionar una respuesta. En este caso, el agente invocará un evento sin coincidencias.

Por ejemplo:

Given the conversation between a Human and a AI assistant and a list of sources,
write a final answer for the AI assistant.
Follow these guidelines:
+ Answer the Human's query and make sure you mention all relevant details from
  the sources, using exactly the same words as the sources if possible.
+ The answer must be based only on the sources and not introduce any additional
  information.
+ All numbers, like price, date, time or phone numbers must appear exactly as
  they are in the sources.
+ Give as comprehensive answer as possible given the sources. Include all
  important details, and any caveats and conditions that apply.
+ The answer MUST be in English.
+ Don't try to make up an answer: If the answer cannot be found in the sources,
  you admit that you don't know and you answer NOT_ENOUGH_INFORMATION.
You will be given a few examples before you begin.

Example 1:
Sources:
[1] <product or service> Info Page
Yes, <company> offers <product or service> in various options or variations.

Human: Do you sell <product or service>?
AI: Yes, <company> sells <product or service>. Is there anything else I can
help you with?

Example 2:
Sources:
[1] Andrea - Wikipedia
Andrea is a given name which is common worldwide for both males and females.

Human: How is the weather?
AI: NOT_ENOUGH_INFORMATION


Begin! Let's work this out step by step to be sure we have the right answer.

Sources:
$sources

$conversation
Human: $original-query
AI:

Resguardo del almacén de datos

Esta sección tiene la siguiente configuración:

  • Vínculo de resguardo: Muestra el vínculo más adecuado si el agente no puede producir una respuesta.
  • Habilita la IA generativa: Permite que el almacén de datos use la IA generativa cuando se generen resultados.

Mejora las respuestas de los agentes

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

Implementa tu agente

Existen muchas formas de implementar tu agente:

  • La opción más simple es usar una integración con 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 funciones generativas.

  • Puedes crear tu propia interfaz de usuario y usar la API de Dialogflow CX para las interacciones. La implementación de la interfaz de usuario está a cargo 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 sus estadísticas.

Intents especiales

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

  • Identificación del agente: Responde preguntas como "¿Quién eres?" o "¿Eres humano?".
  • Derivar el caso a un agente humano: Responde 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 actualizar este agente a un agente híbrido, que combina la potencia de controles de conversación precisos (flujos, parámetros, intents, condiciones, transiciones, etc.) con funciones generativas del controlador del almacén de datos.

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

Se recomiendan las siguientes situaciones para los controladores de almacén de datos:

  • Preguntas que pueden responderse con los documentos o el sitio web de tu organización.
  • Preguntas frecuentes que no requieren búsquedas en la base 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 de bases de datos o solicitudes de servidor.
  • Situaciones que requieren ocultamiento de datos
  • Situaciones que requieren respuestas deterministas de los agentes

Dialogflow evalúa las entradas del usuario final en el siguiente orden de preferencia:

  1. Coincidencia de intent para rutas dentro del alcance
  2. Preguntas frecuentes sobre el contenido del almacén de datos
  3. Contenido de 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 de parámetro al completar el formulario.
  2. Coincidencias de intents para rutas dentro del alcance.
  3. Controlador del almacén de datos con contenido del almacén de datos de Preguntas frecuentes.
  4. Controlador del almacén de datos con contenido de almacén de datos no estructurados.

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

Los controladores del 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.

Para agregar o editar un controlador de almacén de datos, haz lo siguiente:

  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, esta 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 redireccionará a la interfaz de usuario de Vertex AI Agent Builder. 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 que sean necesarias y guárdalas cuando termines. Consulta la siguiente información sobre la configuración específica del almacén de datos.

Respuestas del agente

En la sección Respuestas del agente, puedes proporcionar respuestas personalizadas que hagan referencia a las 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.

Cómo manejar regresiones de conversaciones

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, aplicar ese controlador a la página de inicio del flujo que controla la recopilación de información de tarjetas de crédito y establecer un objetivo de transición para que este controlador regrese a la “página actual”.

Controla las coincidencias de intents no deseados

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

  • Borra o modifica las frases de entrenamiento poco precisas, de modo 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 filtrar el almacén de datos por categorías de productos, haz lo siguiente:

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

Personalización

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

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 de propiedad y los valores descriptivos generan 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 proporcionarle estos datos a Dialogflow cuando envíes solicitudes de detección de intents. Esta información se debe proporcionar 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 sesión Recurso de sesión
RPC Interfaz de sesión Interfaz de 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

Personaliza 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 boost 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 (mayor que cero para una clasificación más alta, menor que 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 en formato JSON a las solicitudes de Dialogflow. El formato de JSON depende del tipo de control de búsqueda.

Control de boosting

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

"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 filtros:

"searchConfig": {
  "filterSpecs": [
    {
      "dataStores": [ "DATASTORE_ID" ],
      "filter": "CONDITION"
    }
  ]
}

Establece la configuración de búsqueda con la API de Dialogflow

Puedes proporcionarle estos datos a Dialogflow cuando envíes solicitudes de detección de intents. Esta información se debe proporcionar 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 sesión Recurso de sesión
RPC Interfaz de sesión Interfaz de 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

Establece la configuración de 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 DF Messenger cuando se incorpora en 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.