About the AI
When we started brainstorming Mixer one of our first questions was how do we get the data? We knew that at minimum we needed a list of restaurants in the Boston area along with the cocktails served at each of those restaurants.
One option was manually assembling this data but surely there had to be a better way?
List of restaurants
Perhaps not surprising but there isn't a public list of Boston area restaurants along with their website URLs. We realized Yelp.com was the best source of this data so we wrote a bot to automatically fetch all the details for Boston area restaurants.
Finding the menus
Once we had the restaurants and their website's the next task was how to identify and download their cocktail menus. Because of how different restaurant websites and menus are, identifying which page or PDF was the cocktail menu turned out to be non-trivial.
After some trial and error, we used a scraper along with an OpenAI prompt to identify the menu web pages or menu download links.
Extracting cocktails
With the menus in hand, we needed to decide how to extract the cocktail information from the menus in a structured format. This would have been the most labor-intensive part to do completely manually since it would have taken 5-10 minutes to process each menu and we had around 500 menus to process.
Fortunately, we were able to write an OpenAI prompt to extract the cocktail data into a structured JSON output and also leverage GPT-4V to read the PDF menus.
Adding categories and flavor scores
The last step we took was to use OpenAI to automatically assign a category and flavor scores to each of the cocktails.
Generating new drinks
When you view a drink, like the Bevanda Rosa, you can tap the martini glass to create a never seen before drink with a unique name and description.
To power this, we're using an OpenAI prompt which includes the drink's ingredients and it's similar drinks as "Context" to help ensure that OpenAI produces a realistic new drink.