Spaces:
Paused
Paused
File size: 4,424 Bytes
7509dd0 b5338ac 7509dd0 b5338ac 7509dd0 b5338ac 7509dd0 b5338ac 7509dd0 b5338ac 7509dd0 b5338ac 7509dd0 b5338ac 7509dd0 b5338ac 7509dd0 | 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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 | #!/bin/bash
set -e
echo "[boot] Pulling OpenClaw state..."
python3 -c "
import sys, os; sys.path.insert(0, '/app')
HF_TOKEN = os.environ.get('HF_TOKEN', '')
DATASET_REPO = os.environ.get('OPENCLAW_DATASET_REPO', '')
if HF_TOKEN and DATASET_REPO:
from huggingface_hub import hf_hub_download
from huggingface_hub.utils import EntryNotFoundError
for fname in ['openclaw.json', 'SOUL.md']:
try:
hf_hub_download(repo_id=DATASET_REPO, filename=f'openclaw/{fname}',
repo_type='dataset', token=HF_TOKEN,
local_dir='/root', local_dir_use_symlinks=False)
print(f' pulled openclaw/{fname}')
except EntryNotFoundError: pass
except Exception as e: print(f' {e}')
"
echo "[boot] Configuring OpenClaw..."
mkdir -p ~/.openclaw
cat > ~/.openclaw/openclaw.json << JSONEOF
{
"gateway": {"port": 8080, "bind": "0.0.0.0"},
"identity": {"name": "YT Pipeline Assistant"},
"channels": {
"telegram": {
"enabled": true,
"botToken": "${TELEGRAM_BOT_TOKEN}",
"dmPolicy": "pairing"
}
},
"models": {
"providers": {
"ollama": {
"baseUrl": "http://127.0.0.1:11434/v1",
"apiKey": "ollama-local",
"api": "openai-chat",
"models": [
{
"id": "deepcoder-14b",
"name": "DeepCoder 14B IQ2_XS (CoT + 128K)",
"contextWindow": 131072,
"maxTokens": 8192
}
]
}
}
},
"agents": {
"defaults": {
"model": {"primary": "ollama/deepcoder-14b"},
"workspace": "/app/yt-flow"
}
}
}
JSONEOF
[ -f /app/SOUL.md ] && cp /app/SOUL.md ~/.openclaw/SOUL.md
git config --global user.name "YT Pipeline Bot"
git config --global user.email "yt-pipe-bot@hf.space"
git clone https://arshitmalik:${HF_TOKEN}@huggingface.co/spaces/arshitmalik/yt-flow /app/yt-flow 2>/dev/null || true
cat > /tmp/backup.sh << 'CRONEOF'
#!/bin/bash
python3 -c "
import os, sys; sys.path.insert(0, '/app')
HF_TOKEN = os.environ.get('HF_TOKEN', '')
DATASET_REPO = os.environ.get('OPENCLAW_DATASET_REPO', '')
if not HF_TOKEN or not DATASET_REPO: sys.exit(0)
from huggingface_hub import HfApi
api = HfApi(token=HF_TOKEN)
from pathlib import Path
for f in Path('/root/.openclaw').glob('*'):
if f.is_file():
try:
api.upload_file(
path_or_fileobj=str(f),
path_in_repo=f'openclaw/{f.name}',
repo_id=DATASET_REPO,
repo_type='dataset'
)
except Exception as e: pass
" 2>/dev/null
CRONEOF
chmod +x /tmp/backup.sh
echo "*/15 * * * * /tmp/backup.sh" | crontab -
python3 -c "
from http.server import HTTPServer, BaseHTTPRequestHandler
class H(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200); self.end_headers(); self.wfile.write(b'ok')
HTTPServer(('0.0.0.0', 8080), H).serve_forever()
" &
HEALTH_PID=$!
echo "[boot] Starting nginx..."
nginx
echo "[boot] Starting Ollama..."
export OLLAMA_FLASH_ATTENTION=1
export OLLAMA_KV_CACHE_TYPE=q4_0
OLLAMA_HOST=127.0.0.1 OLLAMA_NUM_PARALLEL=1 OLLAMA_MAX_LOADED_MODELS=1 ollama serve &
for i in $(seq 1 30); do
if curl -sf http://127.0.0.1:11434/api/tags > /dev/null 2>&1; then
echo "[boot] Ollama ready after ${i}s"; break
fi
sleep 2
done
echo "[boot] Building DeepCoder 14B IQ2_XS model..."
python3 << PYEOF
import subprocess, sys, os
from pathlib import Path
from huggingface_hub import hf_hub_download
gguf_path = hf_hub_download(
repo_id="bartowski/DeepCoder-14B-Preview-GGUF",
filename="DeepCoder-14B-Preview-IQ2_XS.gguf",
local_dir="/tmp/gguf",
resume_download=True,
token=os.environ.get("HF_TOKEN", None)
)
modelfile = f"""FROM {gguf_path}
TEMPLATE \"\"\"<|im_start|>system
{{ .System }}<|im_end|>
<|im_start|>user
{{ .Prompt }}<|im_end|>
<|im_start|>assistant
\"\"\"
PARAMETER stop "<|im_start|>"
PARAMETER stop "<|im_end|>"
PARAMETER temperature 0.6
PARAMETER num_ctx 131072
PARAMETER num_predict 8192
"""
(Path("/tmp") / "Modelfile").write_text(modelfile)
subprocess.run(["ollama", "create", "deepcoder-14b", "-f", "/tmp/Modelfile"], check=True)
Path(gguf_path).unlink()
PYEOF
kill $HEALTH_PID 2>/dev/null
echo "[boot] Starting OpenClaw gateway..."
openclaw gateway &
OPENCLAW_PID=$!
echo "[boot] Deployment complete. PID: $OPENCLAW_PID"
wait $OPENCLAW_PID 2>/dev/null
sleep infinity
|