Aigenthix/Graph_RAG7
0
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 