Son aktivite 19 hours ago • Unlisted

Demo completa de GraphRAG (episodio 837): comandos, configuracion y script de preparacion de Ollama

atareao's Avatar atareao bu gisti düzenledi 19 hours ago. Düzenlemeye git

3 files changed, 165 insertions

config.toml(dosya oluşturuldu)

@@ -0,0 +1,37 @@
1 + # Configuración de ejemplo para GraphRAG
2 + # Situación: los ejemplos del episodio 837.
3 + #
4 + # Cópiala a tu ruta de configuración o pásala con:
5 + # graphrag -C config/config.toml stats demo.db
6 + #
7 + # Todos los campos son opcionales; los flags de CLI siempre tienen prioridad.
8 + # Ruta por defecto en Linux: ~/.config/graphrag/config.toml
9 +
10 + # Base de datos por defecto.
11 + # OJO con el "sentinel": si omites la BD o escribes literalmente 'graphrag.db',
12 + # se usa ESTE valor.
13 + db = "demo.db"
14 +
15 + # Servidor Ollama
16 + ollama_url = "http://localhost:11434"
17 +
18 + # Modelo de embeddings. En este equipo usamos bge-m3 (config recomendada).
19 + # En un portátil modesto: "nomic-embed-text".
20 + embed_model = "bge-m3:latest"
21 +
22 + # Modelo de extracción de entidades (NER). Solo se usa en `build`.
23 + ner_model = "llama3.2:3b"
24 +
25 + # Modelo para resumir comunidades y para `ask`.
26 + summary_model = "llama3.2:3b"
27 +
28 + # Búsqueda
29 + k = 5
30 + depth = 2
31 + alpha = 0.7
32 +
33 + # Directorio de notas (lo usa el plugin de Neovim y `build` sin argumento)
34 + notes_dir = ""
35 +
36 + # Hilos NER en paralelo durante `build`
37 + num_threads = 4

demo-comandos.sh(dosya oluşturuldu)

@@ -0,0 +1,35 @@
1 + #!/usr/bin/env bash
2 + # Recorrido completo de la demo de GraphRAG (episodio 837)
3 + # Binario: graphrag 0.2.12 (crate graphrag-search)
4 +
5 + # --- Instalacion (una vez) ---
6 + cargo install graphrag-search
7 + ollama serve
8 + ollama pull nomic-embed-text # embeddings (minimo, portatil)
9 + ollama pull llama3.2:3b # NER (minimo)
10 + # Con GPU: ollama pull bge-m3 && ollama pull gemma4:e2b
11 +
12 + # --- 1. Crear la base demo (SI necesita Ollama; es atomico) ---
13 + graphrag seed demo.db
14 +
15 + # --- 2. Estadisticas (NO necesita Ollama) ---
16 + graphrag stats demo.db
17 +
18 + # --- 3. Busqueda textual FTS5 (NO necesita Ollama) ---
19 + graphrag fts "Python" demo.db
20 +
21 + # --- 4. Busqueda hibrida vectores+grafo (SI necesita Ollama) ---
22 + graphrag search "Python" demo.db -k 5
23 + graphrag search "seguridad en contenedores" demo.db
24 +
25 + # --- 5. Camino mas corto entre dos conceptos (NO necesita Ollama) ---
26 + graphrag path "Docker" "SQLite" demo.db
27 + graphrag path "Prometheus" "SQLite" demo.db
28 +
29 + # --- 6. Vecindario de un concepto (NO necesita Ollama; aqui -d SI es profundidad) ---
30 + graphrag graph "Docker" demo.db -d 2
31 + graphrag graph "Python" demo.db -d 1
32 +
33 + # --- 7. Mapa conceptual TUI (NO necesita Ollama; requiere terminal real) ---
34 + graphrag map demo.db
35 + graphrag map --from Docker --depth 3 demo.db

setup.sh(dosya oluşturuldu)

