#!/usr/bin/env bash # Lädt das warme "brains"-Set nach einem llama-swap-(Re)Start vor, damit die ERSTE # Anfrage nicht kalt ist (llama-swap lädt sonst lazy bei Bedarf). # Eingehängt als ExecStartPost=-/usr/local/bin/llama-swap-warmup.sh in llama-swap. # # `fast` = das Agent-Hirn (Qwen3.6-35B-A3B); Pingen eines brains-Gruppen-Mitglieds lädt die # ganze (ko-residente) Gruppe. Selbst-detachend: blockiert den Service-Start nicht. set -u URL="${MC_LLAMA_SWAP_URL:-http://127.0.0.1:8080}" BRAINS="${MC_WARMUP_MODELS:-fast}" if [ "${1:-}" != "--inner" ]; then setsid "$0" --inner >/dev/null 2>&1 & exit 0 fi # --- ab hier im entkoppelten Hintergrundprozess --- for _ in $(seq 1 60); do # auf llama-swap warten (max ~120s) curl -sf "$URL/v1/models" >/dev/null 2>&1 && break sleep 2 done for m in $BRAINS; do curl -s -m 180 -X POST "$URL/v1/chat/completions" \ -H 'Content-Type: application/json' \ -d "{\"model\":\"$m\",\"max_tokens\":1,\"messages\":[{\"role\":\"user\",\"content\":\"ping\"}]}" \ >/dev/null 2>&1 || true done