CoolFace
Apppublic

Aigenthix/Graph_RAG7

sourceHugging Faceupdated 3mo agoView on Hugging Face
0likes
deploy.sh188 linesDownload Raw Back to root
1#!/bin/bash2 3# Graph RAG Chatbot Deployment Script4# Supports: Local, Docker, Docker Compose, and Hugging Face Spaces5 6set -e7 8RED='\033[0;31m'9GREEN='\033[0;32m'10YELLOW='\033[1;33m'11NC='\033[0m' # No Color12 13echo -e "${GREEN}๐Ÿค– Graph RAG Chatbot Deployment Script${NC}\n"14 15# Check if GROQ_API_KEY is set16if [ -z "$GROQ_API_KEY" ]; then17    if [ -f ".env" ]; then18        export $(cat .env | grep GROQ_API_KEY)19    else20        echo -e "${YELLOW}โš ๏ธ  GROQ_API_KEY not found!${NC}"21        echo "Please set it in .env file or as environment variable"22        echo ""23        echo "Getting Groq API Key:"24        echo "1. Visit https://console.groq.com"25        echo "2. Sign up/Login"26        echo "3. Create an API key"27        echo "4. Copy it"28        echo ""29        read -p "Enter your GROQ_API_KEY: " GROQ_API_KEY30        echo "GROQ_API_KEY=$GROQ_API_KEY" > .env31        echo -e "${GREEN}โœ… API key saved to .env${NC}"32    fi33fi34 35echo -e "${GREEN}โœ… GROQ_API_KEY configured${NC}\n"36 37# Menu38echo "Select deployment method:"39echo "1) Local (Python venv)"40echo "2) Docker (Single container)"41echo "3) Docker Compose (Recommended)"42echo "4) Hugging Face Spaces"43echo ""44read -p "Enter choice (1-4): " choice45 46case $choice in47    1)48        echo -e "\n${GREEN}๐Ÿ“ฆ Local Deployment${NC}\n"49 50        if ! command -v python3 &> /dev/null; then51            echo -e "${RED}โŒ Python 3 not found. Please install Python 3.8+${NC}"52            exit 153        fi54 55        echo "Creating virtual environment..."56        python3 -m venv venv57 58        echo "Activating virtual environment..."59        source venv/bin/activate60 61        echo "Installing dependencies..."62        pip install --upgrade pip63        pip install -r requirements.txt64 65        echo ""66        echo -e "${GREEN}โœ… Installation complete!${NC}"67        echo ""68        echo "To start the app, run:"69        echo "  source venv/bin/activate"70        echo "  python app.py"71        echo ""72        echo "Then open: http://localhost:7860"73        ;;74 75    2)76        echo -e "\n${GREEN}๐Ÿณ Docker Deployment${NC}\n"77 78        if ! command -v docker &> /dev/null; then79            echo -e "${RED}โŒ Docker not found. Please install Docker.${NC}"80            echo "Visit: https://docs.docker.com/get-docker/"81            exit 182        fi83 84        echo "Building Docker image..."85        docker build -t graph-rag-chatbot .86 87        echo -e "\n${GREEN}โœ… Image built successfully!${NC}"88        echo ""89        echo "To run the container, use:"90        echo "  docker run -p 7860:7860 \\"91        echo "    -e GROQ_API_KEY=$GROQ_API_KEY \\"92        echo "    -v \$(pwd)/data:/app/data \\"93        echo "    graph-rag-chatbot"94        echo ""95        echo "Or use Docker Compose: docker-compose up"96        echo ""97        read -p "Start container now? (y/n): " -n 1 -r98        echo99        if [[ $REPLY =~ ^[Yy]$ ]]; then100            docker run -p 7860:7860 \101                -e GROQ_API_KEY=$GROQ_API_KEY \102                -v $(pwd)/data:/app/data \103                graph-rag-chatbot104        fi105        ;;106 107    3)108        echo -e "\n${GREEN}๐Ÿณ Docker Compose Deployment${NC}\n"109 110        if ! command -v docker-compose &> /dev/null; then111            echo -e "${RED}โŒ Docker Compose not found.${NC}"112            echo "Visit: https://docs.docker.com/compose/install/"113            exit 1114        fi115 116        echo "Ensuring .env file exists..."117        if [ ! -f ".env" ]; then118            cp .env.example .env119            sed -i "s/your_groq_api_key_here/$GROQ_API_KEY/" .env120        fi121 122        echo "Starting Docker Compose services..."123        docker-compose up -d124 125        echo -e "\n${GREEN}โœ… Services started!${NC}"126        echo ""127        echo "Access the app at: http://localhost:7860"128        echo ""129        echo "Useful commands:"130        echo "  docker-compose logs -f        # View logs"131        echo "  docker-compose ps             # View services"132        echo "  docker-compose down           # Stop services"133        ;;134 135    4)136        echo -e "\n${GREEN}๐Ÿค— Hugging Face Spaces Deployment${NC}\n"137 138        if ! command -v git &> /dev/null; then139            echo -e "${RED}โŒ Git not found. Please install Git.${NC}"140            exit 1141        fi142 143        echo "Steps to deploy to HF Spaces:"144        echo ""145        echo "1. Create a new Space:"146        echo "   https://huggingface.co/spaces"147        echo "   - Select Docker as SDK"148        echo "   - Name: graph-rag-chatbot"149        echo ""150        echo "2. Clone the Space:"151        read -p "Enter your HF username: " hf_username152 153        git clone https://huggingface.co/spaces/$hf_username/graph-rag-chatbot hf-space-clone154        cd hf-space-clone155 156        # Copy all files157        echo "Copying project files..."158        cp -r ../app.py .159        cp -r ../templates .160        cp -r ../Dockerfile .161        cp -r ../requirements.txt .162        cp -r ../.dockerignore .163 164        git add .165        git commit -m "Initial Graph RAG deployment"166        git push167 168        echo -e "\n${GREEN}โœ… Files pushed to HF Spaces!${NC}"169        echo ""170        echo "Final step: Add your API key as a secret"171        echo "1. Go to: https://huggingface.co/spaces/$hf_username/graph-rag-chatbot"172        echo "2. Click Settings โ†’ Repository secrets"173        echo "3. Add new secret:"174        echo "   Name: GROQ_API_KEY"175        echo "   Value: $GROQ_API_KEY"176        echo ""177        echo "Your app will be live in a few minutes!"178        ;;179 180    *)181        echo -e "${RED}โŒ Invalid choice${NC}"182        exit 1183        ;;184esac185 186echo ""187echo -e "${GREEN}๐ŸŽ‰ Deployment configured!${NC}"188