Volver al inicio

JuliaLM: RAG para bases de conocimiento sin ChatGPT

JuliaLM — sistema RAG abierto para bases de conocimiento personales. Usa SurrealDB para vectores y grafo, análisis en cascada para PDF/YouTube, cuatro estrategias de búsqueda. Incluye FSRS para tarjetas de memoria y presupuestación de contexto.

Construye JuliaLM: análogo de NotebookLM en tu stack
Advertisement 728x90

JuliaLM: Un Sistema RAG Autónomo para Bases de Conocimiento Personal

Los desarrolladores a menudo enfrentan el desafío de procesar grandes volúmenes de documentos: PDFs, conferencias de YouTube, páginas web. Los chatbots estándar como ChatGPT pierden contexto al trabajar con múltiples fuentes, y los frameworks RAG preconfigurados tienen dificultades con documentos escaneados y videos. JuliaLM resuelve esto con una canalización personalizada: carga única de fuentes, búsqueda multiestrategia y presupuesto de contexto. El sistema está construido sobre Nuxt.js, FastAPI y SurrealDB, proporcionando búsqueda vectorial, chat y generación de tarjetas de estudio.

Arquitectura del Stack Tecnológico y Elección de SurrealDB

El frontend de Nuxt.js se comunica con el backend mediante REST y SSE. FastAPI orquesta la IA con LangGraph, gestiona una cola de tareas y se integra con SurrealDB. La base de datos combina tablas relacionales, conexiones de grafos y búsqueda vectorial en un solo servicio, reemplazando Postgres + Redis + Pinecone.

Frontend (Nuxt.js)
    ↕ REST + SSE
Backend (FastAPI)
    ├── LangGraph (orquestación de IA)
    ├── Comandos en segundo plano (cola de tareas)
    ├── SurrealDB (datos + vectores + grafo)
    ├── Gotenberg (conversión de documentos)
    └── MiniMax / API de Embedding (LLM + vectorización)

La cola de tareas se implementa sobre SurrealDB con reintentos (hasta 5 intentos) y retroceso exponencial. Para fuentes ligeras—procesamiento síncrono (5–10 segundos); para PDFs pesados—asíncrono con sondeo de estado.

Google AdInline article slot

Análisis en Cascada de Fuentes

El procesamiento de documentos utiliza alternativas para garantizar fiabilidad:

  • Archivos PDF y de oficina: Docling para Markdown con preservación de estructura (encabezados, tablas). Alternativa—Gotenberg basado en LibreOffice para PPTX/XLSX.
  • YouTube: 1) youtube-transcript-api (subtítulos por idioma: RU→EN→ES→PT); 2) pytubefix (cliente Android); 3) Firecrawl/Jina.
  • Páginas web: Playwright (renderizado JS, aleatorización de UA/viewport) + readability; alternativas—Jina Reader, HTTP.
  • Imágenes: Modelo de visión para OCR de texto manuscrito.

Esto garantiza la extracción de texto incluso con fallos de la API de YouTube o CAPTCHAs.

Vectorización y Búsqueda Multiestrategia

El texto se divide en fragmentos de ~500 tokens (15% de superposición) con separadores priorizados: saltos de línea dobles → saltos de línea simples → puntos. Un equilibrio empírico entre precisión y contexto para textos científicos.

Google AdInline article slot

La búsqueda de fuentes combina cuatro estrategias en paralelo:

  • Búsqueda vectorial—semántica mediante embeddings (coseno ≥ 0.15).
  • Búsqueda de texto—BM25 sobre texto completo.
  • Búsqueda de títulos—sobre títulos.
  • Búsqueda de ideas clave—sobre resúmenes e ideas clave.

Deduplicación: puntuación +0.05 por coincidencia. Top 5 resultados.

Presupuesto de Contexto para Documentos Largos

Límite general—300,000 caracteres (75K tokens). Por fuente: mínimo 5,000, máximo 40,000.

Google AdInline article slot
  • Fuente corta: completamente.
  • Larga + consulta conocida: ideas clave + fragmentos relevantes (búsqueda vectorial interna).
  • Larga + consulta desconocida: ideas clave + inicio del texto.

Este enfoque evita el desbordamiento de contexto al trabajar con libros.

Tarjetas de Estudio con FSRS

Generación de pares "pregunta-respuesta" en JSON con validación. Repetición espaciada mediante FSRS: estabilidad, dificultad, parámetros de estado (nuevo/aprendizaje/repaso). Calificación 1–4 recalcula el horario. Integración en el cuaderno elimina exportación a Anki.

Búsqueda Avanzada en la Base de Datos

Dos modos básicos: BM25 y búsqueda vectorial. "Pregunta a la base de datos"—grafo LangGraph:

  • Generación de hasta 5 subconsultas con instrucciones.
  • Búsqueda paralela (hasta 10 resultados/consulta).
  • Síntesis de respuestas intermedias.

Conclusiones Clave

  • El análisis en cascada garantiza la extracción de texto de cualquier fuente, incluyendo YouTube sin subtítulos.
  • Cuatro estrategias de búsqueda mejoran la recuperación en un 20–30% comparado con la búsqueda vectorial única.
  • El presupuesto de contexto permite procesar corpus >1000 páginas sin perder relevancia.
  • La integración de FSRS simplifica el aprendizaje automatizando la repetición espaciada.
  • SurrealDB simplifica el despliegue: un contenedor en lugar de tres bases de datos.

— Editorial Team

Advertisement 728x90

Leer después