La función Vertex AI Conversation crea un agente especial de Dialogflow, denominado agente de almacén de datos. Con esta función, proporcionas un vínculo o documentos al sitio web (almacenes de datos), y Google analiza tu contenido y crea un agente virtual con la tecnología de modelos grandes de lenguaje. Esto se logra mediante la creación de 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 los usuarios finales.
Puedes especificar tu nombre de dominio o subir cualquier cantidad de documentos y Google los indexará. Esta información se pone a disposición de tu agente para que la acceda en tiempo real. Esto unifica la potencia y la precisión de los algoritmos de la Búsqueda de Google que se ejecutan en tus datos públicos o privados con las capacidades de conversación natural de Dialogflow.
Si quieres obtener instrucciones para crear un agente de almacén de datos nuevo, consulta la introducción a Vertex AI Conversation.
Acerca de los 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, etc.) con 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 manera 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 la base de datos o solicitudes del servidor.
- Situaciones que requieren ocultación de datos
- Situaciones que requieren respuestas deterministas del agente
Orden de evaluación de entrada
Dialogflow evalúa la entrada del usuario final en el siguiente orden para los agentes híbridos:
- Entrada del parámetro mientras se completa el formulario.
- Coincidencias de intents para rutas dentro del alcance.
- Controlador de almacén de datos con contenido de Preguntas frecuentes sobre el almacén de datos.
- Controlador de almacén de datos con contenido de almacenes 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.
Para agregar o editar un controlador de almacén de datos, haz lo siguiente:
- Ir a la consola de Dialogflow CX
- Selecciona tu proyecto de Google Cloud.
- Selecciona el agente.
- Selecciona el flujo asociado con el controlador del almacén de datos. Este suele ser el flujo de inicio predeterminado.
- Selecciona la página asociada con el controlador del almacén de datos. Por lo general, es la página de inicio.
- Haz clic en Agregar controlador de estado en los datos de la página y, luego, selecciona almacén de datos.
- 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 poder realizar selecciones.
- Si ya tienes un almacén de datos, haz clic en Editar almacén de datos.
- 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 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 Vínculo máximo para indicar la cantidad máxima de vínculos complementarios que deben proporcionar las respuestas generativas.
Controla las digresiones de conversación
Un usuario final puede hacer preguntas aclaratorias durante una conversación. Por ejemplo, durante la recopilación de información de la tarjeta 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”.
Cómo controlar las coincidencias de intent no deseadas
Si tu agente hace coincidir 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 imprecisas, para que todas tus 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 de almacenes de datos
En algunos casos, es posible que solo desees 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. Sigue estos pasos para filtrar el almacén de datos según las categorías de productos:
- 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 hagan 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 que realiza la 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 sin modificaciones, por lo que los nombres y valores de propiedad descriptivos brindan 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 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 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 |
Ruby | 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, las configuraciones de búsqueda de mejora y filtro se exponen a fin de que puedas mejorar, ocultar y filtrar documentos.
Los controles de mejora te permiten cambiar la clasificación de los resultados de la búsqueda a través de la aplicación de 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 los 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 potencia
La siguiente configuración de búsqueda describe un control de aumento:
"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 proporcionar estos datos a Dialogflow cuando envíes solicitudes de detección de intent. 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 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 |
Ruby | No disponible | No disponible |
Cómo configurar 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 mensajes 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.
Codelab
Consulta también el Codelab del agente de almacén de datos y de la app de chat generativa.