Skip to content

DonDistillo-Project/cocktail-robot

Repository files navigation

Don Distillo - The AI Cocktail Robot

This repository contains the software for "Don Distillo", an AI-powered cocktail robot. Don Distillo helps you discover new cocktail recipes and assists you in mixing them to perfection.

Don Distillo (labeled)

Don Distillo is designed to be a hands-free cocktail assistant. You can control it entirely with your voice, and it will talk back to you, guiding you through the process of making a delicious cocktail. The robot is powered by a Large Language Model (LLM), which allows for natural and intuitive interaction.

display_loop.mp4

Features

  • Voice-controlled: Just tell Don Distillo what you want to do.
  • Recipe discovery: Ask for cocktail ideas based on ingredients you have or flavors you like.
  • Guided mixing: The robot uses a scale and a display to help you pour the right amount of each ingredient.
  • Speech interaction: Don Distillo provides audio feedback and instructions.

Requirements

Software

Hardware

  • The cocktail robot itself (or the parts to build one).
    • Microcontroller: ESP-32-Pico-Kit-1
    • Scale: Elecrow Crowtail-Weight Sensor V2.0
    • Microphone: INMP441 MEMS
    • Speaker Driver: SparkFun I2S Audio Breakout
    • Display: Waveshare 1.3-inch LCD

GPU Acceleration (Optional)

For running the services in GPU mode, you will need:

Usage

This project uses a microservice architecture and Docker Compose to orchestrate the different services.

Environment Variables

Before running the services, you need to create a .env file in the root of the repository. You can copy the provided sample file:

cp .env.sample .env

Then, edit the .env file with your configuration.

Required for all configurations:

  • ESP_ADDR: The IP address of your ESP32.
  • OPENAI_API_KEY: Your OpenAI API key.

Required only for CPU mode (docker-compose.cpu.yml):

When running in CPU mode, the TTS service uses Azure's cloud-based text-to-speech. You will need to provide the following credentials:

  • AZURE_SPEECH_KEY: Your Azure Speech API key.
  • AZURE_REGION: The Azure region for your Speech service.

When running in GPU mode (docker-compose.gpu.yml), the TTS service runs a local model and does not require these keys.

Flashing the Firmware

  1. Connect the ESP32 to your computer.

  2. Navigate to the firmware directory:

    cd firmware/esp
  3. Build and upload the firmware:

    pio run -t upload

Running the Services

Important

Make sure the ESP32 is running and connected to the network before starting the services.

You can run the services in either CPU or GPU mode

CPU Mode:

docker-compose -f docker-compose.cpu.yml up --build

GPU Mode:

docker-compose -f docker-compose.gpu.yml up --build

Architecture

Note

Each service has its own README.md for further information (see services/).

Architecture diagram

Attribution

Portions of this project are based on the Waveshare 1.3-inch LCD HAT C library (© Waveshare).

About

An LLM-powered cocktail robot

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors