Ferdlance commited on
Commit
c8ca1ef
·
verified ·
1 Parent(s): c7fe3ec

Update build.sh

Browse files
Files changed (1) hide show
  1. build.sh +55 -88
build.sh CHANGED
@@ -1,88 +1,55 @@
1
- #!/bin/bash
2
-
3
- # Fonction pour afficher des messages informatifs en vert
4
- info() {
5
- echo -e "\e[32m[INFO]\e[0m $1"
6
- }
7
-
8
- # Fonction pour afficher des messages d'erreur en rouge
9
- error() {
10
- echo -e "\e[31m[ERREUR]\e[0m $1"
11
- }
12
-
13
- # --- Début du script ---
14
-
15
- # Étape 1: Vérification et compilation de llama.cpp
16
- info "Étape 1: Vérification et compilation de llama.cpp..."
17
- if [ ! -d "llama.cpp/build/bin" ]; then
18
- info "Dossier 'llama.cpp/build/bin' introuvable. Démarrage de la compilation."
19
-
20
- if [ ! -d "llama.cpp" ]; then
21
- info "Clonage du dépôt llama.cpp..."
22
- git clone https://github.com/ggerganov/llama.cpp.git || { error "Échec du clonage."; exit 1; }
23
- fi
24
-
25
- cd llama.cpp
26
- info "Lancement de la compilation..."
27
- mkdir -p build && cd build
28
- cmake .. -DLLAMA_CURL=1 || { error "Échec de la configuration CMake."; cd ../..; exit 1; }
29
- cmake --build . --config Release || { error "Échec de la compilation."; cd ../..; exit 1; }
30
- cd ../..
31
- info "Compilation de llama.cpp terminée avec succès."
32
- else
33
- info "llama.cpp est déjà compilé. Ignoré."
34
- fi
35
-
36
- # Étape 2: Vérification et téléchargement du modèle GGUF
37
- info "Étape 2: Vérification et téléchargement du modèle GGUF..."
38
- MODEL_PATH="models/qwen2.5-coder-1.5b-q8_0.gguf"
39
- if [ ! -f "$MODEL_PATH" ]; then
40
- info "Le modèle $MODEL_PATH est introuvable. Début du téléchargement..."
41
- mkdir -p models
42
- wget https://huggingface.co/Qwen/Qwen2.5-1.5B-Instruct-GGUF/resolve/main/qwen2.5-1.5b-instruct-q8_0.gguf -O "$MODEL_PATH" || { error "Échec du téléchargement du modèle."; exit 1; }
43
- info "Téléchargement du modèle terminé."
44
- else
45
- info "Le modèle GGUF est déjà présent. Ignoré."
46
- fi
47
-
48
- # Étape 3: Création du script de démarrage du serveur
49
- info "Étape 3: Création du script de démarrage du serveur..."
50
- mkdir -p server
51
- START_SCRIPT="server/start_server.sh"
52
- echo '#!/bin/bash' > "$START_SCRIPT"
53
- echo "MODEL_PATH=\"../$MODEL_PATH\"" >> "$START_SCRIPT"
54
- echo 'if [ ! -f "$MODEL_PATH" ]; then' >> "$START_SCRIPT"
55
- echo ' echo "Le modèle GGUF est introuvable à: $MODEL_PATH"' >> "$START_SCRIPT"
56
- echo ' exit 1' >> "$START_SCRIPT"
57
- echo 'fi' >> "$START_SCRIPT"
58
- echo '"../llama.cpp/build/bin/llama-server" \\' >> "$START_SCRIPT"
59
- echo " -m \"\$MODEL_PATH\" \\" >> "$START_SCRIPT"
60
- echo " --port 8080 \\" >> "$START_SCRIPT"
61
- echo " --host 0.0.0.0 \\" >> "$START_SCRIPT"
62
- echo " -c 4096 \\" >> "$START_SCRIPT"
63
- echo " -ngl 999 \\" >> "$START_SCRIPT"
64
- echo " --threads 8 \\" >> "$START_SCRIPT"
65
- echo ' > "logs/llama_server.log" 2>&1 &' >> "$START_SCRIPT"
66
- echo 'echo $! > "server/server.pid"' >> "$START_SCRIPT"
67
- chmod +x "$START_SCRIPT"
68
- info "Script de démarrage du serveur créé."
69
-
70
- # Étape 4: Création du script d'arrêt du serveur
71
- info "Étape 4: Création du script d'arrêt du serveur..."
72
- STOP_SCRIPT="server/stop_server.sh"
73
- echo '#!/bin/bash' > "$STOP_SCRIPT"
74
- echo 'PID_FILE="server/server.pid"' >> "$STOP_SCRIPT"
75
- echo 'if [ -f "$PID_FILE" ]; then' >> "$STOP_SCRIPT"
76
- echo ' PID=$(cat "$PID_FILE")' >> "$STOP_SCRIPT"
77
- echo ' kill $PID' >> "$STOP_SCRIPT"
78
- echo ' rm "$PID_FILE"' >> "$STOP_SCRIPT"
79
- echo ' echo "Serveur llama.cpp arrêté."' >> "$STOP_SCRIPT"
80
- echo 'else' >> "$STOP_SCRIPT"
81
- echo ' echo "Aucun PID de serveur trouvé."' >> "$STOP_SCRIPT"
82
- echo 'fi' >> "$STOP_SCRIPT"
83
- chmod +x "$STOP_SCRIPT"
84
- info "Script d'arrêt du serveur créé."
85
-
86
- # Étape 5: Lancement de l'application Streamlit
87
- info "Étape 5: Lancement de l'application Streamlit..."
88
- streamlit run app.py
 
