Auf dieser Seite: Schmerzpunkte · Matrix UI vs. API · Deployment · Routing · Beobachtbarkeit · Abnahmeliste · FAQ
Reproduzierbare Kriterien für Apple-Silicon-Hosts mit UI- und Batch-Traffic. Ergänzt lokale LLM-Observability, Multi-Modell-Routing und AutoGen-Gateway-Muster; Einstieg über die Startseite.
Drei Schmerzpunkte vor dem produktiven Rollout
1. Sitzungs-Kollision: UI warmhält Kontext; parallele API-Clients erzeugen KV-Cache-Verdrängung und schwankendes TTFT. 2. Token-Vermischung: Admin- und Chat-Bearer in derselben Variable — Proxys loggen Geheimnisse mit. 3. Kosten-Blindheit: ohne TPM- oder Stunden-Deckel leert ein Retriever-Schleifenpfad den Knoten trotz weniger aktiver UI-Nutzer.
Entscheidungsmatrix: OpenWebUI-Schicht versus direkter Ollama-OpenAI-Pfad
| Kriterium | OpenWebUI (interaktiv) | Ollama /v1 OpenAI-kompatibel (automatisiert) |
|---|---|---|
| Hauptziel | Mehrbenutzer-Chat, Rollen, RAG-Plugins | Skripte, Agents, CI-Evals mit stabilem Schema |
| Konkurrenz-Slots | HTTP-Sessions plus WebSocket-Kanäle begrenzen | Semaphore je Modell-ID und Queue-Tiefe am Proxy |
| Routing | Intern oft OLLAMA_BASE_URL zum Host | Direkte /v1/chat/completions mit Alias-Mapping |
| AuthZ | UI-Login, API-Keys pro Arbeitsbereich | Bearer nur für Maschinenkonten, getrennt vom UI-Admin |
| Breaker-Logik | Browser-Feedback, manuelle Pause | Zähler für 429, 5xx, Hangs mit Cool-down-Fenster |
| Kostensignal | Nutzerminuten und Modellwahl sichtbar | Token-Zähler, GPU-Zeit, Stundensatz des Knotens |
| Abnahme-Fokus | UX-Latenzen, Berechtigungsmatrix | Determinismus, Retry-Idempotenz, Log-Redaktion |
Deployment: Baseline auf dem Mac oder Remote-Knoten
Minimiert Drift zwischen Laptop und Miet-Mac; jeder Schritt liefert ein Abnahme-Artefakt.
- Runtime isolieren. Ollama als Dienst mit festem
OLLAMA_HOST; kein heimliches Teilen von Unix-Sockets mit OpenWebUI. - Modellkatalog einfrieren.
ollama listexportieren, GGUF-Hashes dokumentieren; Änderungen nur per Ticket. - OpenWebUI versionieren. Admin-Flags, Embedding-Router, Tool-Allowlists als IaC, nicht nur im Panel.
- Reverse-Proxy. TLS, Request-ID, Header nur auf API-Pfad — gleiche Korrelation für Tools und Clients.
- Concurrency-Slots. z. B. vier Chat- und acht API-Completions aus RAM-Spitzen pro Modell ableiten.
- Secrets trennen. UI-Admin, Chat-API, Maschinen-Bearer — je
chmod 0400-Datei. - Smoke-Test. Zwei UI-Sitzungen, zehn
curl /v1/models, eine Chat-Completion; p95 loggen.
| Parameter | Empfohlener Startwert (M4 24 GB) | Messgröße | Maßnahme bei Überschreitung |
|---|---|---|---|
| Chat-Slots UI | 3–5 parallel | TTFT p95 | Warteschlange oder kleineres Draft-Modell |
| API-Slots | 6–10 | Queue-Tiefe | 429 mit Retry-After und lokaler Zähler |
| Admin-Token-Rotation | 30–90 Tage | Audit-Log | Automatischer Rollout ohne Downtime-Fenster |
| Breaker-Fenster | 60 s Cool-down | ≥5 Fehler in 30 s | Schaltkreis öffnen, UI-Hinweis |
| Kostenschwelle | z. B. 12 €/h Knotenbudget | kumulierte Tokens/h | Hard-Stop für Batch-Jobs, Chat drosseln |
Routing: OpenAI-kompatibel, aber nicht OpenAI-identisch
Ollama deckt nur einen Teil der OpenAI-Oberfläche ab; Felder, Fehlercodes und Modellstrings differieren. Kanonische Alias-Tabelle für UI und Agenten — vergleichbar LiteLLM plus OpenClaw, ohne dieselbe Software zu erzwingen.
- Modell-ID: UI-Name und API-
modelmappen; CI-PreflightGET /v1/models. - Streaming: SSE und Abbruch testen; puffende Middleware macht Breaker träge.
- Tool-Calling: nur bei verlässlicher Ollama-/Modell-Kombination; sonst Flags in OpenWebUI.
# Beispiel: Bearer nur für Automatisierung, nie im Browser-Storage
export OLLAMA_API_KEY_FILE=/etc/llm/machine.token
curl -sS -H "Authorization: Bearer $(sudo cat $OLLAMA_API_KEY_FILE)" \
http://127.0.0.1:11434/v1/models | jq '.data[].id'Beobachtbarkeit: Metriken, Kosten und Sicherheitsnachweise
Mindestens RPM, TPM, Fehlerquote, GPU-Auslastung je Route. Zusätzlich OTLP oder Felder aus dem OpenTelemetry-GenAI-Artikel für vergleichbare Remote- und On-Prem-Knoten.
- Kosten-Deckel: Miete plus Stromspitze gegen Token-Durchsatz; Überschreitung = Job-Stopp, nicht nur Warnfarbe.
- Audit: Rollenänderungen mit Zeitstempel und Quell-IP.
- Stabilität: Thermik-Drossel separat zählen — TTFT-Noise ohne Routing-Schuld.
Abnahmeliste vor Produktion auf dem Remote-Mac
Die Liste ist bewusst knapp gehalten, damit sie in Change-Tickets abgehakt werden kann.
- Alle Konkurrenz-Slots dokumentiert und im Proxy erzwungen; Lasttest mit gemischtem UI- und API-Traffic grün.
- API-Routing gegen Kanon getestet; keine verwaisten Modell-Aliase in OpenWebUI.
- Auth-Tokens dreifach getrennt, Rotation getestet, keine Klartext-Keys in Container-Logs.
- Breaker simuliert: künstliche 503-Serie öffnet Schaltkreis, UI zeigt verständliche Meldung, Automatisierung erhält typisiertes JSON.
- Kostenschwellen mit realistischen Token-Preisen ausgewiesen; Eskalationspfad bei Überschreitung definiert.
- Rollback: vorherige Modell- und Konfigurations-Hashes in unter fünf Minuten wiederherstellbar.
FAQ
Ein Ollama-Prozess für UI und API? Für kleine Teams oft ja; nachts laufende Evals brauchen getrennte Queues oder Hosts, sonst kollidieren Breaker und UX.
Direktverbindung UI→Ollama? Optional; Proxy bündelt Limits und Auth, kostet p95-Latenz — einplanen.
Agenten? Gleiche Token- und Breaker-Regeln wie in CrewAI-Gateway; Laufzeit egal, Disziplin nicht.
Zitierfähige Kennzahlen für Architektur-Reviews:
- Vier bis zehn gleichzeitige Completions als typischer Sweet-Spot auf 24 GB Unified Memory bei 7B–8B-Quantisierungen, sofern keine zweite große Anwendung RAM beansprucht.
- Fünf aufeinanderfolgende Upstream-Fehler innerhalb von dreißig Sekunden als konservativer Breaker-Startpunkt vor dauerhaftem Schaltkreis.
- Drei Geheimnis-Klassen als Mindeststandard für jeden Knoten mit OpenWebUI plus API-Zugriff.
Produktiv gilt: Remote-Mac wie eigene Zone — Laborparameter, realer Stundensatz, ehrliche Observability. Mehr im Tech-Blog und auf der Startseite.
Verwandte Artikel: Lokale LLM-Observability, Multi-Modell-Routing, AutoGen auf Remote-Mac.