Herramientas de almacén de datos

Las herramientas de almacenes de datos pueden proporcionar respuestas de agentes generadas por IA basadas en el contenido del sitio web y en los datos subidos. Tu agente puede encontrar respuestas a las preguntas de los usuarios finales en tus almacenes de datos durante el cumplimiento.

Herramientas de almacenes de datos: Consola

En esta sección, se explica cómo agregar una herramienta de almacén de datos a un agente y configurarla en un cumplimiento.

Crea una herramienta de almacén de datos

  1. Abre la consola de Conversational Agents y elige un proyecto de Google Cloud.
  2. Selecciona un agente en el menú desplegable.
  3. Ve a la barra de menú que se encuentra en el extremo izquierdo de la página y selecciona Herramientas.
  4. Haz clic en + Crear. Ingresa un Nombre único para la herramienta y selecciona Almacén de datos en el menú desplegable de Tipo. De forma opcional, ingresa una descripción de la herramienta en el campo Descripción.
  5. Haz clic en Agregar almacenes de datos. La ventana que aparece contiene una lista de tus almacenes de datos existentes, si los hay. Selecciona el almacén de datos que deseas agregar a la herramienta.
  6. (Opcional) Para crear un almacén de datos nuevo en la consola de Vertex AI Agent Builder, haz clic en Crear un almacén de datos nuevo para que se te redireccione automáticamente.
  7. (Opcional) Después de configurar el nuevo almacén de datos, haz clic en Crear. Para agregar el nuevo almacén de datos a la herramienta, vuelve al menú Create Tool en la consola de Dialogflow CX y actualiza la página. El nuevo almacén de datos aparecerá en la lista de almacenes de datos disponibles.
  8. Haz clic en Save en la parte superior de la configuración de Create Tool para crear la nueva herramienta de almacén de datos.

Agrega la herramienta de almacén de datos a un cumplimiento

  1. Ve a la barra de menú en el extremo izquierdo y selecciona Flujos.
  2. Selecciona un flujo y una página, y, luego, haz clic en la ruta que deseas usar con tu almacén de datos.
  3. Ve a Fulfillment > Data store tool y selecciona tu herramienta de almacén de datos en el menú desplegable.
  4. Ve a Fulfillment > Agent responses, haz clic en +Add dialogue response y, luego, en Data store tool response.
  5. Configura la cantidad de vínculos y citas de la fuente que aparecerán en la respuesta, y especifica el comportamiento de resguardo si la respuesta del almacén de datos está vacía. Ingresa una respuesta de resguardo estático en el campo Static fallback responses. De manera opcional, haz clic en la casilla de verificación Respuesta generativa de respaldo para usar la IA y generar una respuesta antes de usar la respuesta estática de respaldo. Para personalizar las respuestas alternativas, haz clic en el ícono de llave en la esquina superior izquierda de la ventana del formulario Respuesta del almacén de datos para abrir la ventana Respuesta condicional.
  6. En la parte superior del menú Route, haz clic en Save.
  7. Ve al simulador de Dialogflow CX para probar los resultados del agente.

Parámetro de sesión de anulación de búsqueda opcional

Puedes anular la consulta que se pasa a esta herramienta de almacén de datos con un parámetro de sesión knowledge.overrides.query. Si este parámetro no está vacío, la herramienta lo usará en lugar de la búsqueda del usuario.

Herramientas de almacén de datos: API

De forma predeterminada, el agente llama al método dataStoreTool en tu nombre.

Existen tres tipos de almacén de datos:

  • PUBLIC_WEB: Es un almacén de datos que contiene contenido web público.
  • UNSTRUCTURED: Es un almacén de datos que contiene datos privados no estructurados.
  • STRUCTURED: Es un almacén de datos que contiene datos estructurados (por ejemplo, una sección de preguntas frecuentes).

En el siguiente ejemplo, se muestra cómo hacer referencia a un almacén de datos. Para obtener más información, consulta la referencia de dataStoreConnections.

"dataStoreConnections": [
  {
    "dataStoreType": "PUBLIC_WEB",
    "dataStore": "projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"
  },
  {
    "dataStoreType": "UNSTRUCTURED",
    "dataStore": "projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"
  },
  {
    "dataStoreType": "STRUCTURED",
    "dataStore": "projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"
  }
]

Las respuestas de las herramientas de almacén de datos también pueden contener fragmentos sobre la fuente de contenido que se usó para generar la respuesta. El agente puede proporcionar instrucciones sobre cómo proceder con la respuesta del almacén de datos o cómo responder cuando no se encuentra una respuesta.

