Upload 2 files
Browse files
download
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# OpenClaw config (non committare mai questi file!)
|
| 2 |
+
.openclaw/
|
| 3 |
+
*.env
|
| 4 |
+
.env*
|
| 5 |
+
!.env.example
|
| 6 |
+
|
| 7 |
+
# Node
|
| 8 |
+
node_modules/
|
| 9 |
+
npm-debug.log*
|
| 10 |
+
|
| 11 |
+
# HF
|
| 12 |
+
.cache/
|
start.sh
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
# ============================================================
|
| 3 |
+
# Script di avvio OpenClaw per Hugging Face Spaces
|
| 4 |
+
# ============================================================
|
| 5 |
+
set -euo pipefail
|
| 6 |
+
|
| 7 |
+
CONFIG_DIR="${HOME}/.openclaw"
|
| 8 |
+
CONFIG_FILE="${CONFIG_DIR}/openclaw.json"
|
| 9 |
+
LOG_FILE="${CONFIG_DIR}/startup.log"
|
| 10 |
+
|
| 11 |
+
echo "π¦ Avvio OpenClaw su Hugging Face Spaces..."
|
| 12 |
+
echo " Porta: ${OPENCLAW_GATEWAY_PORT:-7860}"
|
| 13 |
+
echo " Modello: ${OPENCLAW_MODEL:-groq/llama-3.3-70b-versatile}"
|
| 14 |
+
echo ""
|
| 15 |
+
|
| 16 |
+
# Crea directory se non esiste
|
| 17 |
+
mkdir -p "${CONFIG_DIR}/workspace"
|
| 18 |
+
|
| 19 |
+
# βββ Determina quale provider/modello usare βββββββββββββββββ
|
| 20 |
+
MODEL="${OPENCLAW_MODEL:-}"
|
| 21 |
+
|
| 22 |
+
if [ -z "$MODEL" ]; then
|
| 23 |
+
if [ -n "${GROQ_API_KEY:-}" ]; then
|
| 24 |
+
MODEL="groq/llama-3.3-70b-versatile"
|
| 25 |
+
elif [ -n "${GOOGLE_API_KEY:-}" ]; then
|
| 26 |
+
MODEL="google/gemini-2.0-flash-lite"
|
| 27 |
+
elif [ -n "${ANTHROPIC_API_KEY:-}" ]; then
|
| 28 |
+
MODEL="anthropic/claude-haiku-4-5-20251001"
|
| 29 |
+
elif [ -n "${OPENAI_API_KEY:-}" ]; then
|
| 30 |
+
MODEL="openai/gpt-4o-mini"
|
| 31 |
+
else
|
| 32 |
+
echo "β οΈ ATTENZIONE: Nessuna API key trovata nei Secrets!"
|
| 33 |
+
echo " Aggiungi GROQ_API_KEY (gratuita) nelle impostazioni della Space."
|
| 34 |
+
echo " Avvio comunque OpenClaw, ma le richieste AI falliranno."
|
| 35 |
+
MODEL="groq/llama-3.3-70b-versatile"
|
| 36 |
+
fi
|
| 37 |
+
fi
|
| 38 |
+
|
| 39 |
+
echo "β
Modello selezionato: $MODEL"
|
| 40 |
+
|
| 41 |
+
# βββ Scrivi configurazione openclaw.json ββββββββββββββββββββ
|
| 42 |
+
cat > "${CONFIG_FILE}" << JSONEOF
|
| 43 |
+
{
|
| 44 |
+
"gateway": {
|
| 45 |
+
"port": ${OPENCLAW_GATEWAY_PORT:-7860},
|
| 46 |
+
"bind": "${OPENCLAW_GATEWAY_BIND:-0.0.0.0}",
|
| 47 |
+
"token": "${OPENCLAW_TOKEN:-openclaw-hf-token}"
|
| 48 |
+
},
|
| 49 |
+
"agent": {
|
| 50 |
+
"model": "${MODEL}"
|
| 51 |
+
},
|
| 52 |
+
"agents": {
|
| 53 |
+
"defaults": {
|
| 54 |
+
"sandbox": {
|
| 55 |
+
"mode": "off"
|
| 56 |
+
}
|
| 57 |
+
}
|
| 58 |
+
}
|
| 59 |
+
}
|
| 60 |
+
JSONEOF
|
| 61 |
+
|
| 62 |
+
echo "β
Configurazione scritta in ${CONFIG_FILE}"
|
| 63 |
+
|
| 64 |
+
# βββ Esporta variabili per i provider AI ββββββββββββββββββββ
|
| 65 |
+
# OpenClaw legge le API key dall'ambiente
|
| 66 |
+
export GROQ_API_KEY="${GROQ_API_KEY:-}"
|
| 67 |
+
export GOOGLE_API_KEY="${GOOGLE_API_KEY:-}"
|
| 68 |
+
export ANTHROPIC_API_KEY="${ANTHROPIC_API_KEY:-}"
|
| 69 |
+
export OPENAI_API_KEY="${OPENAI_API_KEY:-}"
|
| 70 |
+
export OPENCLAW_GATEWAY_PORT="${OPENCLAW_GATEWAY_PORT:-7860}"
|
| 71 |
+
export OPENCLAW_GATEWAY_BIND="${OPENCLAW_GATEWAY_BIND:-0.0.0.0}"
|
| 72 |
+
export OPENCLAW_TOKEN="${OPENCLAW_TOKEN:-openclaw-hf-token}"
|
| 73 |
+
|
| 74 |
+
# βββ Messaggio di benvenuto ββββββββββββββββββββββββββββββββββ
|
| 75 |
+
echo ""
|
| 76 |
+
echo "βββββββββββββββββββββββββββββββββββββββββββββββββββββββ"
|
| 77 |
+
echo " π¦ OpenClaw si sta avviando..."
|
| 78 |
+
echo " π‘ Gateway: http://0.0.0.0:${OPENCLAW_GATEWAY_PORT:-7860}"
|
| 79 |
+
echo " π Token WebChat: ${OPENCLAW_TOKEN:-openclaw-hf-token}"
|
| 80 |
+
echo " π€ Modello AI: ${MODEL}"
|
| 81 |
+
echo "βββββββββββββββββββββββββββββββββββββββββββββββββββββββ"
|
| 82 |
+
echo ""
|
| 83 |
+
echo " Per usare la WebChat:"
|
| 84 |
+
echo " 1. Apri l'interfaccia della Space"
|
| 85 |
+
echo " 2. Inserisci il token quando richiesto"
|
| 86 |
+
echo " 3. Inizia a chattare!"
|
| 87 |
+
echo ""
|
| 88 |
+
|
| 89 |
+
# βββ Avvia OpenClaw Gateway βββββββββββββββββββββββββββββββββ
|
| 90 |
+
# Il gateway si avvia in foreground (necessario per Docker/HF)
|
| 91 |
+
exec openclaw gateway
|