setup.sh
· 2.8 KiB · Bash
原始檔案
#!/usr/bin/env bash
#
# setup.sh — Preparación del entorno para el episodio 841 (GraphRAG III)
#
# Deja listo lo mínimo para interrogar el grafo con IA 100% local:
# 1. Comprueba que Ollama está instalado y en marcha (lo arranca si hace falta).
# 2. Descarga los modelos que usa el episodio:
# - bge-m3:latest → embeddings (vectores) de la demo
# - nomic-embed-text → embeddings por defecto del binario (alternativa)
# - llama3.2:3b → resúmenes de comunidad y respuestas de `ask`
# 3. Localiza el binario `graphrag` compilado y comprueba su versión.
# 4. Comprueba que existe la base de la demo `grafo.db`.
#
# 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/4 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; lo arranco..."
ollama serve >/dev/null 2>&1 &
for _ in $(seq 1 30); do
if curl -sf http://localhost:11434/api/tags >/dev/null 2>&1; then break; fi
sleep 1
done
if ! curl -sf http://localhost:11434/api/tags >/dev/null 2>&1; then
echo "ERROR: Ollama no arrancó. Lánzalo a mano con: ollama serve" >&2
exit 1
fi
fi
echo " Ollama está en marcha."
echo "==> 2/4 Descargando modelos (si faltan)..."
# Embeddings de la demo: bge-m3, ~1 GB
ollama pull bge-m3:latest
# Embeddings por defecto del binario si no hay config: nomic-embed-text, ~275 MB
ollama pull nomic-embed-text
# Generación: resúmenes y respuestas de `ask`, llama3.2:3b, ~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/4 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 "==> 4/4 Comprobando la base de la demo..."
if [ -f grafo.db ]; then
echo " Base: grafo.db"
else
echo "AVISO: no se encontró grafo.db en el directorio actual."
echo " Es la base construida en el episodio 839; sin ella no hay demo."
fi
echo
echo "Entorno listo. Siguiente paso:"
echo " graphrag stats grafo.db"
echo " graphrag search \"servidor web seguro\" grafo.db -k 5"
| 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 | |
| 21 | set -euo pipefail |
| 22 | |
| 23 | # Binario de desarrollo (v0.2.12). Cambia esta ruta si compilas en otro sitio. |
| 24 | GRAPHRAG="/data/rust/graphrag/target/release/graphrag" |
| 25 | |
| 26 | echo "==> 1/4 Comprobando Ollama..." |
| 27 | if ! 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 |
| 30 | fi |
| 31 | |
| 32 | if ! 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 |
| 43 | fi |
| 44 | echo " Ollama está en marcha." |
| 45 | |
| 46 | echo "==> 2/4 Descargando modelos (si faltan)..." |
| 47 | # Embeddings de la demo: bge-m3, ~1 GB |
| 48 | ollama pull bge-m3:latest |
| 49 | # Embeddings por defecto del binario si no hay config: nomic-embed-text, ~275 MB |
| 50 | ollama pull nomic-embed-text |
| 51 | # Generación: resúmenes y respuestas de `ask`, llama3.2:3b, ~2 GB |
| 52 | ollama pull llama3.2:3b |
| 53 | |
| 54 | echo " Modelos disponibles:" |
| 55 | curl -s http://localhost:11434/api/tags \ |
| 56 | | grep -o '"name":"[^"]*"' | sed 's/"name":"/ - /; s/"$//' |
| 57 | |
| 58 | echo "==> 3/4 Comprobando el binario graphrag..." |
| 59 | if [ -x "$GRAPHRAG" ]; then |
| 60 | echo " Binario: $GRAPHRAG" |
| 61 | "$GRAPHRAG" --version |
| 62 | else |
| 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" |
| 67 | fi |
| 68 | |
| 69 | echo "==> 4/4 Comprobando la base de la demo..." |
| 70 | if [ -f grafo.db ]; then |
| 71 | echo " Base: grafo.db" |
| 72 | else |
| 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." |
| 75 | fi |
| 76 | |
| 77 | echo |
| 78 | echo "Entorno listo. Siguiente paso:" |
| 79 | echo " graphrag stats grafo.db" |
| 80 | echo " graphrag search \"servidor web seguro\" grafo.db -k 5" |