Knowledge base del bot

El agente IA del bot tiene tres tipos de memoria: el historial de la conversación (últimos 20 mensajes), los atributos guardados por contacto, y — desde esta feature — los documentos del negocio que vos subís. Esos documentos se procesan, indexan y se recuperan automáticamente cada vez que el bot recibe una pregunta del cliente.

Cómo funciona (RAG en 1 minuto)

  1. Subís un PDF/DOCX/TXT/MD en Dashboard → Bot → Memoria → Documentos.
  2. Un worker extrae el texto, lo divide en chunks de ~700 tokens con overlap y genera embeddings (text-embedding-3-small, 1536 dims).
  3. Los chunks + vectores se guardan en pgvector dentro de tu organización.
  4. Cuando un cliente le escribe al bot, el bot embedea esa pregunta, busca los top-K chunks más similares (cosine distance) y se los pasa al modelo como "Contexto del negocio".
  5. El modelo responde apoyándose en ese contexto. Si lo que el cliente pregunta no está cubierto, el bot pide handoff humano en vez de inventar.

Formatos y límites

  • PDF — texto seleccionable (no escaneado). Si subís un PDF escaneado el procesamiento falla con un mensaje pidiéndote que lo conviertas con OCR antes.
  • DOCX — Word moderno.
  • TXT / MD — texto plano. Ideal para FAQs cortas porque tenés control directo sobre el contenido.
  • Tamaño máximo: 25 MiB por archivo. Dividí docs gigantes en pedazos temáticos.

Etiquetas — segmentar qué bot usa qué

Cada documento puede llevar tags (ej. producto-a, soporte, devoluciones). En la configuración del BotConfig elegís qué tags usar:

  • Tags vacíos en el BotConfig → usa todos los docs de la org.
  • Tags definidos → solo docs que tengan al menos uno de esos tags.

Útil si tenés varios bots (uno para ventas, otro para soporte): segmentás tus PDFs por tags y cada bot ve solo lo que le corresponde.

Mejores prácticas

  • Docs cortos y temáticos > manual gigante. El bot recupera por similitud, no lee todo. Un PDF bien organizado en 10 archivos de 5 páginas funciona mejor que 1 PDF de 50 páginas.
  • Una pregunta = una sección. Si tu FAQ tiene "¿Hacen envíos a otros países?" y la respuesta dura 1 párrafo, dejá esa pieza así — el chunker la respeta y se recupera entera.
  • Lenguaje natural, no telegráfico. Los embeddings entienden mejor "El plazo de devolución es de 30 días desde la compra" que "Devol: 30d".
  • Actualizá cuando cambie el negocio. El bot solo sabe lo que está en el doc — un precio viejo va a aparecer en sus respuestas hasta que reproceses.
  • Tags antes que duplicar. Si tenés "Producto A" y "Producto B" con FAQs parecidas, ponelas en archivos separados con tags distintos en lugar de mezclarlas.

Parámetros de retrieval (BotConfig)

  • knowledgeTopK (default 5): cuántos chunks recuperar por turno. Más = más contexto pero más tokens al modelo. 3-5 es buen rango.
  • knowledgeMinSimilarity (default 0.5): umbral mínimo de similitud. Si ni el chunk más similar lo pasa, el bot responde sin contexto (mejor que con contexto irrelevante).
  • knowledgeTags: ver sección de etiquetas arriba.

Errores típicos y soluciones

  • El PDF parece ser una imagen escaneada: tu PDF es una foto digitalizada, no tiene texto seleccionable. Pásalo por OCR (ej. Acrobat, Tesseract, o "Reconocer texto" en Preview de macOS) y volvé a subir.
  • El bot no usa mi documento aunque está listo: chequeá que el BotConfig tenga un modo con IA (AI_AGENT o RULES_PLUS_AI_FALLBACK; en RULES_ONLY u OFF el RAG no corre) y que los tags coincidan. También verificá que la similitud llegue al umbral — si tu doc habla en jerga interna y el cliente pregunta con otras palabras, podés bajar knowledgeMinSimilarity a 0.3-0.4.
  • El bot dice cosas viejas: actualizaste el doc en S3 pero no lo reprocesaste. Click Reprocesar en la fila del doc — re-extrae texto y regenera embeddings.
  • Quiero borrar un doc del bot pero conservar el archivo: hoy borrar = full delete (filas + objeto S3). Si lo querés "deshabilitar temporalmente", cambiá sus tags a algo que ningún BotConfig esté usando (ej. archivado).

Costos

El procesamiento usa embeddings de OpenAI (text-embedding-3-small, $0.02 USD por 1M tokens). Cada turno del bot suma 1 embedding de la pregunta (~$0.000001 USD). Todo se cobra del wallet de tu organización con el markup configurado y queda registrado en AiUsage.

Ejemplo: 50 PDFs de 10 páginas (~50 chunks c/u, 500 tokens c/u) = 1.25M tokens ≈ $0.025 USD una sola vez al procesarlos.