Última atividade 4 hours ago

Preparación del entorno GraphRAG para el episodio 841 (Ollama + modelos + binario + grafo)

Revisão 030bfb1e61fb055083b8dc6afd9a8345446a43fe

setup.sh Bruto
1#!/usr/bin/env bash
2#
3# setup.sh — Preparación del entorno para el episodio 841 (GraphRAG III)
4#
5# Deja listo lo mínimo para interrogar el grafo con IA 100% local:
6# 1. Comprueba que Ollama está instalado y en marcha (lo arranca si hace falta).
7# 2. Descarga los modelos que usa el episodio:
8# - bge-m3:latest → embeddings (vectores) de la demo
9# - nomic-embed-text → embeddings por defecto del binario (alternativa)
10# - llama3.2:3b → resúmenes de comunidad y respuestas de `ask`
11# 3. Localiza el binario `graphrag` compilado y comprueba su versión.
12# 4. Comprueba que existe la base de la demo `grafo.db`.
13#
14# No instala Rust ni compila nada: si el binario no existe, te dice cómo
15# compilarlo o instalarlo desde crates.io.
16#
17# Uso:
18# chmod +x setup.sh
19# ./setup.sh
20
21set -euo pipefail
22
23# Binario de desarrollo (v0.2.12). Cambia esta ruta si compilas en otro sitio.
24GRAPHRAG="/data/rust/graphrag/target/release/graphrag"
25
26echo "==> 1/4 Comprobando Ollama..."
27if ! command -v ollama >/dev/null 2>&1; then
28 echo "ERROR: Ollama no está instalado. Instálalo desde https://ollama.ai/" >&2
29 exit 1
30fi
31
32if ! curl -sf http://localhost:11434/api/tags >/dev/null 2>&1; then
33 echo "Ollama no responde en http://localhost:11434; lo arranco..."
34 ollama serve >/dev/null 2>&1 &
35 for _ in $(seq 1 30); do
36 if curl -sf http://localhost:11434/api/tags >/dev/null 2>&1; then break; fi
37 sleep 1
38 done
39 if ! curl -sf http://localhost:11434/api/tags >/dev/null 2>&1; then
40 echo "ERROR: Ollama no arrancó. Lánzalo a mano con: ollama serve" >&2
41 exit 1
42 fi
43fi
44echo " Ollama está en marcha."
45
46echo "==> 2/4 Descargando modelos (si faltan)..."
47# Embeddings de la demo: bge-m3, ~1 GB
48ollama pull bge-m3:latest
49# Embeddings por defecto del binario si no hay config: nomic-embed-text, ~275 MB
50ollama pull nomic-embed-text
51# Generación: resúmenes y respuestas de `ask`, llama3.2:3b, ~2 GB
52ollama pull llama3.2:3b
53
54echo " Modelos disponibles:"
55curl -s http://localhost:11434/api/tags \
56 | grep -o '"name":"[^"]*"' | sed 's/"name":"/ - /; s/"$//'
57
58echo "==> 3/4 Comprobando el binario graphrag..."
59if [ -x "$GRAPHRAG" ]; then
60 echo " Binario: $GRAPHRAG"
61 "$GRAPHRAG" --version
62else
63 echo "AVISO: no se encontró $GRAPHRAG"
64 echo "Opciones:"
65 echo " · Compilar desde fuente: cd /data/rust/graphrag && cargo build --release"
66 echo " · Instalar desde crates: cargo install graphrag-search"
67fi
68
69echo "==> 4/4 Comprobando la base de la demo..."
70if [ -f grafo.db ]; then
71 echo " Base: grafo.db"
72else
73 echo "AVISO: no se encontró grafo.db en el directorio actual."
74 echo " Es la base construida en el episodio 839; sin ella no hay demo."
75fi
76
77echo
78echo "Entorno listo. Siguiente paso:"
79echo " graphrag stats grafo.db"
80echo " graphrag search \"servidor web seguro\" grafo.db -k 5"