Home

AI Sous Chef: An AI-Powered Cooking Assistant that Runs on a Raspberry Pi

Home View
Home View
Home View

View My Project on GitHub

Video Demo

Introduction

I love experimenting in the kitchen, and I am constantly looking up new recipes on my iPhone. But using a phone while cooking has always been a frustrating experience. It is not sanitary to touch with messy hands, the screen turns off every 30 seconds, and most online recipes are not tailored to what I actually have or the number of servings I need. On top of that, I always have to scroll through pages of ads and filler text just to find the ingredient list, only to repeat the process every time the browser reloads.

I have always wished I had a dedicated kitchen tablet: a low-cost device that stays on, stays clean, and lets me search, customize, and cook from recipes without the constant friction of using a phone.

These frustrations, combined with my desire for a better cooking experience, led me to develop AI Sous Chef: a fully custom, AI-powered cooking assistant built on a Raspberry Pi with a 7-inch touchscreen.

Features

Search View
Search View

AI Sous Chef is built around three core capabilities:

  1. Searching a curated recipe database
  2. Generating entirely new recipes with AI
  3. Modifying any recipe to fit your exact needs

Beyond these core functions, the device includes a full suite of tools designed specifically for real-world cooking workflows:

Recipe Discovery & Customization

Meal Planning & Shopping

On-Device Cooking Experience

System & Device Controls

Tech Stack

AI Sous Chef is built on a full end-to-end pipeline that spans data ingestion, cloud infrastructure, on-device rendering, and LLM-powered recipe generation. The system is designed to be low-cost, modular, and fully automated.

ETL & Cloud Infrastructure

AI/ML

On-Device Software

System Architecture

ETL

ETL Pipeline AWS Diagram
ETL Pipeline AWS Diagram
ETL Pipeline AWS Diagram
  1. The EC2 instance downloads the raw recipes dataset and converts each recipe into a standardized JSON format.
  2. The raw recipes are uploaded to an S3 bucket.
  3. The cleaned recipes are uploaded to a dedicated clean S3 bucket, stored as recipes/id.json.
  4. Each recipe's metadata is written as an item in a DynamoDB table.
  5. The raw S3 bucket is deleted, and the EC2 instance, subnet, and VPC are terminated.

Searching for Recipes in the Dataset

Search Recipes Dataset AWS Diagram
Search Recipes Dataset AWS Diagram
Search Recipes Dataset AWS Diagram
  1. The user types a recipe request using the touch keyboard in the Search View.
  2. extract_search_params() uses Bedrock (Claude Haiku 3) to convert the natural-language query into structured keywords and filters, since DynamoDB can only search predefined, indexed attributes rather than raw text.
  3. These extracted keywords are used to query the 100k-recipe DynamoDB table, which returns metadata for all matching recipes.
  4. rank_recipes() uses Bedrock to score the candidate recipes and returns only the most relevant results.
  5. The top recipe names and metadata are displayed in the Search View, and the user selects one of the results.
  6. Since full recipes are stored in S3, selecting a recipe triggers an S3 Object GET request, which returns the complete recipe JSON (storing full recipes in S3 is significantly cheaper than in DynamoDB).
  7. generate_recipe() uses Bedrock to create a fully structured recipe from a natural-language request, returning standardized JSON—name, ingredients, instructions, times, nutrition, and tags—along with three modification suggestions.
  8. The finalized recipe is displayed to the user in the Recipe View.

Dataset

I used the Kaggle dataset: Food.com - Recipes and Reviews, containing over 500,000 detailed recipes.

AI Model Integration

AI Sous Chef uses Amazon Bedrock throughout the application to power all AI-driven cooking features. Bedrock (via Claude Haiku 3) is integrated directly into the Raspberry Pi app, allowing the device to generate and modify recipes in real time.

In all cases, Bedrock calls are made through lightweight boto3 requests from the Raspberry Pi, keeping the device inexpensive while enabling AI-powered cooking features that feel immediate and intuitive.

UI & Interaction Design

The entire UI is built from scratch in Python using Pygame—no web views, no system UI components. This gave me full control over the interaction model but meant building everything myself: navigation, scrolling, keyboards, and touch handling.

Key Implementation Details

Visual Style

The interface uses a warm off-white background to feel less harsh than pure white, with a clean sans-serif font at multiple sizes for hierarchy. The goal was a minimal, readable layout that stays out of the way while cooking.

Future Improvements

Reflection and Concluding Thoughts

AI Sous Chef is the project I am most proud of because it blends everything I love – AI, software engineering, UX design, and hardware – into one seamless product. What started as a simple annoyance in the kitchen turned into a unified system that meaningfully improves the cooking experience, and building it end-to-end has been one of the most rewarding things I have done.

Appendix: More Images

Create Recipe View
Create Recipe View
Create Recipe View
Meal Prep View
Meal Prep View
Meal Prep View
Recipe View
Recipe View
Recipe View
My Kitchen View
My Kitchen View
My Kitchen View
Settings View
Settings View
Settings View