Unfortunately, given the limited time constraint we were in, it would have taken Facebook approximately 1 - 2 weeks to publicly release the chatbot, which wasn't possible since judging would have been over by then. Therefore, it will only work for users who have been added by us as designated test users. Sorry for the inconvenience.
Angel is an intelligent medication tracking assistant powered by Wit.ai.
Want to use Angel Assistant? Start a conversation by messaging at https://facebook.com/angelassistantai
Wit.ai App ID: 763921211088980
Messenger Link: m.me/angelassistantai
Our project website is https://angelassistant.tech/
Keeping track of personal medications is challenging for many people. According to a review in Annals of Internal Medicine, “studies have shown that 20 percent to 30 percent of medication prescriptions are never filled, and that approximately 50 percent of medications for chronic disease are not taken as prescribed.” This lack of adherence is estimated to cause approximately 125,000 deaths and at least 10 percent of hospitalizations, and to cost the American health care system between $100 billion and $289 billion a year.
Our team was determined to leverage the power of Wit.ai to build a well-designed and easy-to-use chatbot interface that assists people with remembering and keeping tracking of their medications, in an effort to encourage people to stay on top of their medications and remember to take them as prescribed. Angel Assistant supports a simple and accessible way for users to communicate via natural language and stay on top of their medications, which is possible through the cutting-edge infrastructure and technology of Wit.ai.
What it does
Angel is an intelligent chatbot that allows users to quickly add, track, and remember their medications. Users can add medications via voice commands, specifying the name of the medicine, dosage, and times. They can update their status by leaving a quick voice or text message, after which Angel will give timely reminders. Lastly, Angel provides each patient with a unique ID, which they can then share with their doctors for them to monitor their patients’ progress, and send messages accordingly.
How we built it
Angel lives in a Python based cloud server hosted on Azure. We are using Flask for the cloud server and MongoDB Atlas for our database. We are using the Facebook developer infrastructure to integrate the Angel Assistant backend with Messenger for automated intelligent messaging.
Incoming messages from Messenger get forwarded to the Angel backend server for processing. Messages are then sent to our Wit.ai application, which returns the intent, state and traits of the message, backed by the mongoDB database and our state machine. In this manner, we curate custom responses to the user based on their message, as well as update the database accordingly.
Challenges we ran into
The implementation of the chatbot logic and integration with Wit.ai was the most time consuming part because we had to set up the development environments and get everything functional before even starting. The chatbot logic turned out to be more complex than we anticipated. We also had challenges in implementing the voice commands features, as traditional Messenger voice audio files aren’t supported on the Wit.ai platform. Thus, we encoded and sent the data as .wav files over REST API. This was quite challenging to do as the conversion had to be done in memory. Lastly, migration of the bot from Flask to Azure functions was a challenge.
Accomplishments that we're proud of
We were proud to have created a well-designed and well-executed Minimum Viable Prototype of an intelligent chat bot that successfully tracks medications, and implements various tracking features. The system integrates well with Messenger, and we strive to integrate it with other chat platforms as well in the future. Lastly, we are proud to have configured natural language interactions by enabling users to send custom voice messages by sending .wav files to Wit.ai, and retrieving the results from the backend server.
What we learned
We learned how to create concepts and intents in Wit.ai, and integrate it with a Flask backend server that sends messages to the Messenger platform. We learned how to create callback requests to our Flask backend server from the Messenger API infrastructure. Lastly, we wanted to transition our conventional Flask server to the more cost effective and efficient serverless architecture provided by Azure functions, which we learnt how to integrate with the python messenger client.
What's next for Angel Assistant
Currently, Angel Assistant is designed and published as a Minimum Viable Product. We would like to refine the functionality, taking into consideration feedback from users and experts in the healthcare field. A feature we would especially like to implement is support for finding and showing further information on various medications, as well as integrating with pharmacy systems for online purchases of medications.