The question where to go to have something is very common in Yerevan now. That is what had happened to me several months ago when I was walking around the city with my wife. We suddenly realized that there is no best way to ask someone where should one go.
That is exactly when the idea of creating such bot was born. Current solutions at that moment were either too broad and generic or not very convenient to use on the go. I mean, of course, you can ask google for some restaurant or even look up in TripAdvisor, but what to do when you are looking for some special dish where you can have great craft beer and enjoy a great view?
Well, yes, Oor is particularly created for such kind of requests, but it is not limited to that. Lets see it in action.
Below you can see the demo for the first interaction with the bot, right after you tap Get Started in Facebook Messenger. Here, the bot greets the user and asks how it can help by providing quick replies available in Facebook Messenger platform. Then, the user selects an option and the bot quickly delivers results of places where one can enjoy the best coffee in Yerevan, for instance.
Find a place near by
Oor lets you filter results and sort them by distance when you provide your current location. Though it's not allowed to get your location automatically (privacy issue), it is quite easy to share your location on Facebook Messenger. Either you just send your location using Messenger app's bottom nav menu, or Oor will ask you to do that whenever it has such feeling that you are looking for something nearby. By saying “feeling” I mean it analyzes your requests and by seeing such phrase as "I'm looking for pizza near to me", for example,
it prompts you to provide current location.
And the last feature (but not the last in the list) I’d like to demo is the filtering of the places that are open. Just think of a situation when you have just gone out of the pub in the middle of the night and are feeling hungry. he problem is that no matter where you go everything seems to be closed. So getting some information on places that are still open is very useful in situations like this.
Oor is quite full of features, particularly
- It understands 5 different intents - greeting, discover, thanking, valediction (saying goodbye) and general for all the other types. General intent is made to provide general answers when the user asks or say something out of the domain of bot's understanding, and actually that part is what it makes so fun talking with Oor.
- Coming soon there will be a new intent for clarification. For example if you get a list of restaurants you could also check whether they have a free wifi or anything like that.
- Quick suggestions using Messenger's Quick Reply mechanism
- Filtering based on more than 35 different criteria
- Sorting results based on relevance, rating and location
- Filtering near by places
- Filtering by being open at that moment
- Checking location of the place on the map
- Getting more information like rating, type, phone number and Instagram photos
Platform and technology
The technology stack is simple and very straightforward. The server is based on Node.js and handles all communication between Messenger Platform. The AI part is sourced to Wit.ai, a Facebook backed NLP SaaS platform. The rest logic is handled on the server which stores data in MongoDB and uses ElasticSearch for filtering and full text search.
Chat sessions are stored in a shared Redis storage which allows to scale the system easily just by adding new nodes horizontally.