El corpus que vamos a indexar
Antes de indexar, mirá qué vas a indexar
Sección titulada «Antes de indexar, mirá qué vas a indexar»Un RAG sin corpus es un chiste. Antes de tipear el primer comando de ingestión, abramos juntos los archivos que el sistema va a leer.
En la raíz del repo tenés una carpeta data/ con 4 archivos markdown:
data/├── clean-architecture.md (33 líneas)├── hexagonal-architecture.md (50 líneas)├── screaming-architecture.md (72 líneas)└── solid-principles.md (52 líneas)207 líneas en total. Aproximadamente 16 KB de texto. Chico. Manejable. Indexable en segundos.
El tema: arquitectura de software
Sección titulada «El tema: arquitectura de software»Los cuatro documentos están en español y cubren conceptos clásicos de Robert C. Martin (Uncle Bob):
- Clean Architecture — capas concéntricas + regla de dependencia hacia adentro
- Hexagonal Architecture (Ports & Adapters) — Cockburn, aislar el dominio de los detalles externos
- Screaming Architecture — la arquitectura grita lo que el sistema hace, no la tecnología
- SOLID Principles — los cinco principios de diseño OOP
¿Por qué este corpus específicamente? Tres razones:
1. Tamaño didácticamente correcto
Sección titulada «1. Tamaño didácticamente correcto»Suficientemente chico para que la ingestión sea rápida (te ahorra esperar mientras aprendés), pero suficientemente grande para que el retrieval tenga que elegir. Con un solo archivo, el retriever es trivial. Con 4 que comparten autor pero conceptos distintos, ya tenés un test real.
2. Conceptos relacionados pero diferenciables
Sección titulada «2. Conceptos relacionados pero diferenciables»Todos hablan de “arquitectura limpia” y “separación de preocupaciones”. Un retriever malo te trae chunks de SOLID cuando preguntás por Hexagonal. Un retriever decente distingue. Este corpus te deja medir esa diferencia.
3. Idioma consistente
Sección titulada «3. Idioma consistente»Todo está en español. Esto importa más de lo que parece — vamos a eso ahora.
El gotcha del idioma
Sección titulada «El gotcha del idioma»El stack que estás usando (Ollama + nomic-embed-text) tiene una limitación importante:
Cuántos chunks vas a generar
Sección titulada «Cuántos chunks vas a generar»El chunker compartido del proyecto parte cada documento en chunks de 800 caracteres con 100 de overlap. Para este corpus, eso da aproximadamente 20-30 chunks totales entre los 4 archivos.
Es un número intencionalmente chico — vas a poder inspeccionarlos a mano cuando lleguemos a la página de inspección.
Cómo usar tu propio corpus
Sección titulada «Cómo usar tu propio corpus»¿Querés probar con tus PDFs / docs internos / posts de blog? Es trivial:
# 1. Borrá los markdowns de ejemplo (o moveelos a otra carpeta)rm data/*.md
# 2. Drag-and-drop tus markdowns adentro de data/cp ~/Downloads/mis-docs/*.md data/
# 3. Re-corré la ingestiónpnpm vercel:ingestLo que viene
Sección titulada «Lo que viene»Ya conocés el material. En la próxima página vas a hacer el primer lab: ingestión. Vamos a partir los markdowns en chunks, embedearlos con Ollama, y guardar los vectores en Qdrant. Línea por línea, sin magia.