#!/usr/bin/env bash # Lädt das Standardmodell und erstellt die römischen Berater (Ollama) sowie Beispiel-Workflows (n8n). set -euo pipefail log() { printf '\033[1;33m[ROMAN]\033[0m %s\n' "$*"; } warn() { printf '\033[1;33m[HINWEIS]\033[0m %s\n' "$*"; } fail() { printf '\033[1;31m[FEHLER]\033[0m %s\n' "$*"; exit 1; } # shellcheck disable=SC1091 . ./.env model="${DEFAULT_MODEL:-gemma3:4b}" dc() { sudo docker compose "$@"; } log "Warte auf Ollama ..." ready=0 for _ in $(seq 1 60); do if dc exec -T ollama ollama list >/dev/null 2>&1; then ready=1; break; fi sleep 2 done [ "$ready" = "1" ] || fail "Ollama wurde nicht rechtzeitig bereit — 'sudo docker compose logs ollama' zeigt Details." log "Lade Sprachmodell $model (beim ersten Mal dauert das einige Minuten) ..." dc exec -T ollama ollama pull "$model" for mf in agents/modelfiles/*.Modelfile; do [ -e "$mf" ] || continue name="$(basename "$mf" .Modelfile | tr '[:upper:]' '[:lower:]')" log "Erstelle Berater: $name" tmp="$(mktemp)" sed "s|{{MODEL}}|$model|g" "$mf" > "$tmp" dc cp "$tmp" ollama:/tmp/roman.Modelfile dc exec -T ollama ollama create "$name" -f /tmp/roman.Modelfile rm -f "$tmp" done for wf in agents/n8n/*.json; do [ -e "$wf" ] || continue if dc exec -T n8n n8n import:workflow --input="/workflows/$(basename "$wf")" >/dev/null 2>&1; then log "n8n-Workflow importiert: $(basename "$wf")" else warn "n8n-Workflow $(basename "$wf") konnte nicht automatisch importiert werden — in n8n unter 'Import from File' nachholbar." fi done log "Berater stehen bereit: seneca, cicero, marcus"