Un buen C-Level deber entender esto
Anatomía de un RAG
Un asistente que responde preguntas sobre tus propios PDFs. Esta página explica qué hace cada pieza del código, en qué orden trabaja y qué ocurre cuando cambias un parámetro. Pulsa los elementos: casi todo responde.
El flujo completo
Tres carriles: lo que se hace una vez al indexar, lo que ocurre en cada pregunta y las herramientas que se usan bajo demanda. Selecciona una etapa para ver qué hace, con qué parámetros y qué código la implementa.
Laboratorio
Réplicas en pequeño de los algoritmos del notebook. BM25, RRF, el troceado, el enrutado de órdenes y el map-reduce siguen la misma lógica que el código. Donde un modelo real interviene (embeddings, reranker, LLM) se indica que la pieza es una simulación didáctica.
Troceado (chunking)
Apartado 5.4Ajusta el tamaño y el solape y mira cómo se corta un texto de ejemplo con el algoritmo de RecursiveCharacterTextSplitter: prueba separadores en orden (párrafo, línea, espacio) para no partir unidades naturales.
Texto de ejemplo redactado para esta demostración. El notebook corta cada página del PDF por separado, así que ningún trozo cruza de una página a otra, y conserva en los metadatos el PDF y la página.
Búsqueda híbrida, reranking, filtros y multi-query
Apartado 6Un mini corpus de 17 trozos (13 extractos del ETID 2026, adaptados y abreviados, y 4 de un informe ficticio) y el pipeline de buscar(). Prueba una consulta con una cifra o sigla (donde gana BM25) y otra con palabras distintas a las del texto (donde gana la semántica).
Qué es real y qué es simulado. BM25 (parámetros k1 = 1,5 y b = 0,75, como rank_bm25), la normalización de texto, las palabras vacías, RRF con constante 60 y los filtros son los mismos algoritmos del notebook. La semántica se simula con un diccionario de sinónimos (un embedding real capta el significado y diluye cifras y siglas raras, que aquí se ignoran a propósito). El reranker se simula con la cobertura de términos de la pregunta (un cross-encoder real lee pregunta y trozo juntos) y las variantes de multi-query se generan con sinónimos (en el notebook las escribe el LLM).
Memoria conversacional
Apartado 7El modelo no recuerda nada entre llamadas: el historial se reenvía cada vez, recortado a los últimos MAX_TURNOS_MEMORIA intercambios. Elige en qué pregunta estás y cuánto historial se conserva.
Conversación de ejemplo. Cada pregunta con historial cuesta dos llamadas al LLM: una para reformular y otra para responder (tres si además activas multi-query).
Resumen map-reduce
Apartado 8Cuántas llamadas al LLM cuesta resumir un PDF entero. El notebook corta cada página en bloques de 4 000 caracteres (MAP), resume cada bloque y fusiona los resúmenes por rondas mientras no quepan en 6 000 caracteres (REDUCE).
El límite por minuto y los segundos por llamada son supuestos que puedes cambiar: dependen de tu plan de Groq y del modelo. La longitud del resumen parcial también es un supuesto (en la práctica varía con el contenido). Con páginas de hasta 4 000 caracteres cada una es un bloque; con páginas más largas el número de bloques es una aproximación. Un PDF de cientos de páginas genera cientos de llamadas: por eso el chat pide confirmación a partir de 30 bloques y admite rangos de páginas.
Enrutado de órdenes del chat
Apartado 10.1No todo lo que escribes es una pregunta sobre el contenido. interpretar() clasifica el mensaje con expresiones regulares sobre el texto sin tildes ni mayúsculas. Esta es una réplica del mismo algoritmo.
PDFs de ejemplo para resolver nombres: REGLAMENTO (UE) 2021 821.pdf y etid-2026.pdf. Si tu frase contiene palabras del nombre de un solo PDF, se elige ese; si no, se resumen todos.
Métricas de evaluación
Apartado 9Para cada pregunta se anota en qué posición apareció el primer trozo correcto (o si no apareció entre los 8 primeros). Cambia los valores y observa cómo se mueven Recall@k y MRR. Los datos son un ejemplo inventado para practicar; no son resultados de tus documentos.
Con 10 preguntas, cada una vale 10 puntos porcentuales; en el notebook hay 21 y cada una vale unos 5. Una diferencia de un acierto puede ser ruido. Recall@K_FINAL es la métrica clave: mide si el LLM recibe el trozo correcto.
Índice persistente y autorreparación
Apartado 5.4Chroma trabaja en una carpeta local; Drive guarda solo una copia de seguridad. Elige un escenario para ver el camino que sigue el código.
Por qué no directamente en Drive: Chroma guarda su índice en archivos binarios (HNSW) y en SQLite, que necesitan escrituras inmediatas y coherentes. Drive sincroniza con retraso y puede dejar archivos a medio escribir, lo que produce Error loading hnsw index al cargarlos.
Configuración
Elige los ajustes de recuperación y obtén el bloque de configuración del apartado 3.7, junto con lo que cuesta cada pregunta con esa combinación.
Ajustes
Bloque generado
Coste por pregunta con estos ajustes
Orientativo. El efecto real en calidad depende de tus documentos: mídelo con la evaluación del apartado 9.
Todas las variables del apartado 3
Índice de funciones y variables
Todo lo que define el notebook, por apartado. Busca por nombre o por lo que hace.
Comentarios