OPENCLAW2 / README.md
Lory0000's picture
Upload 3 files
1d58a71 verified
#!/bin/bash
# ============================================================
# Script di avvio OpenClaw per Hugging Face Spaces
# ============================================================
set -euo pipefail
CONFIG_DIR="${HOME}/.openclaw"
CONFIG_FILE="${CONFIG_DIR}/openclaw.json"
LOG_FILE="${CONFIG_DIR}/startup.log"
echo "🦞 Avvio OpenClaw su Hugging Face Spaces..."
echo " Porta: ${OPENCLAW_GATEWAY_PORT:-7860}"
echo " Modello: ${OPENCLAW_MODEL:-groq/llama-3.3-70b-versatile}"
echo ""
# Crea directory se non esiste
mkdir -p "${CONFIG_DIR}/workspace"
# ─── Determina quale provider/modello usare ─────────────────
MODEL="${OPENCLAW_MODEL:-}"
if [ -z "$MODEL" ]; then
if [ -n "${GROQ_API_KEY:-}" ]; then
MODEL="groq/llama-3.3-70b-versatile"
elif [ -n "${GOOGLE_API_KEY:-}" ]; then
MODEL="google/gemini-2.0-flash-lite"
elif [ -n "${ANTHROPIC_API_KEY:-}" ]; then
MODEL="anthropic/claude-haiku-4-5-20251001"
elif [ -n "${OPENAI_API_KEY:-}" ]; then
MODEL="openai/gpt-4o-mini"
else
echo "⚠️ ATTENZIONE: Nessuna API key trovata nei Secrets!"
echo " Aggiungi GROQ_API_KEY (gratuita) nelle impostazioni della Space."
echo " Avvio comunque OpenClaw, ma le richieste AI falliranno."
MODEL="groq/llama-3.3-70b-versatile"
fi
fi
echo "βœ… Modello selezionato: $MODEL"
# ─── Scrivi configurazione openclaw.json ────────────────────
cat > "${CONFIG_FILE}" << JSONEOF
{
"gateway": {
"port": ${OPENCLAW_GATEWAY_PORT:-7860},
"bind": "${OPENCLAW_GATEWAY_BIND:-0.0.0.0}",
"token": "${OPENCLAW_TOKEN:-openclaw-hf-token}"
},
"agent": {
"model": "${MODEL}"
},
"agents": {
"defaults": {
"sandbox": {
"mode": "off"
}
}
}
}
JSONEOF
echo "βœ… Configurazione scritta in ${CONFIG_FILE}"
# ─── Esporta variabili per i provider AI ────────────────────
# OpenClaw legge le API key dall'ambiente
export GROQ_API_KEY="${GROQ_API_KEY:-}"
export GOOGLE_API_KEY="${GOOGLE_API_KEY:-}"
export ANTHROPIC_API_KEY="${ANTHROPIC_API_KEY:-}"
export OPENAI_API_KEY="${OPENAI_API_KEY:-}"
export OPENCLAW_GATEWAY_PORT="${OPENCLAW_GATEWAY_PORT:-7860}"
export OPENCLAW_GATEWAY_BIND="${OPENCLAW_GATEWAY_BIND:-0.0.0.0}"
export OPENCLAW_TOKEN="${OPENCLAW_TOKEN:-openclaw-hf-token}"
# ─── Messaggio di benvenuto ──────────────────────────────────
echo ""
echo "═══════════════════════════════════════════════════════"
echo " 🦞 OpenClaw si sta avviando..."
echo " πŸ“‘ Gateway: http://0.0.0.0:${OPENCLAW_GATEWAY_PORT:-7860}"
echo " πŸ”‘ Token WebChat: ${OPENCLAW_TOKEN:-openclaw-hf-token}"
echo " πŸ€– Modello AI: ${MODEL}"
echo "═══════════════════════════════════════════════════════"
echo ""
echo " Per usare la WebChat:"
echo " 1. Apri l'interfaccia della Space"
echo " 2. Inserisci il token quando richiesto"
echo " 3. Inizia a chattare!"
echo ""
# ─── Avvia OpenClaw Gateway ─────────────────────────────────
# Il gateway si avvia in foreground (necessario per Docker/HF)
exec openclaw gateway