Artikel

Eine KI-Speisekammer mit Firebase AI Logic und Gemini

Wie TinyRecipe mit Firebase AI Logic und Gemini schnell strukturierte Rezepte aus Zutaten erstellt, die du bereits zu Hause hast.

Eine KI-Speisekammer mit Firebase AI Logic und Gemini

Als Indie-App-Entwickler, der mehrere Local-First-Apps betreibt, waren Geschwindigkeit, Nutzen und Kosteneffizienz schon immer meine Leitprinzipien. Bei TinyRecipe war das Ziel einfach: Lebensmittelverschwendung reduzieren, indem praktische Schritt-für-Schritt-Rezepte ausschließlich aus den Zutaten erstellt werden, die sich gerade im Kühlschrank oder Vorratsschrank befinden.

Generative KI in eine mobile App einzubauen, kann schnell zu langsamen Antworten, unvorhersehbaren JSON-Daten und steigenden API-Kosten führen, wenn die Architektur nicht sorgfältig geplant ist. So habe ich Firebase AI Logic mit Gemini auf Vertex AI integriert, um schnell strukturierte Rezepte zu erstellen und die laufenden Kosten niedrig zu halten.

Die zentrale Herausforderung: das LLM zügeln

Gibt man einem LLM völlige Freiheit beim Erstellen eines Rezepts, treten sofort drei Probleme auf:

  1. Halluzinationen und seltsame Kombinationen: Es könnte vorschlagen, aus Olivenöl, Sojasauce und einer Zitrone eine Suppe zu machen.
  2. Inkonsistentes Schema: Freitext oder unstrukturiertes Markdown in native mobile UI-Komponenten umzuwandeln, führt zu fragilen Fehlern auf dem Gerät.
  3. Hoher Tokenverbrauch: Unbegrenzte Antworten verbrauchen bei mehrstufigen Anleitungen schnell das Token-Budget.

Dafür nutzte ich die Backend-Integration von Firebase mit Vertex AI, um strikte Systemanweisungen und eine strukturierte Ausgabe zu erzwingen.

1. Leitplanken im System-Prompt und JSON-Schema erzwingen

Statt das Modell einfach um ein gutes Rezept zu bitten, zwingt der System-Prompt es in einen festen JSON-Schema-Vertrag:

{
  "title": "String",
  "prep_time_minutes": "Number",
  "difficulty": "Easy | Medium | Hard",
  "matched_pantry_items": ["Array of Strings"],
  "missing_staples_required": ["Array of Strings"],
  "instructions": [
    {
      "step_number": 1,
      "text": "String"
    }
  ]
}

Zwei Leitplanken machten die Funktion in der Praxis deutlich nützlicher:

  • Grundlegende Zutaten ausnehmen: Nutzer sollten Salz, Pfeffer, Leitungswasser oder Speiseöl nicht in ihrer Vorratsliste abhaken müssen. Der System-Prompt erlaubt diese Basics ausdrücklich, sodass die Auswahl unkompliziert bleibt.
  • Zutaten strikt begrenzen: Das Modell bevorzugt Zutaten, die im digitalen Vorrat als verfügbar markiert sind, bevor es weitere Zutaten vorschlägt.

2. Optimierungen auf dem Gerät: eine reibungslose UX

Niemand möchte in der Küche auf einer mobilen Tastatur „250 g gewürfelte Hähnchenbrust“ eintippen.

[Nutzer tippt Vorratstags an] -> [App erstellt Array] -> [Firebase-AI-Anfrage] -> [Native UI wird angezeigt]
  • Schnellauswahl nach Kategorien: Die UI bietet kategorisierte Tags zum schnellen Auswählen gängiger Kühlschrank- und Vorratszutaten.
  • Lokales Caching: Vor einer Anfrage an Firebase AI Logic bildet die App einen Hash aus der ausgewählten Zutatenliste. Fragt jemand innerhalb kurzer Zeit ein Rezept mit denselben Hauptzutaten an, liefert TinyRecipe das zwischengespeicherte Ergebnis sofort und ohne weiteren API-Aufruf.

3. Erkenntnisse und nächste Schritte

Firebase AI Logic machte es für einen Solo-Entwickler bemerkenswert einfach, eine generative KI-Funktion zu skalieren. Durch strikte JSON-Schemas an der Modellgrenze und lokalen Zustand erreicht TinyRecipe:

  • Generierungszeiten unter zwei Sekunden
  • vorhersehbare Darstellung ohne Parsing-Fehler
  • nahezu keinen unnötigen API-Tokenverbrauch

Die KI-Speisekammer ist jetzt für iOS und Android verfügbar.