In the digital age, ordering food online has become routine. But most systems still rely heavily on rigid, form-based interfaces. We set out to reimagine this interaction—creating a more natural, human-centered experience for ordering pizzas, burgers, desserts, sides, and drinks. Our goal: let people talk to the system like they would to a person behind the counter.
From Forms to Conversations
Traditional food ordering platforms use dropdowns, checkboxes, and structured flows that can feel mechanical. We wanted to eliminate friction by allowing users to express their desires in plain language. Whether someone says “I want a pepperoni pizza and a coke” or “Give me something spicy with fries on the side,” our system interprets the intent and translates it into a structured order.
Why Conversational?
• Faster decision-making: Users don’t need to navigate complex UIs.
• Personalized experience: The conversation can reflect user preferences and prior orders.
• Inclusivity: Makes ordering more accessible for users who struggle with visual or complex digital interfaces.
Architecture Overview

To enable this fluid experience, we combined several core technologies:
1. MongoDB for Product and Configuration Storage
MongoDB served as our central product catalog, storing everything from categories (e.g., burgers, desserts) to individual SKUs and configuration options (e.g., crust types, toppings, combo bundles).
Its flexible document schema allowed us to:
• Handle evolving product structures without schema migrations.
• Store nested configuration options (e.g., size → toppings → side upgrades).
• Apply efficient queries for inventory availability and pricing.
2. Vector Search with MongoDB Atlas
Understanding conversational input meant we had to bridge natural language with structured data. To do this, we embedded our product catalog into binary vectors using OpenAI’s embedding models.
We then stored these vectors in MongoDB’s vector search index, allowing us to:
• Find relevant products and configurations from natural user phrases.
• Handle spelling variations, colloquial terms, and user intent (“something cheesy” maps to cheese-loaded menu items).
• Run hybrid semantic + keyword searches for precision and recall.
3. OpenAI APIs for NLP and Prompt Engineering
OpenAI’s GPT-4 model acted as the brain of our conversational logic. We used it to:
• Parse the user’s input and extract structured intents.
• Generate disambiguation questions when the input was incomplete (e.g., “Do you want fries or wedges with that?”).
• Harmonize the user request with available product options using context-aware prompts.
To improve reliability:
• We fed the model contextual documents (vector search results) to keep it grounded.
• The model returned a JSON representation of the order, which our backend could validate and process.
Handling Complex Orders
Users often order multiple items in one go, with nested configurations. For example:
“Get me two large cheeseburgers with extra bacon, one without onions, a chocolate shake, and fries to share.”
We designed a two-stage approach:
1. Intent Extraction: GPT parsed individual order items and options.
2. Product Matching: Vector search returned product IDs and configuration templates, allowing us to validate each item.
This process ensures accuracy while preserving flexibility in language.
The Result: A Human-Like Ordering Journey
The final user experience feels like texting a helpful restaurant assistant. Here’s an example interaction:
User: “I’m really craving something cheesy and crispy.”
System: “How about a mozzarella stick appetizer and a cheesy bacon burger? Want to add fries or a drink?”
User: “Yes, fries and a coke. And a chocolate lava cake too.”
The system builds a structured cart from this dialogue in real time, offering upsells and clarifications naturally.
Challenges We Overcame
• Ambiguity in user input: We leaned on OpenAI’s language models to resolve vague phrases without frustrating the user.
• Performance tuning: Vector search had to be snappy; MongoDB’s Atlas search helped us optimize retrieval.
• Prompt engineering: Fine-tuning prompts was key to making GPT generate reliably structured and relevant outputs.
What’s Next?
We’re now experimenting with:
• Memory for personalized recommendations.
• Voice input for a fully hands-free experience.
• Multilingual support via translation pipelines.
Conclusion
By blending conversational AI with the flexibility of MongoDB and the intelligence of OpenAI, we’ve redefined what it means to order food online. It’s not just about picking from a list—it’s about engaging in a dialogue that understands you.
Demo
Have a look at our on-line demo here: https://pizza.h0t.tech and please feel free to send feedback to [email protected]
To get started: Type "show pizzas", "show burgers", "show sides", "show drinks" and "show desserts"
If you would like to try to order, please use fake names, adresses etc. but use your real e-mail address to receive the order summary.