Una base de conocimientos representa una colección de documentos de conocimientos que proporcionas a Dialogflow. Tus documentos de conocimientos contienen información que puede ser útil durante las conversaciones con los usuarios finales. Algunas funciones de Dialogflow usan bases de conocimientos cuando buscan una respuesta a una expresión de un usuario final. En esta guía se describe cómo crear y gestionar bases de conocimientos.
Una base de conocimientos se aplica a nivel de agente.
Antes de empezar
Antes de leer esta guía, debes hacer lo siguiente:
- Consulta los conceptos básicos de Dialogflow.
- Sigue los pasos de configuración.
Crear una base de conocimientos
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 crear una base de conocimientos.
Para usar la API, llama al método create
en el tipo KnowledgeBase
.
UI web
Para crear una base de conocimientos en la consola de Dialogflow, sigue estos pasos:- Ve a la consola de Dialogflow ES.
- Select an agent
- En el menú de la barra lateral de la izquierda, haz clic en Conocimientos.
- Haga clic en Crear base de conocimientos.
- Introduce un nombre para la base de conocimientos
- Haz clic en Guardar.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto de GCP
- KNOWLEDGE_BASE_DISPLAY_NAME: nombre de la base de conocimientos que quieras
Método HTTP y URL:
POST https://dialogflow.googleapis.com/v2beta1/projects/PROJECT_ID/knowledgeBases
Cuerpo JSON de la solicitud:
{ "displayName": "KNOWLEDGE_BASE_DISPLAY_NAME" }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/PROJECT_ID/knowledgeBases/NDA4MTM4NzE2MjMwNDUxMjAwMA", "displayName": "KNOWLEDGE_BASE_DISPLAY_NAME" }
Anota el valor del campo name
.
Este es el nombre de tu nueva base de conocimientos.
El segmento de ruta después de knowledgeBases
es el nuevo ID de la base de conocimientos.
Guarda este ID para las solicitudes que se indican más abajo.
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.
Añadir un documento a la base de conocimientos
Tu nueva base de conocimientos no tiene ningún documento, por lo que deberías añadir uno. Consulta la sección Contenido admitido más abajo para ver una descripción de todas las opciones de contenido admitidas. Puedes usar el documento de preguntas frecuentes de Cloud Storage para este ejemplo.
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 crear un documento de conocimientos.
Para usar la API, llama al método create
en el tipo Document
.
UI web
Para crear un documento de conocimiento en la consola de Dialogflow, sigue estos pasos:- Si no has seguido los pasos anteriores, ve a los ajustes de la base de conocimientos:
- Ve a la consola de Dialogflow ES.
- Select an agent
- En el menú de la barra lateral de la izquierda, haz clic en Conocimientos.
- Haga clic en el nombre de su base de conocimientos.
- Haz clic en Nuevo documento o en Crea el primero.
- Introduce un nombre para el documento
- Selecciona text/html en Mime Type (Tipo de MIME).
- Selecciona Preguntas frecuentes en Tipo de conocimiento.
- Seleccione URL en Fuente de datos.
- Escribe https://cloud.google.com/storage/docs/faq en el campo URL.
- Haz clic en CREAR.
REST
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 la base de conocimientos devuelto en la solicitud anterior.
- DOCUMENT_DISPLAY_NAME: nombre del documento de conocimientos deseado
Método HTTP y URL:
POST https://dialogflow.googleapis.com/v2beta1/projects/PROJECT_ID/knowledgeBases/KNOWLEDGE_BASE_ID/documents
Cuerpo JSON de la solicitud:
{ "displayName": "DOCUMENT_DISPLAY_NAME", "mimeType": "text/html", "knowledgeTypes": "FAQ", "contentUri": "https://cloud.google.com/storage/docs/faq" }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/PROJECT_ID/operations/ks-add_document-MzA5NTY2MTc5Mzg2Mzc5NDY4OA" }
El segmento de la ruta que aparece después de operations
es tu ID de operación.
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.
Crear un documento es una operación de larga duración, por lo que puede tardar bastante tiempo en completarse. Puedes sondear el estado de esta operación para ver si se ha completado. Una vez completada, la operación contiene el ID del documento recién creado. Guarda este ID para procesarlo más adelante. Para obtener más información, consulta Operaciones de larga duración.
Gestionar documentos de conocimientos
Actualizar el contenido de un documento de conocimientos
Si actualizas el contenido al que hace referencia un documento de conocimiento, es posible que este no se actualice automáticamente. El contenido solo se actualiza automáticamente si se proporciona como una URL pública y has marcado la opción Habilitar recarga automática del documento.
Para actualizar manualmente el contenido de un documento de Cloud Storage o de una URL pública, llama al método reload
del tipo Document
.
Para actualizar manualmente el contenido sin formato subido, usa los métodos delete
y create
en el tipo Document
para volver a crear el documento.
Listar documentos de conocimientos
Puedes enumerar todos los documentos de conocimiento de tu base de conocimientos.
Para usar la API, llama al método list
en el tipo Document
.
Eliminar documentos de conocimientos
Puedes eliminar documentos de conocimientos de tu base de conocimientos.
Para usar la API, llama al método delete
en el tipo Document
.
Si no tienes el ID del documento,
puedes enumerar los documentos como se ha descrito anteriormente.
Contenido admitido
Se admiten los siguientes tipos de documentos de conocimientos:
- Preguntas frecuentes: el contenido del documento contiene pares de preguntas y respuestas en formato HTML o CSV. Los formatos HTML de preguntas frecuentes típicos se analizan correctamente, pero es posible que los formatos poco habituales no se analicen. El archivo CSV debe tener las preguntas en la primera columna y las respuestas en la segunda, sin encabezados. Gracias a este formato explícito, siempre se analizan correctamente.
- Control de calidad extractivo: documentos de los que se extrae texto no estructurado y se usa para responder preguntas.
En la siguiente tabla se muestran los tipos MIME admitidos por Tipo de conocimiento y Fuente.
Knowledge Type \ Source | Archivo subido (Document.content) (NO recomendado) | Archivo subido (Document.raw_content) (recomendado) | Archivo de Cloud Storage (Document.contentUri) | Archivo de URL pública (Document.contentUri) |
---|---|---|---|---|
Preguntas frecuentes | text/csv | text/csv | text/csv | text/html |
Extracción de respuestas | text/plain, text/html | text/plain, text/html, application/pdf | text/plain, text/html, application/pdf | N/A |
El contenido de los documentos tiene los siguientes problemas conocidos, limitaciones y prácticas recomendadas:
General:
- El indexador de la Búsqueda de Google debe haber rastreado los archivos de las URLs públicas para que estén en el índice de búsqueda. Puede comprobarlo con Google Search Console. Tenga en cuenta que el indexador no mantiene su contenido actualizado. Debes actualizar explícitamente tu documento de conocimientos cuando cambie el contenido de la fuente.
- Los archivos CSV deben usar comas como delimitadores.
- Las puntuaciones de confianza aún no se han calibrado entre las preguntas frecuentes y los artículos de la base de conocimientos, por lo que, si utilizas ambos, es posible que el mejor resultado no siempre sea el más alto.
- Dialogflow elimina las etiquetas HTML del contenido al crear respuestas. Por este motivo, es mejor evitar las etiquetas HTML y usar texto sin formato siempre que sea posible.
- Las respuestas del Asistente de Google tienen un límite de 640 caracteres por burbuja de chat, por lo que las respuestas largas se truncan al integrarse con el Asistente de Google.
- El tamaño máximo del documento es de 50 MB.
- Cuando utilices archivos de Cloud Storage, debes usar URIs públicos o URIs privados a los que tu cuenta de usuario o cuenta de servicio tengan acceso.
Específicas de las preguntas frecuentes:
- El archivo CSV debe tener las preguntas en la primera columna y las respuestas en la segunda, sin encabezados.
- Utiliza el formato CSV siempre que sea posible, ya que es el que se analiza con mayor precisión.
- No se admite contenido HTML público con un solo par de preguntas y respuestas.
- El número de pares de preguntas y respuestas de un documento no debe superar los 2000.
- No se admiten preguntas duplicadas con respuestas diferentes.
- Puedes usar cualquier documento de preguntas frecuentes, ya que el analizador de preguntas frecuentes puede gestionar la mayoría de los formatos.
Específico de Extractive QA:
- Actualmente, la respuesta a preguntas extractiva es experimental. Se basa en tecnologías similares que se han probado en Google en productos como la Búsqueda y el Asistente. Envíanos tus comentarios sobre su funcionamiento en Dialogflow.
- El contenido con texto denso funciona mejor. Evita el contenido con muchos párrafos de una sola frase.
- No se admiten tablas ni listas.
- El número de párrafos de un documento no debe superar los 2000.
- Si un artículo es largo (más de 1000 palabras), intenta dividirlo en varios artículos más pequeños. Si el artículo trata varios temas, se puede dividir en artículos más cortos que aborden cada tema por separado. Si el artículo solo trata un problema, céntrate en la descripción del problema y haz que la solución sea breve.
- Lo ideal es que solo se proporcione el contenido principal de un artículo (descripción del problema y solución). No es importante el contenido adicional, como el nombre del autor, el historial de modificaciones, los enlaces relacionados y los anuncios.
- Intenta incluir una descripción de los problemas que puede ayudar a resolver un artículo o consultas de ejemplo que este artículo puede responder.
Usar Cloud Storage
Si tu contenido no es público, te recomendamos que lo almacenes en Cloud Storage. Cuando creas documentos de conocimientos, proporcionas las URLs de tus objetos de Cloud Storage.
Crear segmentos y objetos de Cloud Storage
Al crear el segmento de Cloud Storage:
- Asegúrate de haber seleccionado el proyecto de GCP que usas en Dialogflow.
- Asegúrate de que la cuenta de usuario o de servicio que sueles usar para acceder a la API Dialogflow tenga permisos de lectura para los objetos del bucket.
- Usa la clase de almacenamiento estándar.
- Define la ubicación del segmento como la más cercana a tu ubicación.
Necesitará el ID de ubicación (por ejemplo,
us-west1
) para algunas llamadas a la API, así que anote la opción que elija.
Sigue las instrucciones de la guía de inicio rápido de Cloud Storage para crear un segmento y subir archivos.
Proporcionar un objeto de Cloud Storage a un documento de base de conocimientos
Para proporcionar tu contenido, sigue estos pasos:
- Crea una base de conocimientos como se describe más arriba.
- Crea un documento de conocimientos como se describe más arriba.
Cuando llames al método
create
en el tipoDocument
, asigna al campocontentUri
la URL de tu documento de Cloud Storage. El formato de esta URL esgs://bucket-name/object-name
.