Skip to content

Andy1977D/Koch-Assistent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

KI-Koch-Assistent 🍳

Ein sprachgesteuerter KI-KΓΌchenassistent fΓΌr Tablet und Desktop – powered by Google Gemini.

Author: Dr. Andreas Gotter, Aachen, Germany
License: MIT
GitHub: Andy1977D/Koch-Assistent


Executive Summary

Der KI-Koch-Assistent ist eine sprachgesteuerte, Tablet-optimierte Webanwendung fΓΌr die KΓΌche. Er ermΓΆglicht es, freihΓ€ndig durch persΓΆnliche Rezepte zu navigieren, Zutaten abzufragen und sich Schritt fΓΌr Schritt durch den Kochprozess fΓΌhren zu lassen – komplett ΓΌber natΓΌrliche Sprache.

Was macht der Kochassistent?

  • Sprachsteuerung & -ausgabe: HΓΆrt auf Kommandos, beantwortet Fragen und liest Rezeptschritte sowie Zutaten laut vor.
  • Intelligente RezeptvorschlΓ€ge: Findet passende Rezepte basierend auf vorhandenen Zutaten oder spontanen WΓΌnschen.
  • Dynamische Portionsskalierung: Rechnet Zutatenmengen automatisch und intelligent auf die gewΓΌnschte Personenzahl um.
  • Schritt-fΓΌr-Schritt-Navigation: FΓΌhrt im eigenen Tempo durch die Zubereitung – man kann jederzeit vor- und zurΓΌckspringen oder sich Dinge wiederholen lassen.
  • Timer mit Alarm: Stellt automatisch KΓΌchentimer, wenn ein Rezeptschritt eine Wartezeit enthΓ€lt.
  • Hands-Free-Betrieb: Speziell entwickelt, um das Tablet wΓ€hrend des Kochens mit schmutzigen HΓ€nden nicht berΓΌhren zu mΓΌssen.
  • Live-Modus: Echtzeit-Audio-Streaming ΓΌber die Gemini Live API fΓΌr ein natΓΌrliches GesprΓ€chserlebnis.

Aufbau & Komponenten

Architektur

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Browser (Tablet/Desktop)                     β”‚
β”‚  index.html + app.js + style.css              β”‚
β”‚  β”œβ”€β”€ SpeechRecognition (Mikrofon-Input)        β”‚
β”‚  β”œβ”€β”€ SpeechSynthesis (TTS-Output)              β”‚
β”‚  β”œβ”€β”€ Gemini Live WebSocket (Echtzeit-Audio)    β”‚
β”‚  └── PWA / Fullscreen-Modus                    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚ HTTP (Port 8077)
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  server.py (ThreadedHTTPServer)                β”‚
β”‚  β”œβ”€β”€ /api/chat    β†’ Gemini Chat                β”‚
β”‚  β”œβ”€β”€ /api/reset   β†’ Session zurΓΌcksetzen       β”‚
β”‚  β”œβ”€β”€ /api/feedback β†’ Rezept-Feedback           β”‚
β”‚  β”œβ”€β”€ /api/live-config β†’ Live-API-Konfiguration β”‚
β”‚  β”œβ”€β”€ /api/token   β†’ Ephemeral Token            β”‚
β”‚  └── static/      β†’ Frontend-Dateien           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚ HTTPS (google-genai SDK)
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Google Gemini / Gemma API                     β”‚
β”‚  Modell konfigurierbar via .env                β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Warum diese Komponenten?

  • Frontend (HTML/JS/CSS): Eine PWA-fΓ€hige (Progressive Web App) BenutzeroberflΓ€che. Nutzt die systemeigene Web Speech API (SpeechRecognition & SpeechSynthesis) fΓΌr Spracheingabe und -ausgabe – keine externen AbhΓ€ngigkeiten, kein Framework-Overhead. Ein Tablet-optimiertes Dark-Theme schont die Augen und den Akku.
  • Backend (Python): Ein leichtgewichtiger, blockierungsfreier HTTP-Server (server.py). Python wurde gewΓ€hlt, weil das google-genai SDK hervorragend unterstΓΌtzt wird und der Server bewusst minimalistisch gehalten ist – keine Datenbank, kein Docker, keine komplexe Infrastruktur.
  • KI-Integration (Gemini / Gemma): Das KI-Modell analysiert die Nutzeranfragen, verarbeitet den Rezeptkontext und steuert das Frontend ΓΌber eine strukturierte JSON-API. Mehrere Modelle sind konfigurierbar, mit automatischer Fallback-Kette.
  • Lokale Rezeptdatenbank (JSON): Rezepte liegen als strukturierte JSON-Dateien im Ordner Rezepte_JSON/. Dadurch bleibt alles lokal, versionierbar und leicht zu bearbeiten – ohne externe Datenbank.

How to use? (Typischer Dialog)

