Los conectores de conocimiento complementan los intents definidos. Analizan documentos de conocimiento (por ejemplo, preguntas frecuentes o artículos) para encontrar respuestas automáticas. Para configurarlos, debes definir una o más bases de conocimiento, que son colecciones de documentos de conocimiento.
Puedes habilitar las bases de conocimiento para tu agente, de modo que todas las solicitudes de detección de intents puedan buscar respuestas automáticas mediante las bases de conocimiento. También puedes especificar una o más bases de conocimiento en las solicitudes de detección de intents individuales.
Es común que un agente que usa conectores de conocimiento también use intents definidos. Los conectores de conocimiento ofrecen menos control y precisión de respuesta que los intents. Debes definir los intents para que controlen solicitudes de usuario complejas y permitir que los conectores de conocimiento controlen las solicitudes simples.
Para obtener una lista de los idiomas compatibles, consulta la columna Conectores de conocimiento en la referencia de idiomas.
Limitaciones
La función de conectores de conocimiento solo está disponible para la región global
.
Habilita las funciones Beta
Asegúrate de que las funciones Beta estén habilitadas:
- Ve a la consola de Dialogflow ES.
- Selecciona un agente.
- Haz clic en el botón de configuración (settings) que se encuentra junto al nombre del agente.
- Desplázate hacia abajo en la pestaña General y asegúrate de que la opción Funciones Beta esté habilitada.
- Si realizaste cambios, haz clic en Guardar.
Crea una base y un documento de conocimiento
Sigue las instrucciones del instructivo de las bases de conocimiento para crear una base y un documento de conocimiento.
Configuración para conectores de conocimiento
Puedes habilitar o inhabilitar las bases de conocimiento para tu agente. Las bases de conocimiento habilitadas se considerarán para todas las solicitudes de coincidencia de intents que no especifiquen bases de conocimiento. Para habilitar o inhabilitar las bases de conocimiento, sigue estos pasos:
- Ve a la consola de Dialogflow ES.
- Selecciona un agente.
- Haz clic en Conocimiento, en el menú de la barra lateral izquierda.
- Selecciona una o más bases de conocimiento de la lista.
- Haz clic en Habilitar o Inhabilitar.
Cuando una expresión del usuario final también coincida con un intent, puedes especificar el grado de confianza de los resultados de conocimiento:
- Desplázate hacia abajo hasta la sección Ajusta la preferencia de los resultados de conocimiento.
- Ajusta el control deslizante desde el más débil (se le da preferencia al intent) hasta el más fuerte (se le da preferencia al conocimiento). Para obtener más información, consulta la sección Respuestas de detección de intent, que se encuentra a continuación.
Configura respuestas
De forma predeterminada, se configura con una única respuesta de texto predeterminada con la mejor respuesta de conocimiento. Puedes cambiar esta respuesta y agregar mensajes de respuesta enriquecida. Las respuestas de conocimiento pueden contener hasta tres respuestas por base de conocimiento, y puedes hacer referencia a estas respuestas en tus respuestas configuradas. Para agregar respuestas, haz lo siguiente:
- En la página Conocimiento, haz clic en el nombre de tu base de conocimiento.
- Desplázate hacia abajo hasta la sección Respuestas (Responses) y agrégalas como desees:
- Cuando definas la primera respuesta, usa
$Knowledge.Question[1]
y$Knowledge.Answer[1]
en los lugares en los que deben proporcionarse la pregunta y la respuesta. - El índice para
$Knowledge.Question
y$Knowledge.Answer
comienza en 1, por lo que debes aumentar este índice cuando agregues más respuestas.
- Cuando definas la primera respuesta, usa
- Cuando termines de editar, haz clic en Guardar.
Cuando definas respuestas, debes considerar estos puntos:
- Si la cantidad de respuestas definidas es mayor que el número N de coincidencias de respuestas del conector de conocimiento, solo se mostrarán N respuestas.
- Dado que la exactitud podría ser menor que hacer coincidir intents definidos de forma explícita te recomendamos que muestres tres respuestas a tus usuarios cuando sea posible.
Ejemplo:
Detecta el intent con la base de conocimiento
Cuando realizas una solicitud de detección de intent, puedes especificar una o más bases de conocimiento para una respuesta posible. El suministro explícito de bases de conocimiento en una solicitud anula la configuración de las bases de conocimiento habilitadas o inhabilitadas.
En los ejemplos a continuación, se muestra cómo usar la consola de Dialogflow, la API de REST (incluida la línea de comandos) o las bibliotecas cliente para detectar intents.
Para usar la API, realiza una llamada al método detectIntent
en el tipo Sessions
.
IU web
Puedes interactuar con el agente y recibir respuestas del conector de conocimiento mediante el Simulador de Dialogflow:- Sigue los pasos anteriores para habilitar una base de conocimiento.
- Sigue los pasos anteriores para definir respuestas.
- Escribe “¿Cómo me registro?” en el simulador.
REST
Llama al métododetectIntent
en el tipo Sessions
y especifica la base de conocimiento en el campo queryParams
.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: Es el ID del proyecto de GCP.
- KNOWLEDGE_BASE_ID: Es el ID de la base de conocimiento.
Método HTTP y URL:
POST https://dialogflow.googleapis.com/v2beta1/projects/PROJECT_ID/agent/sessions/123456789:detectIntent
Cuerpo JSON de la solicitud:
{ "queryInput": { "text": { "text": "How do I sign up?", "languageCode": "en-US" } }, "queryParams": { "knowledgeBaseNames": ["projects/PROJECT_ID/knowledgeBases/KNOWLEDGE_BASE_ID"] } }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ ... "queryResult": { "queryText": "How do I sign up?", "parameters": {}, "allRequiredParamsPresent": true, "fulfillmentText": "Sign up for Cloud Storage by turning on the Cloud Storage service in the Google Cloud Platform Console.", "intent": { "name": "projects/my-gcp-project/agent/intents/487c7242-a769-408a-a339-47b95e10dac4", "displayName": "Knowledge.KnowledgeBase.MzkzNTAyMDE3NDQxNDk3MDg4MA" }, "intentDetectionConfidence": 0.99371547, "languageCode": "en-us", "knowledgeAnswers": { "answers": [ { "answer": "Sign up for Cloud Storage by turning on the Cloud Storage service in the Google Cloud Platform Console.", "matchConfidenceLevel": "HIGH", "matchConfidence": 0.99371547 }, { "answer": "Certain types of content are not allowed on this service; please refer to the Terms of Services and Platform Policies for details. If you believe a piece of content is in violation of our policies, report it here (select See more products, then Google Cloud Storage and Cloud Bigtable).", "matchConfidenceLevel": "LOW", "matchConfidence": 0.0012244871 }, { "answer": "From the Cloud Storage documentation click \"Send feedback\" near the top right of the page. This will open a feedback form. Your comments will be reviewed by the Cloud Storage team.", "matchConfidenceLevel": "LOW", "matchConfidence": 0.0011537358 } ] } } }
Java
Para autenticarte en Dialogflow, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para autenticarte en Dialogflow, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para autenticarte en Dialogflow, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Respuestas de detección de intent
La respuesta para el método Sessions
tipo detectIntent
es un DetectIntentResponse
.
Varios factores afectan cómo se propagan los campos de respuesta.
Si un intent definido y una base de conocimiento son coincidencias posibles, la confianza de la coincidencia de cada uno y las preferencias de resultados de conocimiento (consulta la sección Configuración para conectores de conocimiento) se usan a fin de determinar qué coincidencia es la seleccionada.
La coincidencia seleccionada se propaga en el campo DetectIntentResponse.queryResult
, y otras coincidencias potenciales se propagan en el campo DetectIntentResponse.alternativeQueryResults
.
Ambos campos contienen mensajes QueryResult
.
Si una base de conocimiento proporciona una coincidencia posible, sucede lo siguiente:
QueryResult.knowledgeAnswers
se propaga con una lista de posibles respuestas de conocimiento ordenadas de mayor a menor según la confianza de la coincidencia.- Si se definieron respuestas enriquecidas para la base de conocimiento,
QueryResult.fulfillmentMessages
se propaga con mensajes de respuesta enriquecida.
Cuando se realiza una solicitud de detección de intents, es posible que falle la consulta de conocimiento.
Cuando esto suceda, se seleccionarán los intents definidos, por lo que la solicitud de detección de intent general no fallará.
Puedes encontrar información sobre el error de consulta de conocimiento en el campo DetectIntentResponse.alternativeQueryResults[i].diagnosticInfo
.
Administra bases de conocimiento
Para obtener más información sobre la administración de bases de conocimiento, consulta Administra bases de conocimiento.