Spaces:
Paused
Paused
File size: 1,807 Bytes
a716923 ed62617 a716923 ed62617 a716923 ed62617 a716923 ed62617 a716923 5e90607 ed62617 a716923 ed62617 a716923 5e90607 ed62617 a716923 ed62617 a716923 | 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 | #!/bin/bash
set -e
N_CTX="${N_CTX:-4096}"; N_THREADS="${N_THREADS:-2}"
LLAMA_PORT="${LLAMA_PORT:-8080}"; PORT="${PORT:-7860}"; WORKER_ID="${WORKER_ID:-A}"
echo "[START] Omni-Nexus Worker ${WORKER_ID} (chat)"
GGUF=$(find /models -name "*.gguf" -type f | head -1)
[ -z "$GGUF" ] && { echo "[START] FATAL: sin .gguf"; ls -lah /models; exit 1; }
echo "[START] Modelo: $(du -h "$GGUF" | cut -f1)"
if ! llama-server --version >/dev/null 2>&1; then
echo "[START] FATAL: llama-server no ejecuta. Librerías:"
ldd "$(readlink -f "$(command -v llama-server)")" 2>&1 | grep -i "not found" || true
exit 1
fi
echo "[START] llama-server OK"
LOG=/tmp/llama.log; : > "$LOG"
# NOTA: se eliminaron --cache-type-k/--cache-type-v q8_0.
# Cuantizar el caché V exige --flash-attn ("V cache quantization requires
# flash_attn"), y flash-attn en CPU no aporta nada: está pensado para GPU.
# Con ctx 4096 el caché sin cuantizar ocupa ~450 MB, que sobra de los 16 GB
# del Space. No merece la pena complicarlo.
llama-server --model "$GGUF" --host 127.0.0.1 --port "$LLAMA_PORT" \
--ctx-size "$N_CTX" --threads "$N_THREADS" --n-gpu-layers 0 \
--cont-batching --parallel 1 \
2>&1 | tee "$LOG" | sed 's/^/[LLAMA] /' &
PID=$!; MAX=300; T=0
while [ $T -lt $MAX ]; do
kill -0 $PID 2>/dev/null || {
echo "[START] murió. Causa probable:"
grep -iE "error|failed|requires|cannot|unable" "$LOG" | tail -5
exit 1
}
curl -sf "http://127.0.0.1:${LLAMA_PORT}/health" >/dev/null 2>&1 && { echo "[START] ONLINE en ${T}s"; break; }
sleep 5; T=$((T+5)); [ $((T % 30)) -eq 0 ] && echo "[START] ${T}/${MAX}s..."
done
[ $T -ge $MAX ] && { echo "[START] FATAL: timeout"; tail -20 "$LOG"; exit 1; }
exec uvicorn server:app --host 0.0.0.0 --port "$PORT" --workers 1 --log-level info
|