Base de Conocimientos

Cada agente tiene una colección de entradas de conocimiento — fragmentos de información que el agente puede consultar en tiempo de ejecución para responder con datos específicos de tu negocio (manuales, políticas, FAQs, fichas de producto, etc.).

Cuando subes un archivo o ingieres una URL, Platica se encarga del procesamiento automático: extrae el contenido, genera un título y descripción si no los proveíste, lo divide en fragmentos si es muy largo, deduplica si el archivo ya existía, e indexa todo para que el agente pueda buscarlo.

Listar Entradas

GET https://api.platica.mx/v1/agents/{agentId}/knowledge

Parámetros de URL

ParámetroTipoDescripciónRequerido
agentIdstringIdentificador único del agente

Parámetros de query

ParámetroTipoDescripciónDefault
statusstringLista separada por comas: active, draft, inactive, training, failed(todas)
limitintegerMáximo de entradas a devolver(sin límite)

Respuesta

{
  "count": 1,
  "knowledge": [
    {
      "id": "FXjQXMr3...",
      "name": "get_politicas_devolucion_a1b2c3",
      "topic": "Políticas de devolución",
      "description": "Documento oficial v2.3 con plazos, condiciones y excepciones.",
      "status": "active",
      "fileType": "pdf",
      "fileName": "manual.pdf",
      "lastUpdate": "2026-05-28T06:14:21.000Z"
    }
  ]
}

Obtener Entrada

GET https://api.platica.mx/v1/agents/{agentId}/knowledge/{knowledgeId}

Parámetros de URL

ParámetroTipoDescripciónRequerido
agentIdstringIdentificador único del agente
knowledgeIdstringIdentificador de la entrada

Respuesta

Devuelve la entrada completa, incluyendo el contenido ya procesado.

Crear desde URLs

Cuando el archivo ya está alojado públicamente (Firebase Storage, S3, etc.), referencialo por URL y Platica lo descarga y procesa.

POST https://api.platica.mx/v1/agents/{agentId}/knowledge

Parámetros de URL

ParámetroTipoDescripciónRequerido
agentIdstringIdentificador único del agente

Cuerpo de la solicitud

{
  "files": [
    {
      "fileUrl": "https://storage.googleapis.com/.../manual.pdf",
      "fileName": "manual.pdf",
      "fileType": "pdf",
      "fileSize": 481923,
      "topic": "Manual del producto",
      "description": "Manual oficial v2.3"
    }
  ],
  "setActive": true
}
ParámetroTipoDescripciónRequerido
filesarrayLista de archivos a procesar (al menos uno)
files[].fileUrlstringURL pública del archivo
files[].fileNamestringNombre del archivo (con extensión)
files[].fileTypestringTipo ("pdf", "docx", "txt", etc.)
files[].fileSizeintegerTamaño en bytes (informativo)
files[].topicstringTítulo corto (≤ 30 chars). Si se omite, se genera automáticamente.
files[].descriptionstringDescripción (≤ 900 chars). Si se omite, se genera automáticamente.
setActivebooleanMarcar las entradas como active al terminar (en lugar de draft)true

Respuesta

{
  "status": "success",
  "message": "Knowledge entries created",
  "data": {
    "totalFiles": 1,
    "successful": 1,
    "failed": { "count": 0, "files": [] }
  }
}

Subir Archivos

Para subir el binario directamente sin pre-hostear, manda multipart al endpoint de upload. Platica lo guarda, lo hace accesible vía URL pública y te devuelve esa URL para que la pases a crear desde URLs .

POST https://api.platica.mx/v1/agents/{agentId}/knowledge/upload

Parámetros de URL

ParámetroTipoDescripciónRequerido
agentIdstringIdentificador único del agente

Cuerpo de la solicitud

Content-Type: multipart/form-data con uno o más campos files:

curl -X POST https://api.platica.mx/v1/agents/{agentId}/knowledge/upload \
  -H "Authorization: Bearer pl_key_..." \
  -F "files=@manual.pdf" \
  -F "files=@politicas.docx"

