Add Library RAG project and cleanup root directory
- Add complete Library RAG application (Flask + MCP server) - PDF processing pipeline with OCR and LLM extraction - Weaviate vector database integration (BGE-M3 embeddings) - Flask web interface with search and document management - MCP server for Claude Desktop integration - Comprehensive test suite (134 tests) - Clean up root directory - Remove obsolete documentation files - Remove backup and temporary files - Update autonomous agent configuration - Update prompts - Enhance initializer bis prompt with better instructions 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
131
generations/library_rag/init.sh
Normal file
131
generations/library_rag/init.sh
Normal file
@@ -0,0 +1,131 @@
|
||||
#!/bin/bash
|
||||
# Library RAG - Type Safety & Documentation Enhancement
|
||||
# Initialization script for development environment
|
||||
|
||||
set -e # Exit on error
|
||||
|
||||
echo "=========================================="
|
||||
echo "Library RAG - Development Environment Setup"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
# Check Python version
|
||||
echo "[1/5] Checking Python version..."
|
||||
python_version=$(python --version 2>&1)
|
||||
echo " Found: $python_version"
|
||||
if ! python -c "import sys; assert sys.version_info >= (3, 10), 'Python 3.10+ required'" 2>/dev/null; then
|
||||
echo " ERROR: Python 3.10 or higher is required"
|
||||
exit 1
|
||||
fi
|
||||
echo " OK"
|
||||
echo ""
|
||||
|
||||
# Create virtual environment if it doesn't exist
|
||||
echo "[2/5] Setting up virtual environment..."
|
||||
if [ ! -d "venv" ]; then
|
||||
echo " Creating virtual environment..."
|
||||
python -m venv venv
|
||||
echo " Created venv/"
|
||||
else
|
||||
echo " Virtual environment already exists"
|
||||
fi
|
||||
|
||||
# Activate virtual environment
|
||||
if [[ "$OSTYPE" == "msys" || "$OSTYPE" == "win32" ]]; then
|
||||
source venv/Scripts/activate
|
||||
else
|
||||
source venv/bin/activate
|
||||
fi
|
||||
echo " Activated virtual environment"
|
||||
echo ""
|
||||
|
||||
# Install dependencies
|
||||
echo "[3/5] Installing Python dependencies..."
|
||||
pip install --quiet --upgrade pip
|
||||
pip install --quiet -r requirements.txt
|
||||
# Install type checking tools
|
||||
pip install --quiet mypy types-Flask pydocstyle
|
||||
echo " Installed all dependencies"
|
||||
echo ""
|
||||
|
||||
# Start Docker containers
|
||||
echo "[4/5] Starting Weaviate with Docker Compose..."
|
||||
if command -v docker &> /dev/null; then
|
||||
if docker compose version &> /dev/null; then
|
||||
docker compose up -d
|
||||
echo " Weaviate is starting..."
|
||||
echo " Waiting for Weaviate to be ready..."
|
||||
sleep 5
|
||||
|
||||
# Check if Weaviate is ready
|
||||
max_attempts=30
|
||||
attempt=0
|
||||
while [ $attempt -lt $max_attempts ]; do
|
||||
if curl -s http://localhost:8080/v1/.well-known/ready > /dev/null 2>&1; then
|
||||
echo " Weaviate is ready!"
|
||||
break
|
||||
fi
|
||||
attempt=$((attempt + 1))
|
||||
sleep 2
|
||||
done
|
||||
|
||||
if [ $attempt -eq $max_attempts ]; then
|
||||
echo " WARNING: Weaviate may not be ready yet. Check 'docker compose logs'"
|
||||
fi
|
||||
else
|
||||
echo " WARNING: Docker Compose not found. Please install Docker Desktop."
|
||||
echo " Weaviate will need to be started manually: docker compose up -d"
|
||||
fi
|
||||
else
|
||||
echo " WARNING: Docker not found. Please install Docker Desktop."
|
||||
echo " Weaviate will need to be started manually: docker compose up -d"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Create Weaviate schema if needed
|
||||
echo "[5/5] Initializing Weaviate schema..."
|
||||
python -c "
|
||||
import weaviate
|
||||
try:
|
||||
client = weaviate.connect_to_local()
|
||||
collections = client.collections.list_all()
|
||||
if 'Chunk' in collections:
|
||||
print(' Schema already exists')
|
||||
else:
|
||||
print(' Creating schema...')
|
||||
import schema
|
||||
print(' Schema created successfully')
|
||||
client.close()
|
||||
except Exception as e:
|
||||
print(f' Note: Could not connect to Weaviate: {e}')
|
||||
print(' Run this script again after Weaviate is ready, or run: python schema.py')
|
||||
" 2>/dev/null || echo " Schema setup will be done on first Flask app run"
|
||||
echo ""
|
||||
|
||||
# Print summary
|
||||
echo "=========================================="
|
||||
echo "Setup Complete!"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo "To start the Flask application:"
|
||||
echo " python flask_app.py"
|
||||
echo ""
|
||||
echo "The application will be available at:"
|
||||
echo " http://localhost:5000"
|
||||
echo ""
|
||||
echo "Useful commands:"
|
||||
echo " - Run type checks: mypy --strict ."
|
||||
echo " - Run tests: pytest tests/ -v"
|
||||
echo " - Check docstrings: pydocstyle --convention=google ."
|
||||
echo " - View Weaviate: http://localhost:8080/v1"
|
||||
echo ""
|
||||
echo "For development with Ollama (free LLM):"
|
||||
echo " 1. Install Ollama: https://ollama.ai"
|
||||
echo " 2. Pull model: ollama pull qwen2.5:7b"
|
||||
echo " 3. Start Ollama: ollama serve"
|
||||
echo ""
|
||||
echo "For MCP Server (Claude Desktop integration):"
|
||||
echo " 1. Run MCP server: python mcp_server.py"
|
||||
echo " 2. Configure Claude Desktop (see MCP_README.md)"
|
||||
echo " 3. Use parse_pdf and search tools from Claude"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user