File size: 2,661 Bytes
c41af55
e27c01a
 
 
c41af55
 
 
9d6ab7a
2df2093
c41af55
e27c01a
9d6ab7a
e27c01a
4b90830
9d6ab7a
 
 
 
 
 
 
 
 
e27c01a
9d6ab7a
e27c01a
9d6ab7a
4b90830
9d6ab7a
 
 
 
 
 
 
4b90830
 
9d6ab7a
4b90830
9d6ab7a
2df2093
9d6ab7a
2df2093
e27c01a
 
c41af55
e27c01a
c41af55
9d6ab7a
e27c01a
c41af55
e27c01a
c41af55
9d6ab7a
 
c41af55
e27c01a
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/usr/bin/env bash
# Starts HTTP server on port 7860 immediately, runs conversion in background.
# The HTTP server is the main foreground process โ€” container stays alive as
# long as it's running regardless of what the conversion does.

set -euo pipefail

mkdir -p /workspace/output /workspace/scratch
LOG_FILE="/workspace/output/conversion.log"

# Kick off the conversion pipeline in the background before anything else
(
  exec >> "$LOG_FILE" 2>&1

  echo ""
  echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•"
  echo " DeepSeek-Math-V2 GGUF Converter"
  echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•"
  echo "Date   : $(date)"
  echo "Disk   : $(df -h /workspace | tail -1)"
  echo "Memory : $(free -h | grep Mem)"
  echo ""

  # Build llama-quantize if not present
  if ! command -v llama-quantize &>/dev/null; then
    echo "Building llama-quantize (~2 min)..."
    cd /opt/llama.cpp
    cmake -B build \
      -DCMAKE_BUILD_TYPE=Release \
      -DLLAMA_NATIVE=OFF \
      -DBUILD_SHARED_LIBS=OFF \
      -DLLAMA_BUILD_TESTS=OFF \
      -DLLAMA_BUILD_EXAMPLES=OFF \
      -DLLAMA_BUILD_SERVER=OFF \
      2>&1 | tail -3
    cmake --build build --config Release --target llama-quantize -j$(nproc)
    install -m 755 build/bin/llama-quantize /usr/local/bin/llama-quantize
    echo "llama-quantize ready"
    cd /workspace
  fi

  bash /workspace/scripts/convert.sh

  if [[ $? -eq 0 ]]; then
    echo ""
    echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•"
    echo " โœ” Conversion complete! Container staying alive."
    echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•"
  else
    echo ""
    echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•"
    echo " โœ˜ Conversion FAILED. Container staying alive."
    echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•"
  fi
) &

# Start the HTTP status server in the FOREGROUND โ€” this is PID 1's main job.
# Container lives exactly as long as this process lives.
exec python3 /workspace/scripts/status_server.py "$LOG_FILE"