| #!/bin/bash
|
|
|
|
|
|
|
|
|
| set -e
|
|
|
| echo "🌌 K1RL QUASAR — HuggingFace Spaces Deployment"
|
| echo "=============================================="
|
|
|
|
|
| RED='\033[0;31m'
|
| GREEN='\033[0;32m'
|
| YELLOW='\033[1;33m'
|
| BLUE='\033[0;34m'
|
| NC='\033[0m'
|
|
|
|
|
| HF_USERNAME="KarlQuant"
|
| SPACE_NAME="k1rl-quasar"
|
| SPACE_REPO="https://huggingface.co/spaces/${HF_USERNAME}/${SPACE_NAME}"
|
|
|
| echo -e "${BLUE}Configuration:${NC}"
|
| echo " HF Username: ${HF_USERNAME}"
|
| echo " Space Name: ${SPACE_NAME}"
|
| echo " Repository: ${SPACE_REPO}"
|
| echo ""
|
|
|
|
|
| echo -e "${YELLOW}Step 1: Cloning HuggingFace Space repository...${NC}"
|
| if [ -d "${SPACE_NAME}" ]; then
|
| echo -e "${YELLOW}Directory exists, updating...${NC}"
|
| cd "${SPACE_NAME}"
|
| git pull
|
| else
|
| git clone "${SPACE_REPO}"
|
| cd "${SPACE_NAME}"
|
| fi
|
| echo -e "${GREEN}✅ Repository ready${NC}"
|
| echo ""
|
|
|
|
|
| echo -e "${YELLOW}Step 2: Copying deployment files ...${NC}"
|
|
|
|
|
| cp ../Dockerfile .
|
| cp ../supervisord.conf .
|
| cp ../redis_hf.conf .
|
| cp ../requirements.txt .
|
| cp ../README.md .
|
|
|
|
|
| cp ../dashboard_service.py .
|
| cp ../quasar_service.py .
|
| cp ../health_monitor.py .
|
| cp ../sleep_prevention.py .
|
| cp ../redis_config.py .
|
| cp ../visitor_tracker.py .
|
| cp ../app.py .
|
|
|
| echo -e "${GREEN}✅ Deployment files copied${NC}"
|
| echo ""
|
|
|
|
|
| echo -e "${YELLOW}Step 3: Creating HuggingFace Spaces configuration...${NC}"
|
| cat > README.md << 'EOF'
|
| ---
|
| title: K1RL QUASAR — Quantitative Intelligence Observatory
|
| emoji: 🌌
|
| colorFrom: blue
|
| colorTo: purple
|
| sdk: docker
|
| app_port: 7860
|
| pinned: true
|
| license: mit
|
| short_description: AI Training Monitoring & Analytics Platform with Real-time Metrics
|
| tags:
|
| - machine-learning
|
| - monitoring
|
| - analytics
|
| - training
|
| - dashboard
|
| - ai
|
| - pytorch
|
| - redis
|
| - flask
|
| models:
|
| - KarlQuant/k1rl-checkpoints
|
| datasets:
|
| - KarlQuant/k1rl-checkpoints
|
| ---
|
|
|
|
|
|
|
| > **Production AI Training Monitoring Platform** | Real-time Metrics | 24/7 Uptime
|
|
|
|
|
|
|
| This HuggingFace Space runs a comprehensive AI training monitoring platform featuring:
|
|
|
| - **Real-time Training Metrics** — Loss curves, accuracy, buffer statistics
|
| - **System Health Monitoring** — RAM/CPU usage with auto-cleanup
|
| - **Visitor Analytics** — Global visitor tracking and statistics
|
| - **Service Management** — Multi-process architecture with Redis
|
| - **Sleep Prevention** — Automatic uptime maintenance
|
| - **Checkpoint Management** — HuggingFace Hub integration
|
|
|
|
|
|
|
| The platform runs multiple coordinated services:
|
|
|
| 1. **Dashboard** (Port 7860) — Web interface and API
|
| 2. **Quasar Engine** — Main AI training loop
|
| 3. **Health Monitor** — Resource management and cleanup
|
| 4. **Redis Server** — Real-time metrics storage
|
| 5. **Sleep Prevention** — 24/7 uptime maintenance
|
|
|
|
|
|
|
| - `/` — Main dashboard interface
|
| - `/health` — Health check and uptime
|
| - `/api/metrics` — Training metrics JSON
|
| - `/api/visitors` — Visitor analytics
|
| - `/logs/{service}` — Service logs
|
|
|
|
|
|
|
| Built for HuggingFace Spaces 12GB environment with:
|
| - Docker containerization
|
| - Supervisor process management
|
| - Automatic resource cleanup
|
| - Graceful error recovery
|
| - Cloud checkpoint backup
|
|
|
| ---
|
|
|
| *Powered by K1RL Quantitative Intelligence Research*
|
| EOF
|
|
|
| echo -e "${GREEN}✅ HuggingFace configuration created${NC}"
|
| echo ""
|
|
|
|
|
| echo -e "${YELLOW}Step 4: Checking for original project files...${NC}"
|
|
|
| REQUIRED_FILES=(
|
| "quasar_main4.py"
|
| "Features.py"
|
| "Rewards.py"
|
| "dashboard.html"
|
| "quasar_plasticity_module.py"
|
| )
|
|
|
| MISSING_FILES=()
|
|
|
| for file in "${REQUIRED_FILES[@]}"; do
|
| if [ ! -f "../${file}" ]; then
|
| MISSING_FILES+=("${file}")
|
| else
|
| cp "../${file}" .
|
| echo -e "${GREEN}✓${NC} ${file}"
|
| fi
|
| done
|
|
|
| if [ ${#MISSING_FILES[@]} -ne 0 ]; then
|
| echo -e "${RED}❌ Missing required files:${NC}"
|
| for file in "${MISSING_FILES[@]}"; do
|
| echo -e "${RED} - ${file}${NC}"
|
| done
|
| echo ""
|
| echo -e "${YELLOW}Please copy these files manually before deployment.${NC}"
|
| else
|
| echo -e "${GREEN}✅ All required files present${NC}"
|
| fi
|
| echo ""
|
|
|
|
|
| echo -e "${YELLOW}Step 5: Preparing Git commit...${NC}"
|
|
|
| git add .
|
|
|
|
|
| if git diff --staged --quiet; then
|
| echo -e "${YELLOW}No changes to commit${NC}"
|
| else
|
| echo -e "${BLUE}Changes detected, creating commit...${NC}"
|
| git config --global user.email "action@github.com" 2>/dev/null || true
|
| git config --global user.name "K1RL Deployment" 2>/dev/null || true
|
|
|
| git commit -m "K1RL QUASAR - Production deployment to HuggingFace Spaces
|
|
|
| 🌌 Features:
|
| - Real-time training monitoring dashboard
|
| - Multi-service architecture with Redis
|
| - Health monitoring and automatic cleanup
|
| - Visitor analytics and geolocation
|
| - Sleep prevention for 24/7 uptime
|
| - HuggingFace Hub checkpoint management
|
|
|
| 🚀 Services:
|
| - Dashboard (Port 7860)
|
| - Quasar Engine (Training)
|
| - Health Monitor (Resource management)
|
| - Redis Server (Metrics storage)
|
| - Sleep Prevention (Uptime)
|
|
|
| 🐳 Deployment: Docker + Supervisor + 12GB RAM optimization"
|
|
|
| echo -e "${GREEN}✅ Commit created${NC}"
|
| fi
|
| echo ""
|
|
|
|
|
| echo -e "${BLUE}=============================================="
|
| echo -e "🎉 Deployment preparation complete!"
|
| echo -e "===============================================${NC}"
|
| echo ""
|
| echo -e "${YELLOW}Next steps:${NC}"
|
| echo ""
|
| echo -e "${BLUE}1. Configure HuggingFace Spaces Secrets:${NC}"
|
| echo " Go to: https://huggingface.co/spaces/${HF_USERNAME}/${SPACE_NAME}/settings"
|
| echo ""
|
| echo " Add these secrets:"
|
| echo -e "${GREEN} Name: HF_TOKEN${NC}"
|
| echo " Value: YOUR_HF_TOKEN_HERE"
|
| echo ""
|
| echo -e "${GREEN} Name: HF_USERNAME${NC}"
|
| echo " Value: ${HF_USERNAME}"
|
| echo ""
|
| echo -e "${GREEN} Name: REDIS_PASSWORD${NC}"
|
| echo " Value: k1rl_099a0c008e32300dc3c14189"
|
| echo ""
|
|
|
| echo -e "${BLUE}2. Deploy to HuggingFace Spaces:${NC}"
|
| echo " git push"
|
| echo ""
|
|
|
| echo -e "${BLUE}3. Monitor deployment:${NC}"
|
| echo " Watch the build logs in HuggingFace Spaces"
|
| echo " Access your dashboard at: https://huggingface.co/spaces/${HF_USERNAME}/${SPACE_NAME}"
|
| echo ""
|
|
|
| echo -e "${BLUE}4. Verify services:${NC}"
|
| echo " Health check: https://${HF_USERNAME}-${SPACE_NAME}.hf.space/health"
|
| echo " Metrics API: https://${HF_USERNAME}-${SPACE_NAME}.hf.space/api/metrics"
|
| echo " Service logs: https://${HF_USERNAME}-${SPACE_NAME}.hf.space/logs/dashboard"
|
| echo ""
|
|
|
| if [ ${#MISSING_FILES[@]} -ne 0 ]; then
|
| echo -e "${RED}⚠️ WARNING: Missing files detected${NC}"
|
| echo -e "${YELLOW} Copy these files before pushing:${NC}"
|
| for file in "${MISSING_FILES[@]}"; do
|
| echo -e "${RED} - ${file}${NC}"
|
| done
|
| echo ""
|
| fi
|
|
|
| echo -e "${GREEN}🚀 Ready for deployment!${NC}"
|
| echo ""
|
| echo -e "${YELLOW}Current directory: $(pwd)${NC}"
|
| echo -e "${YELLOW}Run 'git push' to deploy to HuggingFace Spaces${NC}"
|
|
|