Initial commit
This commit is contained in:
151
start.sh
Normal file
151
start.sh
Normal file
@@ -0,0 +1,151 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user