1
+ #!/bin/bash
2
+
3
+ # Fonction pour afficher des messages informatifs en vert
4
+ info() {
5
+ echo -e "\e[32m[INFO]\e[0m $1"
6
+ }
7
+
8
+ # Fonction pour afficher des messages d'erreur en rouge
9
+ error() {
10
+ echo -e "\e[31m[ERREUR]\e[0m $1"
11
+ }
12
+
13
+ # --- Début du script ---
14
+
15
+ # Étape 3: Création du script de démarrage du serveur
16
+ info "Étape 3: Création du script de démarrage du serveur..."
17
+ mkdir -p server
18
+ START_SCRIPT="server/start_server.sh"
19
+ echo '#!/bin/bash' > "$START_SCRIPT"
20
+ echo "MODEL_PATH=\"../models/qwen2.5-coder-1.5b-q8_0.gguf\"" >> "$START_SCRIPT"
21
+ echo 'if [ ! -f "$MODEL_PATH" ]; then' >> "$START_SCRIPT"
22
+ echo ' echo "Le modèle GGUF est introuvable à: $MODEL_PATH"' >> "$START_SCRIPT"
23
+ echo ' exit 1' >> "$START_SCRIPT"
24
+ echo 'fi' >> "$START_SCRIPT"
25
+ echo '"../llama.cpp/build/bin/llama-server" \\' >> "$START_SCRIPT"
26
+ echo " -m \"\$MODEL_PATH\" \\" >> "$START_SCRIPT"
27
+ echo " --port 8080 \\" >> "$START_SCRIPT"
28
+ echo " --host 0.0.0.0 \\" >> "$START_SCRIPT"
29
+ echo " -c 4096 \\" >> "$START_SCRIPT"
30
+ echo " -ngl 999 \\" >> "$START_SCRIPT"
31
+ echo " --threads 8 \\" >> "$START_SCRIPT"
32
+ echo ' > "logs/llama_server.log" 2>&1 &' >> "$START_SCRIPT"
33
+ echo 'echo $! > "server/server.pid"' >> "$START_SCRIPT"
34
+ chmod +x "$START_SCRIPT"
35
+ info "Script de démarrage du serveur créé."
36
+
37
+ # Étape 4: Création du script d'arrêt du serveur
38
+ info "Étape 4: Création du script d'arrêt du serveur..."
39
+ STOP_SCRIPT="server/stop_server.sh"
40
+ echo '#!/bin/bash' > "$STOP_SCRIPT"
41
+ echo 'PID_FILE="server/server.pid"' >> "$STOP_SCRIPT"
42
+ echo 'if [ -f "$PID_FILE" ]; then' >> "$STOP_SCRIPT"
43
+ echo ' PID=$(cat "$PID_FILE")' >> "$STOP_SCRIPT"
44
+ echo ' kill $PID' >> "$STOP_SCRIPT"
45
+ echo ' rm "$PID_FILE"' >> "$STOP_SCRIPT"
46
+ echo ' echo "Serveur llama.cpp arrêté."' >> "$STOP_SCRIPT"
47
+ echo 'else' >> "$STOP_SCRIPT"
48
+ echo ' echo "Aucun PID de serveur trouvé."' >> "$STOP_SCRIPT"
49
+ echo 'fi' >> "$STOP_SCRIPT"
50
+ chmod +x "$STOP_SCRIPT"
51
+ info "Script d'arrêt du serveur créé."
52
+
53
+ # Étape 5: Lancement de l'application Streamlit
54
+ info "Étape 5: Lancement de l'application Streamlit..."
55
+ streamlit run app.py