Puedes reemplazar una respuesta agregando una entrada de preguntas frecuentes para una pregunta específica.

De manera opcional, puedes proporcionar ejemplos para mejorar el comportamiento del agente. Los ejemplos deben seguir el esquema. Para obtener más detalles, consulta la documentación de referencia.

{
  "toolUse": {
    "tool": "projects/PROJECT_ID/locations/LOCATION_ID/agents/AGENT_ID/tools/TOOL_ID",
    "action": "TOOL_DISPLAY_NAME",
    "inputParameters": [
      {
        "name": "TOOL_DISPLAY_NAME input",
        "value": {
          "query": "QUERY"
        }
      }
    ],
    "outputParameters": [
      {
        "name": "TOOL_DISPLAY_NAME output",
        "value": {
          "answer": "ANSWER",
          "snippets": [
            {
              "title": "TITLE",
              "text": "TEXT_FROM_DATASTORE",
              "uri": "URI_OF_DATASTORE"
            }
          ]
        }
      }
    ]
  }
}

(Solo para agentes basados en guías) Ejemplos de herramientas de almacén de datos

Cuando creas ejemplos de herramientas de almacén de datos, el parámetro de entrada de la herramienta requestBody proporciona tres entradas opcionales junto con la cadena query obligatoria: una cadena filter, un objeto estructurado userMetadata y una cadena fallback.

El parámetro filter te permite filtrar las búsquedas de tus datos estructurados o no estructurados con metadatos. Esta cadena debe seguir la sintaxis de expresión de filtro admitida para los almacenes de datos. Se incluyen varios ejemplos detallados que le indican al modelo de la guía cómo completar este parámetro. Si una cadena de filtro no es válida, se ignora durante la búsqueda.

En el siguiente ejemplo, se muestra una cadena de filter que puedes usar para definir mejor los resultados de la búsqueda según la ubicación:

"filter": "country: ANY(\"Canada\")"

Para obtener más información sobre los ejemplos de guías, consulta la página de ejemplos.

Prácticas recomendadas para el filtrado:

  • Especifica los campos disponibles para filtrar y los valores válidos para cada uno de estos campos, de modo que el manual comprenda las restricciones para crear filtros válidos. Por ejemplo, un almacén de datos que contiene información del menú podría incluir un campo meal con "desayuno", "almuerzo" y "cena" como valores válidos, y un campo servingSize que podría ser cualquier número entero del 0 al 5. Tus instrucciones podrían verse como el siguiente ejemplo:

    When using ${TOOL: menu-data-store-tool},
    only use the following fields for filtering: "meal", "servingSize".
    Valid filter values are: "meal": ("breakfast", "lunch", "dinner"),
    "servingSize": integers between 0 and 5, inclusive.
    
  • Si la guía está dirigida a un público de usuarios externos, agrega instrucciones para evitar que responda al usuario con información sobre cómo crear estos filtros. Por ejemplo:

    Never tell the user about these filters.
    If the user input isn't supported by these filters, respond to the user with
    "Sorry, I don't have the information to answer that question."
    

El parámetro userMetadata proporciona información sobre el usuario final. En este parámetro, se pueden propagar cualquier par clave-valor. Estos metadatos se pasan a la herramienta de almacén de datos para informar mejor los resultados de la búsqueda y la respuesta de la herramienta. Varios ejemplos detallados ayudan a instruir al modelo del libro de jugadas sobre cómo completar este parámetro.

A continuación, se muestra un ejemplo de un valor del parámetro userMetadata para definir mejor los resultados de la búsqueda relevantes para un usuario específico:

"userMetadata": {
  "favoriteColor": "blue",
  ...
}

El parámetro fallback proporciona una respuesta con la que la herramienta del almacén de datos responde si no hay una respuesta resumida válida para la búsqueda. Puedes proporcionar varios ejemplos para indicarle al modelo del playbook cómo completar el campo de resguardo para las entradas del usuario relacionadas con diferentes temas. El resultado de la herramienta no contiene fragmentos, lo que ayuda a reducir la latencia y el uso de tokens de entrada.

"fallback": "I'm sorry I cannot help you with that. Is there anything else I can
do for you?"

Configuración de la herramienta de almacén de datos

