Skip to main content
Esta guía muestra cómo sincronizar documentos desde un sistema externo, como Guru, en una knowledge base de Profound. Todos los ejemplos requieren autenticación con una clave de API.
Las knowledge bases deben crearse en la app de Profound. La API no puede crear una knowledge base. Reemplaza your_api_key, your_knowledge_base_id y your_organization_id con tus valores reales.

Guía paso a paso para sincronizar documentos

Usa este flujo para replicar documentos y carpetas de un sistema externo:
  1. Usa List Knowledge Bases para encontrar el ID de la knowledge base.
  2. Usa Add Folder para replicar las carpetas de origen cuando sea necesario.
  3. Usa Add Document para subir cada documento de origen.
  4. Usa Update Document para resincronizaciones idempotentes.
  5. Usa Delete Document o Delete Folder cuando se elimine contenido del sistema de origen.

1. Listar las knowledge bases

Primero, obtén el ID de la knowledge base que quieres sincronizar. El id devuelto aquí es obligatorio como parámetro de ruta knowledge_base_id en todas las demás solicitudes de Knowledge Base.
Si tu clave de API puede acceder a varias organizaciones, pasa organization_id en la solicitud:
Usa el mismo parámetro de consulta en las solicitudes posteriores cuando la clave de API abarque varias organizaciones.

2. Añadir una carpeta

Las carpetas están vacías al crearse. La carpeta de un documento ya debe existir, así que crea la jerarquía de origen antes de subir documentos y usa rutas de carpeta como Engineering/API para replicar la jerarquía de Guru. Crea las carpetas principales antes que sus carpetas anidadas. Crear una carpeta que ya existe devuelve 409 Conflict.

3. Añadir un documento

Añade un documento como JSON enviando su texto en el campo text. folder es opcional; cuando se proporciona, es la ruta de la carpeta que contiene el documento.
También puedes subir un archivo como datos de formulario multipart. Esto es útil cuando tu sistema de origen proporciona los archivos de documento directamente:
Ambas formas devuelven el nombre, la ruta y la carpeta del documento:
Añadir un documento no sobrescribe un documento existente: si la ruta del documento ya existe, la solicitud devuelve 409 Conflict. Usa la actualización en su lugar cuando la ruta ya exista.

4. Actualizar un documento

La actualización sobrescribe un documento existente en la ruta de destino. La solicitud JSON tiene los mismos campos name, text y folder opcional que la de añadir:
Las subidas multipart usan los mismos campos name y folder opcional, con file en lugar de text:
La actualización apunta a una ruta de documento existente en una carpeta existente; una carpeta inexistente devuelve 404 Not Found.

5. Eliminar un documento

Elimina un documento enviando su nombre en el cuerpo de una solicitud JSON. Incluye folder en el nombre cuando elimines un documento anidado:

6. Eliminar una carpeta

Elimina una carpeta vacía estableciendo recursive en false (el valor predeterminado):
Si la carpeta no está vacía, la solicitud devuelve 409 Conflict y no se elimina nada. Para eliminar la carpeta y todo su contenido, establece recursive en true:

7. Buscar en una knowledge base

Busca con un query obligatorio y un top_k entre 1 y 100. Establece return_full_page en true para solicitar el contenido completo de la página en lugar de fragmentos.
filters.tags coincide con los documentos que tengan cualquiera de las etiquetas proporcionadas. filters.folders limita la búsqueda a rutas de carpeta y actualmente acepta exactamente una carpeta. Cada resultado incluye un id, una puntuación de relevancia score, metadata y el contenido coincidente content:
Para sincronizar un sistema externo, recorre los documentos de origen, usa sus rutas de carpeta para replicar la jerarquía de origen, usa PUT para resincronizaciones idempotentes y usa DELETE para los documentos eliminados del origen.