open-navigator / scripts /scraping /setup_ollama_gemma.sh
jcbowyer's picture
Clean HuggingFace deployment without binary files
e59d91d
Raw
History Blame Contribute Delete
1.67 kB
#!/usr/bin/env bash
# Install Ollama (if missing) and pull the Gemma model for local scraping extraction.
#
# Usage:
# ./scripts/scraping/setup_ollama_gemma.sh
# OLLAMA_MODEL=gemma3 ./scripts/scraping/setup_ollama_gemma.sh
#
set -euo pipefail
MODEL="${OLLAMA_MODEL:-${SCRAPED_MEETINGS_OLLAMA_MODEL:-gemma4}}"
if ! command -v ollama >/dev/null 2>&1; then
echo "Ollama not found on PATH."
if [[ "${INSTALL_OLLAMA:-0}" == "1" ]]; then
echo "INSTALL_OLLAMA=1 — running https://ollama.com/install.sh"
curl -fsSL https://ollama.com/install.sh | sh
else
echo "Install: https://ollama.com/download"
echo "Linux: curl -fsSL https://ollama.com/install.sh | sh"
echo "Or re-run: INSTALL_OLLAMA=1 ./scripts/scraping/setup_ollama_gemma.sh"
exit 1
fi
fi
if ! curl -fsS -m 2 http://127.0.0.1:11434/api/tags >/dev/null 2>&1; then
echo "Starting ollama serve in background (not systemd)…"
nohup ollama serve >/tmp/ollama-serve.log 2>&1 &
sleep 2
fi
echo "Pulling Ollama model: ${MODEL}"
ollama pull "${MODEL}"
echo "Verifying API…"
if command -v curl >/dev/null 2>&1; then
curl -fsS http://127.0.0.1:11434/api/tags | head -c 400 || true
echo ""
fi
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
if [[ -x "${ROOT}/.venv/bin/python" ]]; then
"${ROOT}/.venv/bin/python" "${ROOT}/scripts/scraping/extract_page_structured.py" --check-ollama --model "${MODEL}"
else
echo "Create .venv and run: .venv/bin/python scripts/scraping/extract_page_structured.py --check-ollama"
fi
echo "Done. Test extraction:"
echo " .venv/bin/python scripts/scraping/extract_page_structured.py --url https://example.gov/ --out /tmp/test.json"