We wanted to build something based on SMS, as it allows deploying chatbot services worldwide, including developing countries. And we also want to help solving some serious social issues. There are similar solutions but our assistant maintains a dialog and understands users in a flexible way. Moreover SMS are free of charge in most countries, and where they are not, Twilio can provide toll free numbers.
We were also inspired by Twilio.org, and the presence of Techfugees.
What it does
The assistant can go through a conversation about type of emergency and location. Besides, Twilio provides information about the country where the SMS was sent. So, at the end of the interaction we can know what kind of assistance needs to be delivered, based on the location and the type of problem (earthquake, fire, flooding, etc.). Our assistant is scalable, it can grow easily on problems or locations.
Based on users behaviours we are able to track messages and to recommend tentative locations. It also applies when the address provided are too wide or lazy, as for example, London or UK.
How we built it
We set up a nodejs project. The code is available at github. SMS are managed with Twilio. The NLP (Natural Language Processing) is done with Wit.ai, so we are able to classify users intents and entities like Locations. We use Esri geocoding service to translate locations in natural language to the lat/lon description. We track all the data in a MongoDB database. There we use geo indexes, in order to deliver the recommendations, and aggregate data.
We also prepared a landing page to spread our hack. Visit helpx.press. The domain is set up Radix. The bot is deployed in AWS and the landing is hosted in Github Pages.
Challenges we ran into
How to translate what the user says into a real location using Esri. How to infer a more specific location when the user’ SMS lacks of enough information. How to use the knowledge generated by a set of users to suggest locations to future users. Hot to implement a conversation engine for the SMS communication channel. Find a shop where to buy a local SIM Card ;) Speed up SMS delivery and sending time. How to show a demo in 60s.
Accomplishments that we're proud of
Performance of the chatbot using cloud services (aws, mongodb over aws). Using Lean Startup philosophy and doing incremental MVPs Having a lot of fun and hacking for good
What we learned
Keep it simple SMS are universal but its delivery is slow Start creating a small solution and make small increments.
What's next for Helpex.press
Spread the word and start measuring how people use it, in order to learn and train better our Natural Language Understanding unit. Make better suggestions Use open data to enrich our system. Use more sophisticated machine learning techniques (as deep learning) to get more info about the user problem. Store information about emergency numbers (as hospitals, police stations, fire stations) and sending them SMS when a disaster or accident is “officially” declared (in our case when a number of users report the same problem in the same area). Support for multiple languages Roaming support (with no charge)