planner-llm / start.sh
aphisit.t
production deploy
3f41f74
Raw
History Blame Contribute Delete
2.66 kB
#!/usr/bin/env bash
set -euo pipefail
########################################
# Defaults
########################################
PORT="${PORT:-7860}"
HOST="${HOST:-0.0.0.0}"
CTX_SIZE="${CTX_SIZE:-2048}"
THREADS="${THREADS:-2}"
N_GPU_LAYERS="${N_GPU_LAYERS:-0}"
MODEL_REPO_ID="${MODEL_REPO_ID:-bldeaw/m1_planner_q4_k_m}"
MODEL_FILE="${MODEL_FILE:-m1_planner_q4_k_m.gguf}"
MODEL_REVISION="${MODEL_REVISION:-main}"
HF_TOKEN="${HF_TOKEN:-}"
# persistent path (HF Storage Bucket mount)
MODEL_DIR="${MODEL_DIR:-/data/models}"
# optional checksum
MODEL_SHA256="${MODEL_SHA256:-}"
########################################
# Validate config
########################################
if [[ -z "$MODEL_REPO_ID" ]]; then
echo "ERROR: MODEL_REPO_ID missing"
exit 1
fi
if [[ -z "$MODEL_FILE" ]]; then
echo "ERROR: MODEL_FILE missing"
exit 1
fi
mkdir -p "$MODEL_DIR"
MODEL_PATH="$MODEL_DIR/$MODEL_FILE"
########################################
# Download model if missing
########################################
download_model() {
URL="https://huggingface.co/${MODEL_REPO_ID}/resolve/${MODEL_REVISION}/${MODEL_FILE}"
echo "Downloading model..."
echo "Repo : $MODEL_REPO_ID"
echo "File : $MODEL_FILE"
echo "Revision : $MODEL_REVISION"
if [[ -n "$HF_TOKEN" ]]; then
curl -L \
--retry 5 \
--retry-delay 5 \
-H "Authorization: Bearer ${HF_TOKEN}" \
"$URL" \
-o "$MODEL_PATH"
else
curl -L \
--retry 5 \
--retry-delay 5 \
"$URL" \
-o "$MODEL_PATH"
fi
}
if [[ ! -f "$MODEL_PATH" ]]; then
download_model
else
echo "Model already exists: $MODEL_PATH"
fi
########################################
# Verify checksum (optional)
########################################
if [[ -n "$MODEL_SHA256" ]]; then
echo "Verifying checksum..."
ACTUAL=$(sha256sum "$MODEL_PATH" | awk '{print $1}')
if [[ "$ACTUAL" != "$MODEL_SHA256" ]]; then
echo "ERROR: checksum mismatch"
echo "Expected: $MODEL_SHA256"
echo "Actual : $ACTUAL"
exit 1
fi
fi
########################################
# Info
########################################
echo "===================================="
echo "Model Path : $MODEL_PATH"
echo "Context Size : $CTX_SIZE"
echo "Threads : $THREADS"
echo "GPU Layers : $N_GPU_LAYERS"
echo "Port : $PORT"
echo "===================================="
########################################
# Start server
########################################
exec /app/llama-server \
--model "$MODEL_PATH" \
--host "$HOST" \
--port "$PORT" \
--ctx-size "$CTX_SIZE" \
--threads "$THREADS" \
--n-gpu-layers "$N_GPU_LAYERS"