← Zurueck zum Blog
ollamallmkinext-jspm2automatisierungself-hosted

Lokales LLM statt OpenAI — Teaser-Generierung mit Ollama auf dem Mac

Marco Carstensen·8. März 2026·2 Min. Lesezeit

Die KI-generierten X.com-Teaser fuer macip.de liefen bisher ueber die OpenAI API (GPT-4o-mini). Das funktioniert, kostet aber bei jedem Aufruf Geld. Die Loesung: Ein lokales LLM auf dem Mac Laptop — kostenlos, privat und ueberraschend schnell.

Alle Features, den Tech-Stack und die Architektur gibt es auf der Projektseite →

Die Architektur

Das System besteht aus zwei Maschinen im lokalen Netzwerk:

macip.de Server (<server-ip>)        Mac Laptop (<mac-ip>)
┌──────────────────────────┐          ┌────────────────────────┐
│  Blog-Editor                             │          │                local-ai :3100   │
│  share-x Route                           │─HTTP─►│                 /api/health           │
│  teaser-worker (PM2)                     │─HTTP─►│                 /api/generate         │
│                                          │          │                                      │
│  PostgreSQL                              │          │                Ollama :11434         │
│  (blog_posts)                            │          │                qwen2.5:7b (4.7 GB)   │
└──────────────────────────┘          └────────────────────────┘

Der Mac ist nicht immer im selben LAN wie der Server. Deshalb brauchte es ein Queue-System: Wenn der Mac erreichbar ist, wird sofort generiert. Wenn nicht, kommt der Auftrag in die Warteschlange und wird verarbeitet, sobald der Mac wieder da ist.

RAM-Management mit keep_alive

Ein 7B-Modell belegt etwa 4.7 GB RAM. Der Mac hat 36 GB, aber das Modell soll nicht dauerhaft im Speicher liegen. Mit Olamas keep_alive: 5m bleibt es nach einem Request 5 Minuten im RAM und entlaedt sich dann automatisch. Ollama laeuft als Daemon ueber brew services, das Modell wird nur bei Bedarf geladen.

PM2 im fork-Mode

Ein Detail das beim Debugging viel Zeit gekostet hat: Der teaser-worker muss im fork-Mode laufen. Im cluster-Mode (PM2-Default) produziert tsx keine Log-Ausgabe — ein stilles Scheitern, das schwer zu diagnostizieren ist.

Ergebnis

Das System laeuft seit dem Umbau stabil:

  • Kosten: 0 Euro statt OpenAI API-Gebuehren
  • Generierungsdauer: 5-10 Sekunden (qwen2.5:7b, Apple Silicon)
  • Verfuegbarkeit: Automatische Queue wenn Mac offline
  • RAM: Modell entlaedt sich nach 5 Minuten automatisch
  • Qualitaet: Die generierten Teaser sind vergleichbar mit GPT-4o-mini

Der groesste Vorteil neben den Kosten: Die Daten verlassen nie das lokale Netzwerk.

Fazit

Fuer spezialisierte Aufgaben wie Teaser-Generierung sind lokale 7B-Modelle eine echte Alternative zu Cloud-APIs. Die Qualitaet reicht aus, die Laufzeit ist akzeptabel, und mit einem Queue-System loest sich auch die intermittierende Verfuegbarkeit eines Laptops. Der einzige Nachteil: Man braucht genuegend RAM — aber auf einem modernen Mac mit 36 GB ist das kein Problem.

Das Repo ist Open Source: utfcmac/local-ai

→ Zur Projektseite