Der Assistent ist darauf ausgelegt, natΓΌrliche GesprΓ€che zu fΓΌhren. Ein typischer Ablauf sieht so aus:

  1. Start & Auswahl:
    β€žIch habe noch Γ„pfel und Mehl da, was kann ich backen?"
    β†’ Der Assistent schlΓ€gt z. B. einen Apfelkuchen vor und zeigt die Rezeptkarte.

  2. Portionen anpassen:
    β€žRechne das Rezept bitte auf 4 Personen hoch."
    β†’ Die Zutatenliste wird automatisch umgerechnet und im Panel aktualisiert.

  3. Zutaten-Check:
    β€žWas brauche ich fΓΌr den Teig?"
    β†’ Der Assistent listet die Zutaten auf. Auf dem Bildschirm kΓΆnnen diese abgehakt werden.

  4. Kochen / Backen:
    β€žLass uns anfangen."
    β†’ Der Assistent liest den ersten Schritt vor (z. B. β€žHeize den Ofen auf 180 Grad vor").

  5. Navigation & RΓΌckfragen:
    β€žWeiter", β€žNochmal wiederholen" oder Zwischenfragen wie β€žWie viel Mehl brauchte ich noch gleich?"
    β†’ Man kann jederzeit vor- und zurΓΌckspringen, ohne den Faden zu verlieren.

  6. Timer:
    β€žDer Kuchen ist jetzt im Ofen."
    β†’ Der Assistent erkennt die Backzeit aus dem Rezept und startet automatisch einen Timer mit Alarm.


Installation & Setup

Voraussetzungen

Schritte

# 1. Repository klonen
git clone https://github.com/Andy1977D/Koch-Assistent.git
cd Koch-Assistent

# 2. AbhΓ€ngigkeiten installieren
pip install -r requirements.txt

# 3. API-Key konfigurieren
# Erstelle eine Datei .env mit folgendem Inhalt:
#   GEMINI_API_KEY=dein_api_key_hier
#   GEMINI_MODEL=gemma-4-31b-it

# 4. Server starten
python -u server.py

Der Server lΓ€uft dann auf http://localhost:8077.

Hinweis zu start_koch_assistent.bat

Die enthaltene Batch-Datei start_koch_assistent.bat ist ein Beispiel-Startskript fΓΌr Windows. Sie enthΓ€lt einen hardcodierten Pfad (c:\python\RezeptServer), der auf den eigenen Installationspfad angepasst werden muss. Alternativ kann der Server einfach mit python -u server.py gestartet werden.

Zugriff von Tablet / Smartphone

FΓΌr den Zugriff von anderen GerΓ€ten im lokalen Netzwerk bietet der Server unter /setup eine Setup-Seite mit Anleitungen fΓΌr Android (Chrome-Flag) und iOS (Zertifikat) an.


Die Beispielrezepte

Dem Projekt liegen 28 erprobte Beispielrezepte bei, um den Einstieg zu erleichtern. Der Fokus liegt auf vollwertigen, oft pflanzlichen Rezepten – darunter:

Kategorie Beispiele
🍰 Kuchen & Süßes Veganer Apfelkuchen (versch. Varianten), Schoko-Kirsch-Kuchen, Mohnkuchen, Pflaumenkuchen, Chia-Schoko-Pudding
πŸ₯— Salate & Suppen Italienischer Bohnensalat, Süßkartoffel-Karotten-Suppe, Blumenkohl-Suppe
🍝 Hauptgerichte Tomatenlasagne, Nudelauflauf, Vegane Quiche
πŸ› Curries Süßkartoffel-Curry, Bananencurry, Mandarinen-Rosinen-Curry, Blumenkohl-Rosinen-Curry
πŸ«• Pfannenzauber-Serie 8 Einzelkomponenten (Suppe, Quinoa, Soja-Medaillons, Soßen, Dressings, Krokant, Dessert)

Jedes Rezept enthΓ€lt neben den Metadaten detailliert strukturierte Zutatenlisten (ggf. unterteilt in Sektionen wie β€žTeig", β€žBelag") und klare Schritt-fΓΌr-Schritt-Anweisungen.


Eigene Lieblingsrezepte erstellen

Das HinzufΓΌgen eigener Rezepte ist einfach: Eine JSON-Datei im Ordner Rezepte_JSON/ ablegen – fertig.

Manuell

Orientiere dich an den bestehenden Rezepten. Die wichtigsten Felder:

  • name, kurzbeschreibung, typ, portionen, quelle
  • zutaten: Array aus Strings oder Gruppen-Objekten mit gruppe und zutaten_liste
  • zubereitungsanleitung: Array von Strings (ein Eintrag pro Schritt)

KI-basiert (empfohlen)

Am schnellsten geht es mit einem LLM wie ChatGPT oder der Google Gemini App. Kopiere einfach folgenden Prompt und fΓΌge Dein Rezept ein:

Bitte wandle das folgende Rezept in ein strukturiertes JSON-Format fΓΌr meinen Koch-Assistenten um.

Anforderungen an das JSON:
- Felder: "name", "kurzbeschreibung", "typ" (Array von Strings, z.B. ["Kuchen", "Vegan"]),
  "portionen" (Zahl), "quelle", "fertiges_gericht_bild" (Dateiname oder null),
  "handschriftliche_anmerkungen" (Array von Strings).
- "zutaten": Ein Array. Einfache Zutaten sind Strings (z.B. "200 g Mehl").
  FΓΌr Gruppen verwende Objekte: {"gruppe": "Teig", "zutaten_liste": ["200 g Mehl", "100 g Zucker"]}.
- "zubereitungsanleitung": Ein Array von Strings. Jeder String ist ein Arbeitsschritt.
  Formuliere die Schritte klar und knapp – sie werden dem Nutzer vorgelesen.

Hier ist mein Rezept:
[FÜGE HIER DEIN REZEPT ODER EINEN LINK ZUM REZEPT EIN]

Speichere das generierte JSON als z. B. 22_mein_rezept.json im Ordner Rezepte_JSON/ und starte den Server neu.


Lizenz

Dieses Projekt steht unter der MIT-Lizenz – frei nutzbar fΓΌr private Zwecke.

About

An AI based cooking assistent guiding you cooking your favorite recipies

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors