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 Google Cloud proyecto.
  2. Selecciona un agente en el menú desplegable.
  3. Ve a la barra de menú en el extremo izquierdo de la página y selecciona Tools.
  4. Haz clic en + Create. Ingresa un Name único para la herramienta y selecciona almacén de datos en el menú desplegable en Type. De manera opcional, ingresa una descripción de la herramienta en el campo Description.
  5. Haz clic en Add data stores. 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 Create new data store para que se te redireccione automáticamente.
  7. (Opcional) Después de configurar el almacén de datos nuevo, haz clic en Create. Para agregar el almacén de datos nuevo 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 aparece 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 Flows.
  2. Selecciona un flujo y una página, y luego haz clic en la Route 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 de origen y citas 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ática 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 para generar una respuesta antes de usar la respuesta de resguardo estática. Para personalizar las respuestas de resguardo, haz clic en el ícono de llave inglesa en la esquina superior izquierda de la ventana del formulario Data store response para abrir la ventana Conditional response.
  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 consulta 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 consulta del usuario.

Herramientas de almacenes de datos: API

De forma predeterminada, el agente llama al dataStoreTool método 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, 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 la herramienta 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 ninguna respuesta.

Puedes anular una respuesta si agregas 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 consultas de búsqueda 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. Varios ejemplos detallados le indican al modelo de guía cómo propagar este parámetro. Si una cadena de filtro no es válida, se ignora durante la consulta de búsqueda.

En el siguiente ejemplo, se muestra una cadena filter que puedes usar para refinar 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 de filtrado:

  • Especifica los campos disponibles para el filtrado y los valores válidos para cada uno de estos campos, de modo que la guía 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 "breakfast", "lunch" y "dinner" como valores válidos, y un campo servingSize que podría ser cualquier número entero de 0 a 5. Tus instrucciones podrían verse como en 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 es para un público de usuarios externos, agrega instrucciones para evitar que la guía responda al usuario con información sobre la creación de 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. Se pueden propagar todos los pares clave-valor en este parámetro. 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 indicarle al modelo de guía cómo propagar este parámetro.

A continuación, se muestra un ejemplo de un valor de parámetro userMetadata para refinar 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 responde la herramienta de almacén de datos si no hay una respuesta resumida válida para la consulta. Puedes proporcionar varios ejemplos para indicarle al modelo de guía cómo propagar 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 si llamas a la API directamente o si haces clic en el nombre del almacén de datos en la página Tools 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 la configuración de 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, el agente de almacén de datos puede conversar sobre el contenido con los usuarios finales.

Limitaciones

Se aplica la siguiente limitación:

  • Esta función admite idiomas seleccionados en GA. Consulta la columna de almacén de datos en la referencia de idiomas.
  • Solo se admiten las siguientes regiones son compatibles: global, us multirregión y eu multirregión.
  • No se admiten las apps con almacenes de datos fragmentados y no fragmentados.

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.

Para agregar un almacén de datos a tu agente, haz lo siguiente:

  1. Selecciona una página y, luego, haz clic en Add state handler.
  2. Selecciona la casilla de verificación Data stores y, luego, haz clic en Apply.
  3. Haz clic en el símbolo \+ en la esquina superior derecha de la sección Data stores de la página.
  4. En el menú de almacenes de datos que aparece, haz clic en Add data stores.
  5. Aparecerá una tabla con los almacenes de datos existentes. Selecciona la casilla de verificación junto al nombre de los almacenes de datos que deseas usar y, luego, haz clic en Save. Para crear un almacén de datos nuevo, haz clic en Create new data store. 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 la configuración de los tipos de almacén de datos, consulta la documentación de almacenes de datos. Haz clic en Create para crear tu nuevo almacén de datos.

Prueba tu agente

Implementa tu agente

Puedes implementar tu agente de varias maneras:

  • Una opción sencilla 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 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 administra la implementación.

Intents especiales

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

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

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

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:

  • Las fuentes identificadas de la respuesta con los siguientes campos: fragmento, título y URI
  • La confianza de fundamentación para la respuesta
  • Para un almacén de datos de preguntas frecuentes, 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 fuente identificada principal de la respuesta principal $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "snippet")
Título de la fuente identificada principal de la respuesta principal $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "title")
Vínculo de la fuente identificada principal 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 correspondiente a la respuesta principal (solo para respuestas de almacén de datos de preguntas frecuentes) $request.knowledge.questions[0]
Confianza de fundamentación para la respuesta principal $request.knowledge.grounding_confidences[0]