Rene Fichtmueller f5e2357f20 docs: Add Phase 2 delivery summary and getting started guides
- PHASE_2_DELIVERY.md: Complete delivery summary with all components
- GETTING_STARTED.md: Quick start guide (40 min end-to-end)
- scripts/verify_local_setup.sh: Local environment verification
2026-04-25 05:48:33 +02:00

142 lines
5.3 KiB
Bash
Executable File

#!/bin/bash
# Verify local development environment setup for LightRAG sidecar
set -e
echo "╔════════════════════════════════════════════════════════════════╗"
echo "║ LightRAG Sidecar — Local Environment Check ║"
echo "╚════════════════════════════════════════════════════════════════╝"
echo ""
ERRORS=0
WARNINGS=0
# Check Python version
echo "Checking Python..."
if command -v python3 &> /dev/null; then
PY_VERSION=$(python3 --version 2>&1 | awk '{print $2}')
echo "✓ Python 3 (version $PY_VERSION)"
else
echo "✗ Python 3 not found. Install Python 3.10+"
ERRORS=$((ERRORS+1))
fi
# Check PostgreSQL
echo ""
echo "Checking PostgreSQL..."
if command -v psql &> /dev/null; then
PG_VERSION=$(psql --version 2>&1 | awk '{print $3}')
echo "✓ PostgreSQL (version $PG_VERSION)"
# Check if database exists
if psql -l 2>/dev/null | grep -q "tip_lightrag"; then
echo "✓ Database 'tip_lightrag' exists"
else
echo "⚠ Database 'tip_lightrag' not found (will be created by init_db.py)"
WARNINGS=$((WARNINGS+1))
fi
else
echo "✗ PostgreSQL not found. Install PostgreSQL 17+"
ERRORS=$((ERRORS+1))
fi
# Check Qdrant
echo ""
echo "Checking Qdrant..."
if curl -s http://localhost:6333/health | grep -q "ok"; then
echo "✓ Qdrant running on localhost:6333"
else
echo "✗ Qdrant not responding. Start with: docker run -p 6333:6333 qdrant/qdrant:latest"
ERRORS=$((ERRORS+1))
fi
# Check Ollama
echo ""
echo "Checking Ollama..."
if curl -s http://192.168.178.213:11434/api/tags | grep -q "qwen2.5:14b"; then
echo "✓ Ollama running on 192.168.178.213:11434"
echo "✓ qwen2.5:14b model available"
else
if curl -s http://localhost:11434/api/tags | grep -q "qwen2.5:14b"; then
echo "⚠ Ollama available on localhost:11434 (Erik URL may be offline)"
WARNINGS=$((WARNINGS+1))
else
echo "✗ Ollama not found or qwen2.5:14b not loaded"
echo " Start Ollama: ollama serve"
echo " Load model: ollama pull qwen2.5:14b"
ERRORS=$((ERRORS+1))
fi
fi
# Check Python venv
echo ""
echo "Checking Python virtual environment..."
if [ -d "venv" ]; then
echo "✓ venv directory exists"
if [ -f "venv/bin/python" ]; then
echo "✓ venv is initialized"
else
echo "⚠ venv exists but not fully initialized"
WARNINGS=$((WARNINGS+1))
fi
else
echo "⚠ venv directory not found (create with: python3 -m venv venv)"
WARNINGS=$((WARNINGS+1))
fi
# Check requirements.txt
echo ""
echo "Checking Python dependencies..."
if [ -f "requirements.txt" ]; then
echo "✓ requirements.txt found"
if [ -d "venv" ] && [ -f "venv/bin/python" ]; then
# Check if key packages are installed
if venv/bin/python -c "import fastapi, sqlalchemy, qdrant_client, sentence_transformers" 2>/dev/null; then
echo "✓ Key packages installed (fastapi, sqlalchemy, qdrant_client, sentence_transformers)"
else
echo "⚠ Key packages not installed. Run: pip install -r requirements.txt"
WARNINGS=$((WARNINGS+1))
fi
fi
else
echo "✗ requirements.txt not found"
ERRORS=$((ERRORS+1))
fi
# Summary
echo ""
echo "╔════════════════════════════════════════════════════════════════╗"
if [ $ERRORS -eq 0 ] && [ $WARNINGS -eq 0 ]; then
echo "║ ✅ All checks passed! ║"
echo "╚════════════════════════════════════════════════════════════════╝"
echo ""
echo "Ready to run tests. Next steps:"
echo ""
echo "1. Activate venv: source venv/bin/activate"
echo "2. Initialize database: python scripts/init_db.py"
echo "3. Start sidecar: uvicorn app.main:app --reload"
echo "4. In another terminal: python scripts/populate_eval_set.py"
echo ""
exit 0
elif [ $ERRORS -eq 0 ]; then
echo "║ ⚠️ Setup complete with warnings ║"
echo "╚════════════════════════════════════════════════════════════════╝"
echo ""
echo "Warnings ($WARNINGS):"
echo " - Some optional components not found"
echo " - Follow instructions above to resolve"
echo ""
exit 0
else
echo "║ ❌ Setup incomplete ($ERRORS errors) ║"
echo "╚════════════════════════════════════════════════════════════════╝"
echo ""
echo "Errors ($ERRORS) must be fixed before proceeding:"
echo " - Install missing dependencies above"
echo " - Start required services (PostgreSQL, Qdrant, Ollama)"
echo ""
exit 1
fi