@@ -0,0 +1,93 @@
1 + #!/usr/bin/env bash
2 + #
3 + # setup.sh — Preparación del entorno para la demo de GraphRAG (episodio 837)
4 + #
5 + # Instala Ollama si no está, lo arranca si hace falta y descarga los modelos
6 + # mínimos. Al terminar, verifica que Ollama responde.
7 + #
8 + # Uso:
9 + # ./setup.sh # configuración mínima (portátil modesto)
10 + # ./setup.sh --gpu # configuración recomendada (mejor calidad)
11 + #
12 + set -euo pipefail
13 +
14 + OLLAMA_URL="http://localhost:11434"
15 + GPU=0
16 + [[ "${1:-}" == "--gpu" ]] && GPU=1
17 +
18 + echo "🔧 Preparando el entorno de GraphRAG..."
19 + echo
20 +
21 + # ---------------------------------------------------------------------------
22 + # 1. Ollama instalado
23 + # ---------------------------------------------------------------------------
24 + if ! command -v ollama >/dev/null 2>&1; then
25 + echo "📦 Ollama no está instalado. Instalando con el script oficial..."
26 + curl -fsSL https://ollama.ai/install.sh | sh
27 + else
28 + echo "✅ Ollama ya está instalado: $(ollama --version 2>/dev/null || echo 'versión desconocida')"
29 + fi
30 +
31 + # ---------------------------------------------------------------------------
32 + # 2. Arrancar Ollama si no responde
33 + # ---------------------------------------------------------------------------
34 + if curl -fsS "${OLLAMA_URL}/api/tags" >/dev/null 2>&1; then
35 + echo "✅ Ollama ya está corriendo en ${OLLAMA_URL}"
36 + else
37 + echo "🚀 Arrancando Ollama en segundo plano..."
38 + # ollama serve es un proceso de larga duración: lo mandamos al fondo.
39 + nohup ollama serve >/tmp/ollama-graphrag.log 2>&1 &
40 + # Esperamos hasta 30 s a que levante.
41 + for i in $(seq 1 30); do
42 + if curl -fsS "${OLLAMA_URL}/api/tags" >/dev/null 2>&1; then
43 + echo "✅ Ollama arrancado (tras ${i}s)"
44 + break
45 + fi
46 + sleep 1
47 + done
48 + fi
49 +
50 + # Verificación final: si no responde, abortamos con mensaje claro.
51 + if ! curl -fsS "${OLLAMA_URL}/api/tags" >/dev/null 2>&1; then
52 + echo "❌ Ollama no responde en ${OLLAMA_URL}. Revisa /tmp/ollama-graphrag.log"
53 + exit 1
54 + fi
55 +
56 + # ---------------------------------------------------------------------------
57 + # 3. Descargar modelos
58 + # ---------------------------------------------------------------------------
59 + if [[ "${GPU}" -eq 1 ]]; then
60 + echo
61 + echo "🎮 Configuración recomendada (más calidad, más VRAM):"
62 + EMBED_MODEL="bge-m3"
63 + NER_MODEL="gemma4:e2b"
64 + else
65 + echo
66 + echo "💻 Configuración mínima (rápida, funciona en cualquier equipo):"
67 + EMBED_MODEL="nomic-embed-text"
68 + NER_MODEL="llama3.2:3b"
69 + fi
70 +
71 + echo " - Embeddings: ${EMBED_MODEL}"
72 + ollama pull "${EMBED_MODEL}"
73 +
74 + echo " - NER: ${NER_MODEL}"
75 + ollama pull "${NER_MODEL}"
76 +
77 + # ---------------------------------------------------------------------------
78 + # 4. Comprobar el binario graphrag
79 + # ---------------------------------------------------------------------------
80 + echo
81 + BIN="${GRAPHRAG_BIN:-$(command -v graphrag || true)}"
82 + if [[ -n "${BIN}" ]]; then
83 + echo "✅ Binario graphrag encontrado: ${BIN}"
84 + "${BIN}" --version
85 + else
86 + echo "⚠️ No se encontró el binario 'graphrag' en el PATH."
87 + echo " Instálalo con: cargo install graphrag-search"
88 + echo " O usa el binario local: /data/rust/graphrag/target/release/graphrag"
89 + fi
90 +
91 + echo
92 + echo "🎉 Entorno listo. Siguiente paso:"
93 + echo " graphrag seed demo.db"
Daha yeni Daha eski