AIencoder commited on
Commit
03657b8
·
verified ·
1 Parent(s): c3b6ec8

Update start.sh

Browse files
Files changed (1) hide show
  1. start.sh +46 -37
start.sh CHANGED
@@ -1,69 +1,78 @@
1
  #!/bin/bash
2
-
3
- # Stop the script if any command fails
4
  set -e
5
 
6
  # --- CONFIGURATION ---
7
- # REMOVED SPACE AFTER =
8
- MODE="${MODEL_TYPE:-CODER}"
9
-
10
  echo "------------------------------------------------"
11
- echo "🛠️ Starting Space in [ $MODE ] mode"
12
  echo "------------------------------------------------"
13
 
14
- # Define Models - REMOVED SPACES AFTER =
15
- CODER_REPO="Qwen/Qwen2.5-Coder-14B-Instruct-GGUF"
16
- CODER_FILE="qwen2.5-coder-14b-instruct-q4_k_m.gguf"
17
-
18
- VISION_REPO="Qwen/Qwen2.5-VL-7B-Instruct-GGUF"
19
- VISION_FILE="qwen2.5-vl-7b-instruct-q4_k_m.gguf"
20
 
21
- # Function to download
22
- download_if_needed() {
23
  REPO_ID=$1
24
  FILENAME=$2
25
- FILE_PATH="/app/$FILENAME"
 
 
 
 
 
 
 
26
 
27
  if [ -f "$FILE_PATH" ]; then
28
- echo "✅ Found existing model: $FILENAME"
29
  else
30
- echo "⬇️ Model not found. Downloading $FILENAME ..."
31
  python3 -c "
32
  from huggingface_hub import hf_hub_download
33
  import sys
34
  try:
35
- hf_hub_download(repo_id='$REPO_ID', filename='$FILENAME', local_dir='/app')
 
 
 
 
 
 
 
 
 
36
  print('Download successful.')
37
  except Exception as e:
38
  print(f'Error: {e}')
39
- sys.exit(1)
40
  "
41
  fi
42
  }
43
 
44
- # --- SELECTION LOGIC ---
45
- if [ "$MODE" = "VISION" ]; then
46
- download_if_needed "$VISION_REPO" "$VISION_FILE"
47
- MODEL_PATH="/app/$VISION_FILE"
48
- CONTEXT=4096
49
- else
50
- # Default to Coder
51
- download_if_needed "$CODER_REPO" "$CODER_FILE"
52
- MODEL_PATH="/app/$CODER_FILE"
53
- CONTEXT=8192
54
- fi
 
 
 
 
55
 
56
  echo "------------------------------------------------"
57
- echo "🚀 Launching Llama.cpp Server..."
58
- echo "Model: $MODEL_PATH"
59
- echo "Context: $CONTEXT"
60
  echo "------------------------------------------------"
61
 
62
- # Run Server
63
- # Updated to use absolute path to match your Dockerfile setup
64
  exec /usr/local/bin/llama-server \
65
- -m "$MODEL_PATH" \
 
66
  --host 0.0.0.0 \
67
  --port 7860 \
68
- -c $CONTEXT \
69
  --n-gpu-layers 0
 
1
  #!/bin/bash
 
 
2
  set -e
3
 
4
  # --- CONFIGURATION ---
 
 
 
5
  echo "------------------------------------------------"
6
+ echo "🛠️ Setting up Multi-Model Environment"
7
  echo "------------------------------------------------"
8
 
9
+ # Create a dedicated directory for all models
10
+ mkdir -p /app/models
 
 
 
 
11
 
12
+ # Function to download models
13
+ download_model() {
14
  REPO_ID=$1
15
  FILENAME=$2
16
+ # We rename it locally to make it easier to read in the UI
17
+ LOCAL_NAME=$3
18
+
19
+ if [ -z "$LOCAL_NAME" ]; then
20
+ LOCAL_NAME="$FILENAME"
21
+ fi
22
+
23
+ FILE_PATH="/app/models/$LOCAL_NAME"
24
 
25
  if [ -f "$FILE_PATH" ]; then
26
+ echo "✅ Found existing model: $LOCAL_NAME"
27
  else
28
+ echo "⬇️ Downloading $LOCAL_NAME from $REPO_ID ..."
29
  python3 -c "
30
  from huggingface_hub import hf_hub_download
31
  import sys
32
  try:
33
+ hf_hub_download(
34
+ repo_id='$REPO_ID',
35
+ filename='$FILENAME',
36
+ local_dir='/app/models',
37
+ local_dir_use_symlinks=False
38
+ )
39
+ # Rename if needed (hf_hub_download saves as original filename)
40
+ import os
41
+ if '$FILENAME' != '$LOCAL_NAME':
42
+ os.rename('/app/models/$FILENAME', '/app/models/$LOCAL_NAME')
43
  print('Download successful.')
44
  except Exception as e:
45
  print(f'Error: {e}')
 
46
  "
47
  fi
48
  }
49
 
50
+ # 1. TEXT / CODE MODEL (Qwen 2.5 Coder 14B)
51
+ download_model "Qwen/Qwen2.5-Coder-14B-Instruct-GGUF" \
52
+ "qwen2.5-coder-14b-instruct-q4_k_m.gguf"
53
+
54
+ # 2. IMAGE / VISION MODEL (Qwen 2.5 VL 7B)
55
+ # Note: Newer llama.cpp versions often bundle the projector, but sometimes separate mmproj is needed.
56
+ # We will download the main model file.
57
+ download_model "Qwen/Qwen2.5-VL-7B-Instruct-GGUF" \
58
+ "qwen2.5-vl-7b-instruct-q4_k_m.gguf"
59
+
60
+ # 3. AUDIO MODEL (Qwen 2 Audio 7B)
61
+ # Note: Support for Audio models in llama-server is experimental but available in newer builds
62
+ download_model "Qwen/Qwen2-Audio-7B-Instruct-GGUF" \
63
+ "qwen2-audio-7b-instruct-q4_k_m.gguf"
64
+
65
 
66
  echo "------------------------------------------------"
67
+ echo "🚀 Launching Llama.cpp Server in Multi-Model Mode..."
 
 
68
  echo "------------------------------------------------"
69
 
70
+ # We point --models-path to the folder. The server will auto-discover the GGUFs.
71
+ # The UI should then allow you to pick which model to use.
72
  exec /usr/local/bin/llama-server \
73
+ --model-url-path "" \
74
+ --models-path "/app/models" \
75
  --host 0.0.0.0 \
76
  --port 7860 \
77
+ -c 8192 \
78
  --n-gpu-layers 0