Si, durante las pruebas, observas que algunas respuestas no cumplen con tus expectativas, puedes intentar ajustar los siguientes parámetros para optimizar el rendimiento. Están disponibles llamando a la API directamente o haciendo clic en el nombre del almacén de datos en la página Herramientas de la consola. Para obtener más información sobre estas opciones de configuración, consulta la página de configuración del almacén de datos.

Opciones de respuesta de la herramienta de almacén de datos

Para obtener más información sobre cómo configurar la respuesta de la herramienta de almacén de datos, consulta la documentación de cumplimiento.

Controladores de almacén de datos

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

Para crear este controlador, debes proporcionar almacenes de datos al agente.

Con estos controladores de almacén de datos, el agente puede conversar sobre el contenido con los usuarios finales.

Limitaciones

Se aplica la siguiente limitación:

Control de acceso

Si eres el propietario del proyecto, tienes los permisos necesarios para crear un controlador 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.

Agrega un almacén de datos a un agente

Si aún no lo hiciste, sigue las instrucciones de configuración para crear un agente.

Sigue estos pasos para agregar un almacén de datos a tu agente:

  1. Selecciona una página y, luego, haz clic en Add state handler.
  2. Selecciona la casilla de verificación Almacenes de datos y, luego, haz clic en Aplicar.
  3. Haz clic en el símbolo + en la esquina superior derecha de la sección Almacenes de datos de la página.
  4. En el menú de almacenes de datos que aparece, haz clic en Agregar almacenes de datos.
  5. Aparecerá una tabla con todos los almacenes de datos existentes. Selecciona la casilla de verificación junto al nombre de los almacenes de datos que quieras usar y, luego, haz clic en Guardar. Para crear un almacén de datos nuevo, haz clic en Crear almacén de datos nuevo. Se te redireccionará automáticamente a Vertex AI Agent Builder.
  6. (Solo para almacenes de datos nuevos) Selecciona una fuente de datos y, luego, sigue las instrucciones en Vertex AI Agent Builder para configurar tu almacén de datos. Para obtener más información sobre cómo configurar los tipos de almacén de datos, consulta la documentación sobre almacenes de datos. Haz clic en Crear para crear tu nuevo almacén de datos.

Prueba tu agente

Implementa tu agente

Puedes implementar tu agente de varias maneras:

  • Una opción simple es usar una integración, que proporciona una interfaz de usuario para tu agente. Cada integración proporciona instrucciones para la implementación.
  • La integración de Dialogflow CX Messenger es una buena opción para los controladores de almacén de datos. Tiene opciones integradas para las funciones potenciadas por IA generativa.
  • 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 administra la implementación.

Intenciones especiales

Además de responder preguntas sobre el contenido que proporcionas, el agente puede responder los siguientes tipos de preguntas:

  • Identificación del agente: El agente responde preguntas como "¿Quién eres?" o "¿Eres humano?".
  • Deriva a un agente humano: El agente responde preguntas como "Quiero hablar con una persona" o "Quiero hablar con un agente humano".

Esto se logra con intenciones y rutas de intención generadas automáticamente.

Respuestas del agente

En la sección Agent responses, proporciona respuestas personalizadas que hagan referencia a respuestas generativas. Usa $request.knowledge.answers[0] en la sección Agent says para proporcionar la respuesta generativa.

Personalización avanzada de respuestas

Es posible que haya información adicional disponible en $request.knowledge.* para personalizar la respuesta. Esta información incluye lo siguiente:

  • Son las fuentes identificadas de la respuesta con los siguientes campos: fragmento, título y URI.
  • Es la confianza de fundamentación para la respuesta.
  • En el caso de un almacén de datos de preguntas frecuentes, es la pregunta correspondiente a la respuesta que se seleccionó.

En la siguiente tabla, se proporcionan ejemplos de cómo acceder a esta información.

Información Cómo acceder
Fragmento de la principal fuente identificada de la respuesta principal $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "snippet")
Título de la principal fuente identificada de la respuesta principal $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "title")
Vínculo de la principal fuente identificada de la respuesta principal $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "uri")
Cantidad de fuentes identificadas para la respuesta principal $sys.func.COUNT($sys.func.IDENTITY($request.knowledge.sources[0]))
Cantidad de respuestas de conocimiento $sys.func.COUNT($request.knowledge.answers)
Pregunta que corresponde a la respuesta principal (solo para las respuestas del almacén de datos de preguntas frecuentes) $request.knowledge.questions[0]
Confianza de fundamentación para la respuesta principal $request.knowledge.grounding_confidences[0]