config.toml
· 1.0 KiB · TOML
Ham
# Configuración de ejemplo para GraphRAG
# Situación: los ejemplos del episodio 837.
#
# Cópiala a tu ruta de configuración o pásala con:
# graphrag -C config/config.toml stats demo.db
#
# Todos los campos son opcionales; los flags de CLI siempre tienen prioridad.
# Ruta por defecto en Linux: ~/.config/graphrag/config.toml
# Base de datos por defecto.
# OJO con el "sentinel": si omites la BD o escribes literalmente 'graphrag.db',
# se usa ESTE valor.
db = "demo.db"
# Servidor Ollama
ollama_url = "http://localhost:11434"
# Modelo de embeddings. En este equipo usamos bge-m3 (config recomendada).
# En un portátil modesto: "nomic-embed-text".
embed_model = "bge-m3:latest"
# Modelo de extracción de entidades (NER). Solo se usa en `build`.
ner_model = "llama3.2:3b"
# Modelo para resumir comunidades y para `ask`.
summary_model = "llama3.2:3b"
# Búsqueda
k = 5
depth = 2
alpha = 0.7
# Directorio de notas (lo usa el plugin de Neovim y `build` sin argumento)
notes_dir = ""
# Hilos NER en paralelo durante `build`
num_threads = 4
| 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 |
| 38 |
demo-comandos.sh
· 1.2 KiB · Bash
Ham
#!/usr/bin/env bash
# Recorrido completo de la demo de GraphRAG (episodio 837)
# Binario: graphrag 0.2.12 (crate graphrag-search)
# --- Instalacion (una vez) ---
cargo install graphrag-search
ollama serve
ollama pull nomic-embed-text # embeddings (minimo, portatil)
ollama pull llama3.2:3b # NER (minimo)
# Con GPU: ollama pull bge-m3 && ollama pull gemma4:e2b
# --- 1. Crear la base demo (SI necesita Ollama; es atomico) ---
graphrag seed demo.db
# --- 2. Estadisticas (NO necesita Ollama) ---
graphrag stats demo.db
# --- 3. Busqueda textual FTS5 (NO necesita Ollama) ---
graphrag fts "Python" demo.db
# --- 4. Busqueda hibrida vectores+grafo (SI necesita Ollama) ---
graphrag search "Python" demo.db -k 5
graphrag search "seguridad en contenedores" demo.db
# --- 5. Camino mas corto entre dos conceptos (NO necesita Ollama) ---
graphrag path "Docker" "SQLite" demo.db
graphrag path "Prometheus" "SQLite" demo.db
# --- 6. Vecindario de un concepto (NO necesita Ollama; aqui -d SI es profundidad) ---
graphrag graph "Docker" demo.db -d 2
graphrag graph "Python" demo.db -d 1
# --- 7. Mapa conceptual TUI (NO necesita Ollama; requiere terminal real) ---
graphrag map demo.db
graphrag map --from Docker --depth 3 demo.db
| 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 |
| 36 |
setup.sh
· 3.2 KiB · Bash
Ham
#!/usr/bin/env bash
#
# setup.sh — Preparación del entorno para la demo de GraphRAG (episodio 837)
#
# Instala Ollama si no está, lo arranca si hace falta y descarga los modelos
# mínimos. Al terminar, verifica que Ollama responde.
#
# Uso:
# ./setup.sh # configuración mínima (portátil modesto)
# ./setup.sh --gpu # configuración recomendada (mejor calidad)
#
set -euo pipefail
OLLAMA_URL="http://localhost:11434"
GPU=0
[[ "${1:-}" == "--gpu" ]] && GPU=1
echo "🔧 Preparando el entorno de GraphRAG..."
echo
# ---------------------------------------------------------------------------
# 1. Ollama instalado
# ---------------------------------------------------------------------------
if ! command -v ollama >/dev/null 2>&1; then
echo "📦 Ollama no está instalado. Instalando con el script oficial..."
curl -fsSL https://ollama.ai/install.sh | sh
else
echo "✅ Ollama ya está instalado: $(ollama --version 2>/dev/null || echo 'versión desconocida')"
fi
# ---------------------------------------------------------------------------
# 2. Arrancar Ollama si no responde
# ---------------------------------------------------------------------------
if curl -fsS "${OLLAMA_URL}/api/tags" >/dev/null 2>&1; then
echo "✅ Ollama ya está corriendo en ${OLLAMA_URL}"
else
echo "🚀 Arrancando Ollama en segundo plano..."
# ollama serve es un proceso de larga duración: lo mandamos al fondo.
nohup ollama serve >/tmp/ollama-graphrag.log 2>&1 &
# Esperamos hasta 30 s a que levante.
for i in $(seq 1 30); do
if curl -fsS "${OLLAMA_URL}/api/tags" >/dev/null 2>&1; then
echo "✅ Ollama arrancado (tras ${i}s)"
break
fi
sleep 1
done
fi
# Verificación final: si no responde, abortamos con mensaje claro.
if ! curl -fsS "${OLLAMA_URL}/api/tags" >/dev/null 2>&1; then
echo "❌ Ollama no responde en ${OLLAMA_URL}. Revisa /tmp/ollama-graphrag.log"
exit 1
fi
# ---------------------------------------------------------------------------
# 3. Descargar modelos
# ---------------------------------------------------------------------------
if [[ "${GPU}" -eq 1 ]]; then
echo
echo "🎮 Configuración recomendada (más calidad, más VRAM):"
EMBED_MODEL="bge-m3"
NER_MODEL="gemma4:e2b"
else
echo
echo "💻 Configuración mínima (rápida, funciona en cualquier equipo):"
EMBED_MODEL="nomic-embed-text"
NER_MODEL="llama3.2:3b"
fi
echo " - Embeddings: ${EMBED_MODEL}"
ollama pull "${EMBED_MODEL}"
echo " - NER: ${NER_MODEL}"
ollama pull "${NER_MODEL}"
# ---------------------------------------------------------------------------
# 4. Comprobar el binario graphrag
# ---------------------------------------------------------------------------
echo
BIN="${GRAPHRAG_BIN:-$(command -v graphrag || true)}"
if [[ -n "${BIN}" ]]; then
echo "✅ Binario graphrag encontrado: ${BIN}"
"${BIN}" --version
else
echo "⚠️ No se encontró el binario 'graphrag' en el PATH."
echo " Instálalo con: cargo install graphrag-search"
echo " O usa el binario local: /data/rust/graphrag/target/release/graphrag"
fi
echo
echo "🎉 Entorno listo. Siguiente paso:"
echo " graphrag seed demo.db"
| 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" |
| 94 |