All projects

Elle À Table Cooking Bot

Architect & Lead Developer

Oct 2025

Archived

A safety-first AI cooking assistant for 35,000+ French recipes

  • Gemini
  • spaCy
  • Qdrant
  • PostgreSQL
  • TypeScript
  • Bun
  • Hono
  • React
  • SST
  • Kubernetes
  • Gemini TTS
Recipes processed
35,000+
Allergen detection
100% deterministic
Parsing accuracy
99.9%

Built for CMI Group as the engine behind Elle À Table’s AI cooking assistant: a conversational agent that helps users find recipes, adapts instructions to their skill level and allergies, and guides them hands-free with generated audio while they cook.

Why safety came before AI

The starting constraint: a wrong answer about allergens can hurt someone, so LLMs were never trusted with that decision. Allergen detection and dietary classification run on a deterministic, rule-based engine (keyword matching, known derivatives, hidden sources, even E-number cross-referencing) that’s 100% auditable and never hallucinates. LLMs are used only where being wrong is cheap: enriching missing metadata, parsing messy ingredient text, and holding a natural conversation. That split, rules for anything safety-critical and LLMs for everything else, is the core architectural decision the rest of the system follows.

What I built

  • A 9-stage recipe processing pipeline that took 35,000 real-world, inconsistently formatted French recipes (mixed units, missing fields, regional phrasing) to 99.9% parsing accuracy, with a quality-based router that sent clean recipes through a cheap direct-conversion path and only ran expensive spaCy NLP on the messy 30-40%, cutting processing cost by 60-70%.
  • Dual-vector semantic search: a “semantic” embedding (region, season, cooking method) and a separate “ingredients-only” embedding, so “Italian summer recipes” and “I have tomatoes and basil” both route to the right kind of similarity search.
  • A tool-using conversational agent with a two-tier preference system (persistent user allergies vs. per-conversation constraints like “cooking for 10 tonight”), enforced tool-call ordering so allergen filters always apply before a search runs, and full Langfuse observability on every LLM call.
  • On-demand voice-guided cooking mode: step-by-step audio generated in parallel via Gemini TTS, deduplicated with an in-memory mutex so concurrent requests for the same recipe don’t trigger duplicate generation, stored as raw PCM and converted to WAV only when played.

Role and status

I owned the architecture and led development end to end: data pipeline, backend, search, and the conversational runtime. The system reached production-grade quality (accuracy, safety guarantees, cost profile all validated against real data) but the project was shelved before public launch, a business decision unrelated to the engineering. I’m including it because it’s the clearest example of applied, safety-conscious LLM system design in my portfolio, not despite the fact it never shipped.

Articles about this project

Working on something similar?

Happy to go through the technical details, or look at the same problem in your system.

Book a call