#!/bin/bash # Fonction pour afficher des messages informatifs en vert info() { echo -e "\e[32m[INFO]\e[0m $1" } # Fonction pour afficher des messages d'erreur en rouge error() { echo -e "\e[31m[ERREUR]\e[0m $1" } # --- Début du script --- # Étape 1: Création du script de démarrage du serveur info "Étape 1: Création du script de démarrage du serveur..." mkdir -p server START_SCRIPT="server/start_server.sh" # Utilisation d'un here document pour une génération sans erreur cat > "$START_SCRIPT" << EOF #!/bin/bash MODEL_PATH="/app/models/qwen2.5-coder-1.5b-q8_0.gguf" if [ ! -f "\$MODEL_PATH" ]; then echo "Le modèle GGUF est introuvable à: \$MODEL_PATH" exit 1 fi "/app/llama.cpp/build/bin/llama-server" \\ -m "\$MODEL_PATH" \\ --port 8080 \\ --host 0.0.0.0 \\ -c 4096 \\ -ngl 999 \\ --threads 8 \\ > "logs/llama_server.log" 2>&1 & echo \$! > "server/server.pid" EOF chmod +x "$START_SCRIPT" info "Script de démarrage du serveur créé." # Étape 2: Création du script d'arrêt du serveur info "Étape 2: Création du script d'arrêt du serveur..." STOP_SCRIPT="server/stop_server.sh" cat > "$STOP_SCRIPT" << EOF #!/bin/bash PID_FILE="server/server.pid" if [ -f "\$PID_FILE" ]; then PID=\$(cat "\$PID_FILE") kill \$PID rm "\$PID_FILE" echo "Serveur llama.cpp arrêté." else echo "Aucun PID de serveur trouvé." fi EOF chmod +x "$STOP_SCRIPT" info "Script d'arrêt du serveur créé." # Étape 3: Lancement de l'application Streamlit info "Étape 3: Lancement de l'application Streamlit..." streamlit run app.py