#!/usr/bin/env bash # # setup.sh — Preparación del entorno para el episodio 839 (GraphRAG II) # # Deja listo lo mínimo para construir el grafo con IA 100% local: # 1. Comprueba que Ollama está instalado y en marcha. # 2. Descarga los dos modelos que usa el episodio: # - bge-m3:latest → embeddings (vectores) # - llama3.2:3b → NER (extracción de entidades) # 3. Localiza el binario `graphrag` compilado y comprueba su versión. # # No instala Rust ni compila nada: si el binario no existe, te dice cómo # compilarlo o instalarlo desde crates.io. # # Uso: # chmod +x setup.sh # ./setup.sh set -euo pipefail # Binario de desarrollo (v0.2.12). Cambia esta ruta si compilas en otro sitio. GRAPHRAG="/data/rust/graphrag/target/release/graphrag" echo "==> 1/3 Comprobando Ollama..." if ! command -v ollama >/dev/null 2>&1; then echo "ERROR: Ollama no está instalado. Instálalo desde https://ollama.ai/" >&2 exit 1 fi if ! curl -sf http://localhost:11434/api/tags >/dev/null 2>&1; then echo "Ollama no responde en http://localhost:11434" echo "Arráncalo con: ollama serve" echo "Y vuelve a ejecutar este script." exit 1 fi echo " Ollama está en marcha." echo "==> 2/3 Descargando modelos (si faltan)..." # Embeddings: bge-m3, 566M parámetros, ~1 GB ollama pull bge-m3:latest # NER: llama3.2:3b, 3.2B parámetros, ~2 GB ollama pull llama3.2:3b echo " Modelos disponibles:" curl -s http://localhost:11434/api/tags \ | grep -o '"name":"[^"]*"' | sed 's/"name":"/ - /; s/"$//' echo "==> 3/3 Comprobando el binario graphrag..." if [ -x "$GRAPHRAG" ]; then echo " Binario: $GRAPHRAG" "$GRAPHRAG" --version else echo "AVISO: no se encontró $GRAPHRAG" echo "Opciones:" echo " · Compilar desde fuente: cd /data/rust/graphrag && cargo build --release" echo " · Instalar desde crates: cargo install graphrag-search" fi echo echo "Entorno listo. Siguiente paso:" echo " graphrag build ./notas-muestra grafo.db --ner-model llama3.2:3b --embed-model bge-m3:latest"