Logo

Chipotle AI Menu

Conversational AI chatbot that lets users place Chipotle orders using natural language — built with React, MongoDB, Flask, spaCy, NLTK, PyTorch.

Problem

Restaurant ordering relies on human servers or static menus. Customers can't ask natural questions, correct mistakes conversationally, or build complex orders without friction.

Solution

A conversational AI chatbot using BERT embeddings, spaCy NLP, and Levenshtein fuzzy matching to understand free-text orders, correct typos, and progressively fill item details through dialog.

Outcome

Deployed live react app through Heroku. Handles full order flows (add, modify remove items) with voice input, real-time tracking, and MongoDB persistence. Zero per-query API costs.

NLP Pipeline
NLP Pipeline
Precomputing Intent Embeddings
Python
# Load intents using config.py
with open(config.INTENTS_FILE, 'r') as f:
intents = json.load(f)
# Create a dictionary mapping tags to their respective intents for easier access
intents_dict = {intent['tag']: intent for intent in intents['intents']}
# Precompute intent embeddings
all_patterns = []
pattern_tags = []
for intent in intents['intents']:
tag = intent['tag']
patterns = intent['patterns']
for pattern in patterns:
cleaned_pattern = clean_sentence(pattern)
all_patterns.append(cleaned_pattern)
pattern_tags.append(tag)
pattern_embeddings = sentence_model.encode(all_patterns)
Technology Stack
spaCy
React
React
Next.js
Next.js
Heroku
Heroku
Python
Python
MongoDB
MongoDB
Flask
Flask
PyTorch
PyTorch