jeanmarcocruz207's picture
Upload 29 files
64f7f86 verified
raw
history blame
2.16 kB
#!/bin/bash
set -euo pipefail
echo "🚀 Iniciando Llama Dev Suite PRO v5 en HF Spaces"
OLLAMA_BIN="$(command -v ollama || true)"
if [ -z "$OLLAMA_BIN" ]; then
echo "❌ No se encontró el binario de Ollama dentro del contenedor."
echo " Verifica que la imagen incluya Ollama (usa el runtime Docker o rebuild)."
exit 1
fi
LOG_FILE="/tmp/ollama.log"
echo "📡 Iniciando servidor Ollama..."
"$OLLAMA_BIN" serve > "$LOG_FILE" 2>&1 &
OLLAMA_PID=$!
cleanup() {
echo "🧹 Deteniendo procesos..."
if kill -0 "$OLLAMA_PID" >/dev/null 2>&1; then
kill "$OLLAMA_PID" >/dev/null 2>&1 || true
fi
if [ -n "${APP_PID:-}" ] && kill -0 "$APP_PID" >/dev/null 2>&1; then
kill "$APP_PID" >/dev/null 2>&1 || true
fi
}
trap cleanup EXIT
TARGET_URL="${LLAMA_DEV_OLLAMA_URL:-http://127.0.0.1:11434}"
WAIT_SECONDS="${OLLAMA_WAIT_TIMEOUT:-60}"
echo "⌛ Esperando a que Ollama escuche en ${TARGET_URL} (timeout: ${WAIT_SECONDS}s)..."
READY=0
for ((second = 1; second <= WAIT_SECONDS; second++)); do
if curl -sf "${TARGET_URL}/api/version" >/dev/null 2>&1; then
VERSION=$(curl -sf "${TARGET_URL}/api/version" | grep -o '"version":"[^"]*"' | cut -d'"' -f4)
echo "✅ Ollama está corriendo (PID: $OLLAMA_PID, versión: ${VERSION:-desconocida})"
READY=1
break
fi
if ! kill -0 "$OLLAMA_PID" >/dev/null 2>&1; then
echo "❌ El proceso de Ollama terminó inesperadamente. Logs:"
cat "$LOG_FILE"
exit 1
fi
sleep 1
done
if [ "$READY" -ne 1 ]; then
echo "❌ ERROR: Ollama no pudo iniciarse en ${WAIT_SECONDS}s."
echo "📋 Últimos logs:"
tail -n 200 "$LOG_FILE" || true
exit 1
fi
if [ -n "${OLLAMA_AUTO_PULL:-}" ]; then
echo "📥 Descargando modelo '${OLLAMA_AUTO_PULL}' en el arranque..."
if "$OLLAMA_BIN" pull "$OLLAMA_AUTO_PULL"; then
echo "✅ Modelo '${OLLAMA_AUTO_PULL}' disponible."
else
echo "⚠️ No se pudo descargar el modelo '${OLLAMA_AUTO_PULL}'. Continúo sin él."
fi
fi
if [ -n "$HF_TOKEN" ]; then
echo "🔑 Configurando acceso a modelos privados de HF..."
mkdir -p ~/.ollama
fi
echo "🎨 Iniciando aplicación Gradio..."
python -u app.py &
APP_PID=$!
wait "$APP_PID"