Los conectores de conocimiento complementan los intents definidos. Analizan documentos de conocimientos (por ejemplo, preguntas frecuentes o artículos) para encontrar respuestas automatizadas. Para configurarlos, debe definir una o varias bases de conocimientos, que son colecciones de documentos de conocimientos.
Puedes habilitar bases de conocimientos para tu agente, de modo que todas las solicitudes de detección de intención puedan encontrar respuestas automatizadas mediante tus bases de conocimientos. También puede especificar una o varias bases de conocimientos en sus solicitudes individuales de detección de intención.
Es habitual que un agente que usa conectores de conocimientos también use intents definidos. Los conectores de conocimientos ofrecen menos precisión y control en las respuestas que las intenciones. Debes definir tus intents para gestionar solicitudes de usuario complejas y dejar que los conectores de conocimientos gestionen las solicitudes sencillas.
Para ver una lista de los idiomas admitidos, consulta la columna Knowledge Connectors de la referencia de idiomas.
Limitaciones
La función de conectores de conocimientos solo está disponible en la global
región.
Habilitar 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 situado junto al nombre del agente.
- En la pestaña General, desplázate hacia abajo y comprueba que la opción Funciones beta esté habilitada.
- Si has hecho algún cambio, haz clic en Guardar.
Crear una base de conocimientos y un documento
Sigue las instrucciones de la guía de bases de conocimientos para crear una base de conocimientos y un documento.
Ajustes de conectores de conocimiento
Puedes habilitar o inhabilitar bases de conocimientos para tu agente. Las bases de conocimientos habilitadas se tendrán en cuenta en todas las solicitudes de coincidencia de intents que no especifiquen bases de conocimientos. Para habilitar o inhabilitar bases de conocimientos, sigue estos pasos:
- Ve a la consola de Dialogflow ES.
- Selecciona un agente.
- En el menú de la barra lateral de la izquierda, haz clic en Conocimiento.
- Seleccione una o varias bases de conocimientos de la lista.
- Haz clic en Habilitar o Inhabilitar.
Cuando una expresión de usuario final también coincide con una intención, puedes especificar cuánto prefieres los resultados de conocimiento:
- Desplázate hacia abajo hasta la sección Ajustar preferencia de resultados de conocimientos.
- Ajusta el control deslizante de más débil (se da prioridad a la intención) a más fuerte (se da prioridad al conocimiento). Para obtener más información, consulta la sección Respuestas de detección de intención que se encuentra más abajo.
Configurar respuestas
De forma predeterminada, una base de conocimientos se configura con una sola respuesta de texto predeterminada que se rellena con la respuesta de la base de conocimientos que mejor se ajusta. Puedes cambiar esta respuesta y añadir mensajes de respuesta enriquecida. Las respuestas de la base de conocimientos pueden contener hasta tres respuestas por base de conocimientos, y puedes hacer referencia a estas respuestas en las respuestas configuradas. Para añadir respuestas:
- En la página Conocimientos, haz clic en el nombre de tu base de conocimientos.
- Desplázate hacia abajo hasta la sección Respuestas y añade las que quieras:
- Cuando definas la primera respuesta, usa
$Knowledge.Question[1]
y$Knowledge.Answer[1]
donde quieras que se proporcionen la pregunta y la respuesta. - El índice de
$Knowledge.Question
y$Knowledge.Answer
empieza en 1, así que aumenta este índice cuando añadas más respuestas.
- Cuando definas la primera respuesta, usa
- Cuando haya terminado de editar, haga clic en Guardar.
Cuando definas respuestas, ten en cuenta estos aspectos:
- Si el número de respuestas definidas es mayor que el número N de coincidencias de respuestas del conector de conocimientos, solo se devolverán N respuestas.
- Dado que la precisión podría ser inferior a la de las intenciones definidas explícitamente, te recomendamos que devuelvas tres respuestas a tus usuarios siempre que sea posible.
Ejemplo:
Detectar intents con una base de conocimientos
Cuando hagas una solicitud para detectar la intención, puedes especificar una o varias bases de conocimientos para obtener una posible respuesta. Si se proporcionan bases de conocimientos de forma explícita en una solicitud, se anulan los ajustes de las bases de conocimientos habilitadas e inhabilitadas.
En los ejemplos siguientes se muestra cómo usar la consola de Dialogflow, la API REST (incluida la línea de comandos) o las bibliotecas de cliente para detectar intenciones.
Para usar la API, llama al método detectIntent
en el tipo Sessions
.
UI web
Puedes interactuar con el agente y recibir respuestas del conector de conocimientos a través del simulador de Dialogflow:- Sigue los pasos anteriores para habilitar una base de conocimientos.
- Sigue los pasos anteriores para definir las respuestas.
- Escribe "¿Cómo me registro?" en el simulador.
REST
Llama al métododetectIntent
en el tipo
Sessions
y especifica la base de conocimientos en el campo queryParams
.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto de GCP
- KNOWLEDGE_BASE_ID: el ID de tu base de conocimientos
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, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ ... "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. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para autenticarte en Dialogflow, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para autenticarte en Dialogflow, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Detectar respuestas de intents
La respuesta del método detectIntent
del tipo Sessions
es un DetectIntentResponse
.
Hay varios factores que influyen en cómo se rellenan los campos de respuesta.
Si tanto una intención definida como una base de conocimientos son posibles coincidencias, se utiliza la confianza de la coincidencia de cada una y la preferencia de resultados de conocimientos (consulta Configuración de conectores de conocimientos) para determinar cuál es la coincidencia seleccionada.
La coincidencia seleccionada se rellena en el campo DetectIntentResponse.queryResult
y otras posibles coincidencias se rellenan en el campo DetectIntentResponse.alternativeQueryResults
.
Ambos campos contienen mensajes QueryResult
.
Si una base de conocimientos proporciona una coincidencia potencial:
QueryResult.knowledgeAnswers
se rellena con una lista de posibles respuestas de conocimientos, ordenadas de mayor a menor confianza de coincidencia.- Si se han definido respuestas enriquecidas para la base de conocimientos, se rellenará con mensajes de respuesta enriquecidos.
QueryResult.fulfillmentMessages
Al realizar una solicitud de detección de intención, es posible que la consulta de conocimientos falle.
Cuando esto ocurre, se seleccionan las intenciones definidas, por lo que la solicitud de detección de intenciones general no falla.
Puede encontrar información sobre los errores de las consultas de conocimientos en el campo DetectIntentResponse.alternativeQueryResults[i].diagnosticInfo
.
Gestionar bases de conocimientos
Para obtener más información sobre cómo gestionar bases de conocimientos, consulta el artículo Gestionar bases de conocimientos.