Automatische Speiseplan-Erstellung mit KI

AI-gestützter Self-Hosted Speiseplaner mit n8n & Kubernetes

Projektüberblick

Dieses Projekt automatisiert die wöchentliche Speiseplanung mithilfe eines selbst gehosteten n8n-Workflows, der auf unserem privaten Kubernetes-Cluster betrieben wird.
Über die Tandoor Recipes API werden Rezepte abgefragt, an eine strukturierte Prompt in ChatGPT übergeben und als vollständiger Wochenplan generiert.

Das System ist bis auf das LLM lokal betrieben und zeigt, wie KI-Automatisierung, API-Integration und Workflow-Orchestrierung in einer privaten Cloud-Umgebung zusammenspielen.

Ich habe das Projekt gemeinsam mit meinem Mann Florian Weinzettl (Senior SysAdmin & DevOps Engineer) umgesetzt. Er war der Systemarchitekt und mein technischer Sparringspartner.

Der Workflow wird derzeit im Creator Portal von n8n reviewt. Nach der Freischaltung sollte er hier abrufbar sein.

Eine Abbildung des kompletten Workflows zur Erstellung eines komplexen Speiseplanes für Kinder und Erwachsene mit KI aus Tandoor Recipes

Abbildung des kompletten Workflows in n8n


Aufbau & Funktionsweise

✔ API-Integration

Der Workflow holt Rezepte aus Tandoor Recipes, unserer selbst gehosteten Rezeptverwaltung.

✔ Strukturierte Prompt-Generierung

Die Daten werden an eine definierte ChatGPT-Prompt übergeben, in der ich Parameter festlege wie:
– Anzahl der Mahlzeiten und für wie viele Tage der Speiseplan erstellt werden soll
– Ernährungswünsche der Kinder
– Zeitrestriktionen
– bevorzugte Zutaten
– welche Eigenschaften die Rezepte an bestimmten Wochentagen oder zu bestimmten Tageszeiten haben sollen (z. B. Dienstag Abend Low Carb)

✔ Automatisch generierter Wochenplan

ChatGPT liefert daraufhin einen vollständigen, strukturierten Speiseplan für die Woche, trägt diesen gleich in den Meal Planner von Tandoor Recipes ein. Die Zutaten für die Rezepte landen automatisch auf der Einkaufsliste. Zusätzlich werden Mails mit dem Ergebnis der Prompt per E-Mail an uns versendet.


Technische Herausforderungen und Lösungen

🔧 Interaktive Feedback-Schleifen

Anfangs war geplant, dass der Speiseplan über Telegram an uns verschickt wird und wir über Telegram zurückschreiben um unsere Änderungswünsche an die Prompt zu übergeben.

Telegram eignete sich aber nicht für Rückkanäle — Nutzer:innen können keine Änderungswünsche an den Workflow zurücksenden.

Die Lösung:

Das Ergebnis wird nur gleich über die Meal Planner API als JSON Array zurück gegeben und dort eingetragen. Falls Nachbearbeitung nötig ist, machen wir das manuell und direkt im Meal Planner von Tandoor.

🔧 Lange Ausführungszeit

Die Generierung dauerte anfangs viel zu lange.
Wir haben folgende Bottlenecks identifiziert:

  • Ein Workflow mit allen Rezepten und einer langen Prompt für die Erwachsenen Mittag- und Abendessen mit speziellen Wünschen zur Filterung inkl. zusätzlicher Kinder essen verlangsamte die Performance und ist auch nicht gut wartbar
  • Wir hatten GPT5 als Sprachmodell ausgewählt. Dieses war unnötig mächtig und braucht folglich auch länger zur Ausführung. Wir nutzen nun GPT4 mini.

🔧 Modularisierung

Der Workflow wurde schließlich in vier Sub-Workflows geteilt:

  • Kinder-Mittagessen
  • Kinder-Abendessen
  • Mittagessen
  • Abendessen

Jeder Workflow hat seine eigene Prompt, seinen eigenen Speicher für das Ergebnis. Außerdem konnte gezielter durch die Mitgabe von Parametern (z. B. gewisse Tags bei den Rezepten) gefiltert werden.

Insgesamt ist die neue Lösung mit den 4 Subworkflows nicht nur performanter, sondern auch übersichtlicher und leichter wartbar.

🔧 Unerwartetes Prompt Caching durch Simple Memory

Im n8n-Node Simple Memory wurden frühere Prompts mitgespeichert und beim nächsten Lauf wieder “mitgenommen” – dadurch wurde nicht nur die aktuelle Prompt ausgeführt, sondern auch vorherige, was zu Mehrfachausführungen und doppelten Einträgen im Meal Plan führte.

Die Lösung:

Wir haben der Prompt pro Run ein eindeutiges Kontext-Merkmal (aktuelles Datum/Zeitraum) mitgegeben, sodass Simple Memory die Anfrage klar neu zuordnet bzw. alte Prompt-Kontexte verwirft und nur die aktuelle Prompt verarbeitet wird.


Technischer Stack

  • n8n, selbst gehostet auf unserem
  • Kubernetes-Cluster (privat)
  • Tandoor Recipes API
  • OpenAI / ChatGPT API
  • Simple Memory als Zwischenspeicher für das Prompt Ergebnis

Geplante Weiterentwicklung

Derzeit ist nur eine Zusammenfassung der einzelnen Mails aus den 4 Workflows mittels KI als Reduzierung auf eine einzelne e-Mail geplant.


Lerneffekte dieses Projekts

🎯 Praktische Automatisierung in einer realen Self-Hosted Umgebung

  • n8n-Workflow-Orchestrierung
  • API-Integrationen
  • Error-Handling & Datenverarbeitung

🎯 KI sinnvoll in Workflows einbinden

  • Prompt-Design mit Fokus auf Wiederholbarkeit
  • Aufteilungsstrategien für große KI-Aufgaben
  • Umgang mit Token-Limitierungen und Latenzen

🎯 Architekturdenken & iterative Verbesserung

  • Engpässe erkennen
  • Workflows modularisieren
  • Self-Hosted Automationen robust betreiben

🎯 Bewusster Umgang mit KI State & Memory

Ich habe gelernt, dass persistente KI-Memory-Mechanismen (wie Simple Memory in n8n) impliziten State erzeugen können, der über mehrere Workflow-Runs hinweg wirkt. Ohne eindeutige Kontext-Abgrenzung werden frühere Prompts erneut berücksichtigt, was zu nicht-deterministischem Verhalten führt. Durch das explizite Setzen eines eindeutigen Lauf-Kontexts (z. B. Datum/Zeitraum) wurde der Workflow wieder reproduzierbar und kontrollierbar.

🎯 Einfluss von Modellwahl auf Performance

Ich habe gelernt, dass leistungsstärkere KI-Modelle nicht automatisch die bessere Wahl für Automations-Workflows sind. Der Einsatz eines sehr mächtigen Modells (GPT-5) führte in unserem Fall zu unnötig langen Antwortzeiten, ohne einen qualitativen Mehrwert für die Aufgabe zu bringen. Durch den Wechsel auf ein leichteres Modell (GPT-4 mini) wurde der Workflow deutlich schneller, stabiler und effizienter – bei gleichbleibender Ergebnisqualität.

🎯 Teamarbeit

Die Zusammenarbeit mit Florian stärkte meine Fähigkeiten in:

  • technischer Kommunikation
  • gemeinsamen Architekturentscheidungen
  • Workflow-Debugging wechselweise alleine und im Pair-Modus