Atareao con Linux

← Atareao con Linuxhace 4 días · 29 min

ATA839 Convierte 6000 notas en un cerebro conectado

ATA839 Convierte 6000 notas en un cerebro conectadohace 4 días29 min

<p>Llevo más de 6.000 notas en Markdown acumuladas desde 2008, y siempre he estado convencido de que ahí estaba todo lo que he aprendido. Hasta que busco y no encuentro. Busco particiones y no aparece nada sobre redimensionar un volumen. Busco monitorización de red y mis notas hablan de ntopng e iftop sin usar esas palabras. El conocimiento estaba ahí, pero yo no sabía que estaba.</p><p>En el episodio 837 te conté la teoría del GraphRAG. En este 839 vamos a lo práctico, a convertir esas 6.000 notas en un grafo de conocimiento con IA 100 % local, sin nube, sin claves API y sin que ninguna nota salga de tu equipo.</p><p>Lo primero es el <b>chunking</b>, trocear cada nota en ideas autónomas. Y no se trocea por número de caracteres, sino por estructura. Cada sección o subcapítulo es un fragmento, el frontmatter se separa como metadatos, los bloques de código viajan enteros y lo que baja de 50 caracteres se descarta. Trocear por caracteres solo rompe un bloque de código o una lista justo por la mitad.</p><p>Después viene el <b>NER</b> (<i>Named Entity Recognition</i>), que convierte texto libre en entidades con etiqueta, tipo y confianza. Uso <b>llama3.2:3b</b> con Ollama y solo conservo lo que supera 0,5 de confianza. Prefiero perder una entidad dudosa antes que llenar el grafo de ruido, porque un grafo con ruido no te sirve.</p><p>Con eso se construyen <b>nodos y aristas</b>. La nota es el documento entero, la entidad puede ser Nginx, Certbot o SSL, y las etiquetas salen de las carpetas y del frontmatter. Hay cuatro tipos de arista y cada una lleva su peso. La co-ocurrencia usa el mínimo de las dos confianzas, no la media.</p><p>Para construir todo esto ejecutas <b>graphrag build</b>. No empieza de cero, cada nota guarda un hash SHA256 y solo reprocesa lo que ha cambiado. En mi caso encontró 6.333 archivos y le faltaban 81, unos seis minutos, con cuatro hilos y un único escritor sobre SQLite. Y luego están las <b>comunidades</b>, la visión global. El algoritmo <b>Leiden</b> agrupa los conceptos muy conectados entre sí, porque los amigos de mis amigos tienden a formar un grupo.</p><p>Todo esto es <b>graphrag-search</b>, un único binario en Rust que instalas con <b>cargo install graphrag-search</b>. Ni Python, ni NPM, ni servidores. Con dos modelos pequeños de Ollama, <b>bge-m3</b> para embeddings y <b>llama3.2:3b</b> para el NER, tienes tu propio cerebro conectado para encontrar episodios y conceptos relacionados.</p><p><b>Capítulos del episodio:</b><br>0:00 -