Límite: 20 MB por request multipart.

Respuesta

{
  "status": "success",
  "message": "Files uploaded",
  "data": {
    "success": true,
    "uploaded": [
      {
        "fileName": "manual.pdf",
        "fileUrl": "https://storage.googleapis.com/.../manual.pdf",
        "fileType": "pdf",
        "fileSize": 481923
      }
    ]
  }
}

Invalid note type. Should be either "note", "tip", "important", "warning", "caution"

Ingerir URLs Web

Ingesta el contenido de páginas web, lo convierte a texto y crea entradas de conocimiento con título y descripción generados automáticamente.

POST https://api.platica.mx/v1/agents/{agentId}/knowledge/web

Parámetros de URL

ParámetroTipoDescripciónRequerido
agentIdstringIdentificador único del agente

Cuerpo de la solicitud

{
  "urls": [
    "https://docs.miempresa.com/faq",
    "https://miempresa.com/politicas/devoluciones"
  ]
}
ParámetroTipoDescripciónRequerido
urlsarray de stringsURLs HTTP(S) a ingerir (al menos una)

Respuesta

{
  "status": "success",
  "message": "Web pages ingested",
  "data": {
    "totalUrls": 2,
    "successful": 2,
    "failed": { "count": 0, "details": [] }
  }
}

Actualizar Entrada

Cambia el estado, edita el contenido (mismo patrón que el prompt — match exacto, fuzzy o regex), o re-procesa la fuente original.

PATCH https://api.platica.mx/v1/agents/{agentId}/knowledge/{knowledgeId}

Parámetros de URL

ParámetroTipoDescripciónRequerido
agentIdstringIdentificador único del agente
knowledgeIdstringIdentificador de la entrada

Cuerpo de la solicitud

Cambiar status:

{ "status": "active" }

Editar contenido por reemplazo de texto:

{ "oldText": "viejo", "newText": "nuevo", "useRegex": false }

Re-procesar la fuente original (re-extrae y re-genera metadata):

{ "reprocess": true }
ParámetroTipoDescripción
statusstring"active", "draft", "inactive", "training", "failed"
oldTextstringTexto a reemplazar dentro del contenido
newTextstringTexto de reemplazo
useRegexbooleanSi es true, oldText se interpreta como expresión regular
reprocessbooleanVolver a procesar el archivo o URL original
skipParsingbooleanSaltar el procesamiento automático cuando se reprocesa
updatesobjetoCampos crudos de la entrada (avanzado — sobreescribe las shorthand)

Respuesta

{
  "status": "success",
  "message": "Knowledge entry updated"
}

Eliminar Entrada

Elimina una entrada de la base de conocimientos del agente. El agente deja de poder consultarla.

DELETE https://api.platica.mx/v1/agents/{agentId}/knowledge/{knowledgeId}

Parámetros de URL

ParámetroTipoDescripciónRequerido
agentIdstringIdentificador único del agente
knowledgeIdstringIdentificador de la entrada

Respuesta

{
  "status": "success",
  "message": "Knowledge entry deleted"
}

Re-procesar Entrada

Vuelve a procesar la fuente original de una entrada (descarga el archivo o URL otra vez, re-extrae el contenido y regenera la metadata).

POST https://api.platica.mx/v1/agents/{agentId}/knowledge/{knowledgeId}/reparse

Parámetros de URL

ParámetroTipoDescripciónRequerido
agentIdstringIdentificador único del agente
knowledgeIdstringIdentificador de la entrada

Cuerpo de la solicitud

{ "web": false }
ParámetroTipoDescripciónDefault
webbooleantrue si la entrada vino de una URL web, false si vino de un archivofalse

También se acepta { "source": "web" } como alias.

Respuesta

{
  "status": "success",
  "message": "Knowledge entry reparse queued"
}

Notas

  • Si subes un archivo idéntico al de una entrada existente (mismo contenido), el sistema deduplica y no crea una nueva.
  • Para archivos muy largos, el contenido se divide en varias entradas relacionadas para mantener una buena calidad de búsqueda.