Skip to content

About

Voice-first recipe recommendation agent built with BERT NLU, Prolog, MARBEL and Flask for a VU Amsterdam course project.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Cookbuddy

Cookbuddy is a spoken recipe finder built for the Project Conversational Agents course at Vrije Universiteit Amsterdam. It turns requests such as “something Italian under 30 minutes, without mushrooms” into filters over a database of roughly 1,000 recipes. The same filters and recipe cards can also be changed by clicking.

Cookbuddy recipe results

The system follows this pipeline:

speech → speech-to-text → BERT intent and slot model → MARBEL dialogue manager → Prolog recipe database → Flask interface

What we built

  • Fourteen conversation intents, including adding and removing filters, asking for recommendations, confirming a choice and restarting.
  • BIO slot extraction for cuisines, ingredients, dietary restrictions, cooking time, meal type and exclusions.
  • A Prolog recipe selector that updates the result set as the conversation changes.
  • A browser interface with removable filter tags and clickable recipe cards.
  • Recovery paths for unclear requests and searches with no matches.

The saved evaluation run reports 94.7% intent accuracy on 2,772 test utterances. Detailed intent and slot scores are in pipeline_results/evaluation_results.txt; the design decisions and user test are in Report.md.

Interface preview

The original interface can be viewed without installing the course stack:

python3 tools/preview_web.py

Then open http://127.0.0.1:8080/start.html. A reproducible results screen with sample data is available at http://127.0.0.1:8080/recipe_overview2.html?demo=1.

Cookbuddy start screen

The preview serves the HTML, CSS and JavaScript only. Voice input, live recipe queries and page changes depend on the original SIC v2 services, Redis, SWI-Prolog, speech services and trained NLU checkpoint. environment.yaml records the Python 3.11 environment used during development, but this is a course-project archive rather than a maintained one-command install.

Repository map

Path Contents
dialog_mngr/ MARBEL dialogue rules and conversational state
sic_applications/ Agent entry points, recipe data and service configuration
social-interaction-cloud/ SIC framework code, NLU model code and the web interface
pipeline_results/ Saved NLU evaluation output
tools/ Dependency-free interface preview

Team

Built by Jasper Meijerink, Arjun Pande, Omar Ouaissa, Kyan Abdoellah and Skick Bakker (group P2, VU Amsterdam).

About

Voice-first recipe recommendation agent built with BERT NLU, Prolog, MARBEL and Flask for a VU Amsterdam course project.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages