Las herramientas de almacén de datos pueden proporcionar respuestas de agentes generadas por IA en función del contenido del sitio web y los datos subidos. Tu agente puede encontrar respuestas a las preguntas de los usuarios finales en tus almacenes de datos durante la aprobación.
Herramientas de almacén de datos: Console
En esta sección, se explica el proceso para agregar una herramienta de almacén de datos a un agente y configurarla en una entrega.
Crea una herramienta de almacén de datos
- Abre la consola de agentes conversacionales y elige un proyecto Google Cloud.
- Selecciona un agente en el menú desplegable.
- Navega a la barra de menú que se encuentra en el extremo izquierdo de la página y selecciona Tools.
- Para crear una nueva herramienta de almacén de datos, haz clic en + Crear. Ingresa un Nombre único para la herramienta y selecciona Almacenamiento de datos en el menú desplegable Tipo. De forma opcional, puedes ingresar una descripción de la herramienta en el campo Descripción.
- En Almacenes de datos, haz clic en Agregar almacenes de datos. La ventana que aparece contiene una lista de tus almacenes de datos existentes, si los hay. Elige el almacén de datos que deseas agregar a la herramienta.
- Para crear un almacén de datos nuevo en la consola de Agent Builder, haz clic en Crear almacén de datos nuevo (opcional). Se te redireccionará automáticamente a la consola de Agent Builder.
- (Opcional) Cuando termines 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 que estás configurando en la consola de Conversational Agents (Dialogflow CX) y actualiza la página. El nuevo almacén de datos debería aparecer en la lista de almacenes de datos disponibles.
- Haz clic en Guardar en la parte superior de la configuración de Crear herramienta para crear la nueva herramienta de almacén de datos.
Agrega la herramienta del almacén de datos a una entrega
- En la barra de menú de la izquierda, selecciona Flujos.
- Selecciona un flujo y una página, y haz clic en la Ruta de la página que deseas usar con tu almacén de datos.
- En el menú Ruta, desplázate hasta Cumplimiento > Herramienta de almacén de datos. Selecciona tu herramienta de almacenamiento de datos en el menú desplegable.
- En el menú Ruta, desplázate hasta Entrega > Respuestas del agente. Haz clic en +Agregar respuesta de diálogo y, luego, en Respuesta de la herramienta de almacén de datos.
- En el formulario que aparece, puedes configurar la cantidad de vínculos y citas de la fuente que pueden aparecer en la respuesta, así como especificar el comportamiento de resguardo si la respuesta del almacén de datos está vacía. Puedes ingresar una respuesta de resguardo estática en el campo Static fallback responses. De manera opcional, puedes hacer clic en la casilla de verificación Respuesta de resguardo generativa para intentar usar la IA para generar una respuesta antes de usar la respuesta de resguardo estática. Si necesitas más personalización de las respuestas de resguardo, 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.
- En la parte superior del menú Ruta, haz clic en Guardar.
- Navega al simulador de Conversational Agents (Dialogflow CX) para probar los resultados del agente.
Herramientas de almacén de datos: API
Puedes configurar un almacén de datos de cada tipo por herramienta, y esta consultará cada uno de estos almacenes de datos para obtener respuestas. De forma predeterminada, el agente llamará al dataStoreTool
en tu nombre.
Existen tres tipos de almacenes 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 del 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 continuar con la respuesta de los almacenes de datos o cómo responder cuando no hay una respuesta.
Para reemplazar una respuesta, agrega una entrada de preguntas frecuentes para una pregunta específica.
De manera opcional, puedes proporcionar ejemplos para mejorar el comportamiento del agente. El ejemplo debe tener los siguientes esquemas. Consulta la documentación de referencia para obtener más información.
{
"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"
}
]
}
}
]
}
}
Ejemplos de herramientas de almacenes de datos (solo para agentes basados en playbooks)
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 la expresión de filtro compatible para los almacenes de datos. Varios ejemplos detallados ayudan a indicarle al modelo de la guía de jugadas cómo completar este parámetro. Si una cadena de filtro no es válida, se ignora durante la búsqueda.
El siguiente es un ejemplo de una cadena filter
para definir mejor los resultados de la búsqueda según la ubicación:
"filter": "country: ANY(\"Canada\")"
Consulta la página de ejemplos
de la guía para obtener más detalles.
Prácticas recomendadas para filtrar:
Especifica los campos disponibles para filtrar y los valores válidos para cada uno de estos campos, de modo que la guía de instrucciones 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 camposervingSize
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 es para un público de usuarios externos, es posible que debas agregar instrucciones para evitar que la guía responda al usuario con información sobre la compilació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 cualquier par clave-valor en este parámetro. Estos metadatos se pasan a la herramienta del almacén de datos para fundamentar mejor los resultados de la búsqueda y la respuesta de la herramienta.
Varios ejemplos detallados ayudan a indicarle al modelo de la guía de jugadas cómo completar este parámetro.
El siguiente es un ejemplo de un valor de parámetro userMetadata
para definir mejor los resultados de la búsqueda relevantes para un elemento específico:
"userMetadata": {
"favoriteColor": "blue",
...
}
El parámetro fallback
proporciona una respuesta con la que la herramienta del almacén de datos debe responder si no hay una respuesta resumida válida para la consulta. Puedes proporcionar varios ejemplos para indicarle al modelo de libro de jugadas cómo propagar el campo de resguardo para las entradas del usuario relacionadas con diferentes temas. No hay fragmentos en el resultado de la herramienta, lo que puede ayudar a reducir la latencia y el uso de los límites 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 del almacén de datos
Si, durante las pruebas, descubres que algunas respuestas no cumplen con tus expectativas, puedes ajustar los siguientes parámetros para optimizar el rendimiento. Están disponibles llamando directamente a la API o haciendo clic en el nombre del almacén de datos en la página Tools de la consola.
Cómo fundamentar la confianza
Conversational Agents (Dialogflow CX) calcula un nivel de confianza para cada respuesta generada a partir del contenido de tus almacenes de datos conectados. Esto mide la confianza en que toda la información de la respuesta está respaldada por la información de los almacenes de datos. Para ajustar las respuestas permitidas, selecciona el nivel de confianza más bajo con el que te sientas a gusto. Solo se mostrarán las respuestas con ese nivel de confianza o superior.
Hay 5 niveles de confianza para elegir: VERY_LOW
, LOW
, MEDIUM
,
HIGH
y VERY_HIGH
.
Selección del modelo de almacén de datos
Conversational Agents (Dialogflow CX) ofrece varios modelos para usar con almacenes de datos. Elegir un modelo diferente podría afectar el rendimiento de la herramienta de almacén de datos. Consulta la documentación de los modelos para ver una lista completa.
Instrucción de resumen
La instrucción es una plantilla de texto que contiene marcadores de posición predefinidos. Los marcadores de posición se reemplazan por los valores adecuados durante el tiempo de ejecución, y el texto resultante se envía al modelo de IA. Tienes la opción de usar una instrucción predeterminada o proporcionar tu propia instrucción personalizada. Ten en cuenta que una instrucción personalizada puede afectar los resultados de manera positiva o negativa.
Puedes ajustar el texto en una instrucción personalizada para afectar los resultados que produce el modelo. Para ello, incluye instrucciones adicionales y ejemplos detallados. Para obtener más información sobre cómo crear una instrucción personalizada, consulta la documentación sobre la configuración del almacén de datos.
Configuración de la carga útil
La configuración de la carga útil proporciona una forma de agregar los fragmentos del almacén de datos como contenido enriquecido en la carga útil de respuesta, que se renderiza en el mensajero. Puedes activar o desactivar esta función.
Opciones de respuesta de la herramienta de almacén de datos
Consulta la documentación de entrega para obtener detalles sobre la configuración de la respuesta de la herramienta del almacén de datos.
Controladores de almacenes de datos
Los controladores de almacenes de datos son un tipo especial de controlador de estado que puede proporcionar respuestas de agentes generadas por LLM en función del contenido de tu sitio web y los datos subidos.
Para crear este controlador, debes proporcionarle almacenes de datos al agente.
Con estos controladores de almacén de datos, el agente puede tener conversaciones sobre el contenido con los usuarios finales.
Limitaciones
Se aplica la siguiente limitación:
- Esta función admite algunos idiomas en GA. Consulta la columna del almacén de datos en la referencia de idiomas.
- Solo se admiten las siguientes regiones:
global
, multirregiónus
y multirregióneu
. - No se admiten apps con almacenes de datos divididos y no divididos.
Control de acceso
Si eres el propietario del proyecto, tienes todos 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, sigue estos pasos: almacén de datos:
- Selecciona una página y, luego, haz clic en Agregar controlador de estado.
- Haz clic en la casilla de verificación Almacenes de datos y, luego, en Aplicar.
- Haz clic en el símbolo + en la esquina superior derecha de la sección Almacenes de datos de la página.
- En el menú de almacenes de datos que aparece, haz clic en Agregar almacenes de datos.
- Aparecerá una tabla con los almacenes de datos existentes. Haz clic en la casilla junto al nombre de los almacenes de datos que deseas usar y, luego, 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 Agent Builder.
- (Solo para almacenes de datos nuevos) Selecciona una fuente de datos y, luego, sigue las instrucciones en Agent Builder para configurar tu almacén de datos. Para obtener más información sobre la configuración de tipos de almacenes de datos, consulta la documentación de almacenes de datos. Haz clic en Crear para crear tu nuevo almacén de datos.
Prueba tu agente
Puedes usar el simulador para probar tu agente.
Implementa tu agente
Existen muchas formas de implementar tu agente:
La opción más 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 opción particularmente buena para los controladores de almacenes de datos. Tiene opciones integradas para funciones generativas.
Puedes crear tu propia interfaz de usuario y usar la API de Conversational Agents (Dialogflow CX) para las interacciones. Tu implementación de la interfaz de usuario controla la implementación.
Intents especiales
Además de responder preguntas sobre el contenido que proporcionas, el agente puede responder los siguientes tipos de preguntas:
- Identificación del agente: Se encarga de preguntas como "¿Quién eres?" o "¿Eres humano?".
- Deriva el caso a un agente humano: Se encarga de preguntas como "Quiero hablar con una persona" o "Quiero hablar con una persona real".
Esto se logra con intents y rutas de intents generados automáticamente.
Respuestas del agente
En la sección Agent responses, puedes proporcionar 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.*
que se pueda usar 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 en la respuesta.
- En el caso de un almacén de datos de Preguntas frecuentes, la pregunta correspondiente a la respuesta que se seleccionó.
Consulta la siguiente tabla para ver 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 la base de conocimiento | $sys.func.COUNT($request.knowledge.answers) |
Es la pregunta correspondiente a la respuesta principal (solo para las respuestas del almacén de datos de Preguntas frecuentes). | $request.knowledge.questions[0] |
Cómo fundamentar la confianza en la respuesta principal | $request.knowledge.grounding_confidences[0] |