#!/bin/bash # Script de dĂ©marrage pour AI Code Assistant # Compatible WSL echo "🚀 DĂ©marrage de AI Code Assistant..." echo "========================================" echo "" # Couleurs GREEN='\033[0;32m' RED='\033[0;31m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # Dossier du script SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" # VĂ©rifier si Ollama tourne echo "📩 VĂ©rification d'Ollama..." if ! curl -s http://localhost:11434/api/tags > /dev/null 2>&1; then echo -e "${YELLOW}⚠ Ollama n'est pas dĂ©marrĂ©. DĂ©marrage...${NC}" ollama serve > /tmp/ollama.log 2>&1 & sleep 3 if curl -s http://localhost:11434/api/tags > /dev/null 2>&1; then echo -e "${GREEN}✅ Ollama dĂ©marrĂ©${NC}" else echo -e "${RED}❌ Erreur: Impossible de dĂ©marrer Ollama${NC}" echo "VĂ©rifiez les logs: /tmp/ollama.log" exit 1 fi else echo -e "${GREEN}✅ Ollama dĂ©jĂ  actif${NC}" fi # VĂ©rifier les modĂšles echo "" echo "đŸ€– VĂ©rification des modĂšles..." MODELS=$(ollama list | grep -c "code-expert\|qwen2.5-coder") if [ "$MODELS" -eq 0 ]; then echo -e "${YELLOW}⚠ Aucun modĂšle de code dĂ©tectĂ©${NC}" echo "TĂ©lĂ©chargement de qwen2.5-coder:7b..." ollama pull qwen2.5-coder:7b fi # Installer les dĂ©pendances python3 si nĂ©cessaire echo "" echo "📚 VĂ©rification des dĂ©pendances python3..." cd "$SCRIPT_DIR/backend" if [ ! -d "venv" ]; then echo "CrĂ©ation de l'environnement virtuel..." python3 -m venv venv fi # Utiliser . au lieu de source pour compatibilitĂ© sh . venv/bin/activate if ! pip show fastapi > /dev/null 2>&1; then echo "Installation des dĂ©pendances..." pip install -q -r requirements.txt echo -e "${GREEN}✅ DĂ©pendances installĂ©es${NC}" else echo -e "${GREEN}✅ DĂ©pendances OK${NC}" fi # DĂ©marrer le backend FastAPI echo "" echo "🔧 DĂ©marrage du backend FastAPI..." python3 main.py > /tmp/fastapi.log 2>&1 & BACKEND_PID=$! # Attendre que le backend soit prĂȘt sleep 3 if kill -0 $BACKEND_PID 2>/dev/null; then echo -e "${GREEN}✅ Backend dĂ©marrĂ© (PID: $BACKEND_PID)${NC}" else echo -e "${RED}❌ Erreur: Backend n'a pas dĂ©marrĂ©${NC}" echo "VĂ©rifiez les logs: /tmp/fastapi.log" cat /tmp/fastapi.log exit 1 fi # DĂ©marrer un serveur HTTP simple pour le frontend echo "" echo "🌐 DĂ©marrage du frontend..." cd "$SCRIPT_DIR/frontend" # VĂ©rifier que index.html existe if [ ! -f "index.html" ]; then echo -e "${RED}❌ Erreur: index.html introuvable dans $(pwd)${NC}" echo "Contenu du dossier:" ls -la exit 1 fi # Tuer l'ancien serveur s'il existe pkill -f "python3.*http.server.*9000" 2>/dev/null python3 -m http.server 9000 > /tmp/frontend.log 2>&1 & FRONTEND_PID=$! sleep 2 if kill -0 $FRONTEND_PID 2>/dev/null; then echo -e "${GREEN}✅ Frontend dĂ©marrĂ© (PID: $FRONTEND_PID)${NC}" else echo -e "${RED}❌ Erreur: Frontend n'a pas dĂ©marrĂ©${NC}" cat /tmp/frontend.log exit 1 fi # Sauvegarder les PIDs echo $BACKEND_PID > /tmp/ai-assistant-backend.pid echo $FRONTEND_PID > /tmp/ai-assistant-frontend.pid echo "" echo "========================================" echo -e "${GREEN}🎉 AI Code Assistant est prĂȘt !${NC}" echo "========================================" echo "" echo "📊 Informations:" echo " - Backend API: http://localhost:9001" echo " - Frontend: http://localhost:9000" echo " - WebSocket: ws://localhost:9001/ws/chat" echo "" echo "🔗 AccĂšs:" echo " Ouvrez votre navigateur sur: ${GREEN}http://localhost:9000${NC}" echo "" echo "📝 Logs:" echo " - Backend: /tmp/fastapi.log" echo " - Frontend: /tmp/frontend.log" echo " - Ollama: /tmp/ollama.log" echo "" echo "🛑 Pour arrĂȘter:" echo " bash stop.sh" echo "" echo "📋 ModĂšles disponibles:" ollama list | grep -v "NAME" echo "" # Ouvrir le navigateur automatiquement (si sur Windows WSL) if grep -qi microsoft /proc/version; then echo "💡 Ouverture automatique du navigateur..." cmd.exe /c start http://localhost:9000 2>/dev/null fi # Suivre les logs en temps rĂ©el (optionnel) # tail -f /tmp/fastapi.log