Contextos y RAG — Guía del usuario | YoBench
Cómo usar el módulo «Contextos y RAG» en YoBench: subida de PDF/DOCX/XLSX, proveedores de embeddings, búsqueda vectorial LanceDB, integración AI Chat.
Para qué sirve el módulo «Contextos y RAG»
El módulo convierte tus documentos en bases de conocimiento disponibles para AI Chat. Creas un contexto, subes archivos (PDF, DOCX, XLSX, CSV, imágenes) o texto; el módulo divide automáticamente el contenido en chunks, calcula los embeddings con el proveedor elegido y guarda los vectores en una LanceDB local. Al hablar con el chat, YoBench recupera los chunks relevantes y los inyecta en el system prompt — el modelo responde a partir de tus documentos, no solo del conocimiento general.
Lo que obtienes:
- Bases de conocimiento nombradas — un contexto por proyecto/tema.
- Formatos soportados — PDF, DOCX, XLSX/XLS, CSV, TXT, MD, imágenes (PNG, JPG, GIF, WebP). Imágenes y PDFs pasan por el OCR integrado; XLSX/CSV se convierten a texto plano por hoja.
- LanceDB local — los vectores viven en
userData/lancedb/, una tabla por contexto (ctx_{id}). - Múltiples proveedores de embeddings — OpenAI, LM Studio, Ollama (cualquier endpoint compatible OpenAI). Exactamente uno está activo; cambiarlo marca todos los contextos como
staley dispara reindexación asíncrona. - Integración con AI Chat — los chunks relevantes se inyectan automáticamente en el system prompt al primer mensaje del usuario.
Estructura de datos
- Contexto —
name,embedding_provider_id,embedding_model(snapshot),vectorization_status(ready/stale/indexing/error). - Items del contexto — unidades de contenido cargado: tipo (
text/file/image/module_ref),content, metadatos del archivo,chunk_count. - Vectores (LanceDB) — tabla
ctx_{id}conitem_id,chunk_index,text,vector.
Proveedores de embeddings
En Gestor de contextos → Proveedores de embeddings añades un proveedor:
- Nombre — etiqueta libre.
- Base URL — endpoint
/v1/embeddingscompatible OpenAI. Ejemplos:- OpenAI:
https://api.openai.com/v1, modelotext-embedding-3-small. - LM Studio (local):
http://localhost:1234/v1, modelotext-embedding-nomic-embed-text-v1.5. - Ollama (local):
http://localhost:11434/v1, modelobge-m3.
- OpenAI:
- API key — cuando hace falta (servidores locales suelen ir vacíos).
- Modelo — nombre del modelo de embeddings en el servidor.
Un proveedor se marca activo — usado para todos los contextos. Cambiar el proveedor o modelo activo marca los contextos como stale y dispara reindexación en segundo plano.
Chunking y búsqueda
Los parámetros de chunking están fijos en el código:
- Chunking heading-aware — para Markdown y texto estructurado, el divisor usa los encabezados como puntos de corte para que cada chunk siga siendo una unidad semántica. Para texto plano, recurre a chunks de tamaño fijo.
- Solapamiento entre chunks adyacentes — preserva el contexto en la frontera.
- Top-K al buscar — 5 chunks por defecto por consulta.
No están expuestos en la UI — están afinados para modelos típicos.
Modos de búsqueda
Cada sesión de chat elige uno de dos modos de búsqueda:
- Rápido (por defecto) — búsqueda híbrida (vector + palabra clave) sobre el contexto. Devuelve resultados en una fracción de segundo; ideal para preguntas habituales.
- Preciso — la misma búsqueda híbrida, seguida de un reranker que reordena los mejores candidatos por relevancia. Algo más lento, claramente mejor en consultas largas o ambiguas.
Formatos soportados
| Tipo | Lo que hace el módulo |
|---|---|
| OCR vía servicio integrado, extracción de texto por página. | |
| DOCX | Extracción de texto plano vía mammoth. |
| XLSX, XLS, CSV | Hojas convertidas a texto CSV y concatenadas. |
| TXT, MD | Se leen tal cual. |
| PNG, JPG, GIF, WebP | Reconocimiento de texto OCR sobre la imagen. |
Integración con AI Chat
En AI Chat eliges un contexto para la conversación. Al primer mensaje del usuario el módulo:
- Envía tu consulta como frase de búsqueda a LanceDB.
- Obtiene los top-K chunks del contexto.
- Los formatea como bloque Markdown (
# Reference context: {name}+## [N] {title}+ texto del chunk). - Inyecta el bloque en el system prompt junto con encabezado e instrucciones.
En turnos posteriores el retrieval no se repite (el contexto ya está en el system prompt).
El retrieval se omite cuando:
- El contexto está en
indexing(aún no listo). - No hay proveedor de embeddings activo configurado.
- El snapshot del modelo en el contexto no coincide con el activo — espera a que termine la reindexación.
En esos casos el chat sigue funcionando, sin inyección de contexto.
Ajustes globales
No hay claves context* dedicadas en los ajustes centrales — toda la configuración está en BD (tablas embedding_providers y contexts). Se gestiona desde el propio módulo.
Flujo de uso
1. Conecta un proveedor de embeddings
- Abre Gestor de contextos en el menú lateral izquierdo.
- Ve a Proveedores de embeddings.
- Añade un proveedor: nombre, Base URL, API key, modelo.
- Márcalo como activo.
2. Crea un contexto
- En la página principal del módulo pulsa Nuevo contexto.
- Pónle nombre (por ejemplo, «Documentación de producto», «Corpus legal»).
- Guarda.
3. Sube documentos
- En el contexto pulsa Añadir archivo o arrastra un archivo al panel.
- Formatos: PDF, DOCX, XLSX, CSV, TXT, MD, PNG/JPG/GIF/WebP.
- También puedes pegar texto directamente o vincular artículos desde el módulo RSS.
- Espera a que termine la indexación (el badge pasa a «Vectores actualizados»).
4. Conecta el contexto al chat
En AI Chat elige el contexto en los ajustes de la sesión. Pregunta — el modelo responderá desde tus documentos.
5. Gestiona el contexto
- Eliminar elemento — quita un documento concreto.
- Reindexar — fuerza la reconstrucción de vectores.
- Eliminar contexto — lo borra junto con su tabla LanceDB.
Siguientes pasos
- Configura los proveedores de IA para la generación de respuestas.
- Usa el módulo RSS para alimentar contextos con artículos.
- El Web Parser puede recolectar datos de sitios en JSON e importarlos a un contexto.
Ayuda y comentarios
¿Quieres embeddings locales por defecto o chunking configurable desde la UI? Escríbenos a través del formulario de contacto.