Inspiration
We wanted to harness Alexa to do something that would actually be useful. We see Alexa as a potential replacement for a human (often times more resourceful), and AlexaMedic fits this role perfectly. Not only is it singularly useful, it also greatly extends the scope of Alexa's capabilities and has a long road ahead in terms of increasing its robustness and making it more useful and intelligent.
What it does
AlexaMedic is, at its core, a smarter WebMD for Alexa. It first inquires the user for major symptoms, automatically referencing a database of symptoms/comorbidities/diseases to dynamically generate questions for the user about other symptoms/conditions. It then uses the patient's history (when applicable) and harnesses a Random Forest Classifier to generate a list of possible diseases, arranged by calculated probabilities.
How we built it
We used Flask-Ask to create the Alexa skill, and Numpy to manage the patient data. The databases that help predict follow-up questions live on the cloud, and used Natural Language Processing to filter 'buzzwords' from the initial input. We also leveraged the Infermedica API and mined John Snow Labs data to build the robust datasets that we run classifiers on.
Challenges we ran into
A huge challenge with this project was narrowing down a project idea to tackle. We initially started with a different idea, but due to personnel changes, we had to change ideas with about 15 hours left. In addition, we intentionally came in blank in terms of experience with Alexa and Flask development, and figuring out where to start with that was tough, as was the debugging process. Finally, the John Snow Labs dataset was so massive that it was pretty difficult to find and mine the data we wanted, and it took some planning to figure out how exactly we were going to go about it.
Accomplishments that we're proud of
Learning how to write Alexa skills! Flask-Ask is actually a super fun way to write these skills, and in general, writing Alexa skills has proven to be very rewarding. In addition, learning about AWS Lambda and DynamoDB was very cool.
What we learned
This is a space that definitely sounds a lot easier to work with than it is. Probably the hardest part about developing something like this was, as mentioned before, the principal focus as well as breadth of the project. We also realized, as always, that the devil is certainly in the details when it comes to picking up new technologies and implementing them within a couple days.
What's next for AlexaMedic
This is a huge space, and there is so much room for improvement. We utilized only 1 or 2 datasets from the John Snow Labs page, and there are probably hundreds of more useful datasets from there alone. In terms of building on the robustness of our app, there is huge potentials, from new features to augmenting existing ones with more flexible UI. Also, from a technical standpoint, we would probably like to build a more sophisticated backend for the future.
Built With
- amazon-alexa
- amazon-web-services
- aws-lambda
- flask
- flask-ask
- numpy
- python
Log in or sign up for Devpost to join the conversation.