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