In healthcare, patients often struggle to understand what their symptoms mean, and clinicians face the challenge of narrowing down hundreds of possible diseases with overlapping signs. That's why we developed SymptomAI, a web application that bridges that gap and brings an accessible, easy-to-use, AI-powered solution for those who lack the time or resources to see a healthcare professional.
SymptomAI allows users to select symptoms from a searchable dropdown of 328 symptoms. Once selected, the app used a trained multi-class Convolutional Neural Network (CNN) model to predict the top 3 most likely diseases out of 773 possibilities, along with the confidence scores and short explanations for each prediction. We designed it to provide data-driven health insights that allow users to make informed decisions.
We found a data set on Kaggle, which we used to train a CNN created in PyTorch with GPU acceleration, early stopping, and Adam optimizer. We connected our neural network to our website through the backend using Flask to create API endpoints. Furthermore, we used an OpenAI API key in order to find out the severity of conditions and next steps that can be taken as well. We created a frontend with HTML, CSS, and JS to create a sleek and easy-to-use website that is accessible to all.
Some of the challenges we ran into include backend and frontend connectivity, as well as overlapping symptoms. We faced various CORS and integration errors between the Flask server and the JavaScript frontend, which we ultimately overcame after troubleshooting with the files. We also realized that many diseases share similar symptoms, making accurate classification difficult for the model. That’s why we developed a confidence-based prediction system — instead of showing just one output, SymptomAI displays the top three most probable diseases with their respective confidence scores.
We are proud of creating a working end-to-end system from a clinical dataset and model training to deployment on a web interface. Furthermore, our model successfully creates meaningful predictions with results that are easy to take action on. We designed a clean, user-friendly interface, making our website easy for non-technical users.
Building SymptomAI taught us many things. We learned how to handle imbalance and high-dimensional medical data (328 symptoms x 773 diseases), focusing on leveraging data preprocessing tools from Sci-kit Learn to develop a robust cleaning pipeline. We implemented a multi-class Convolutional Neural Network using PyTorch.
Moving forward, we plan to expand the project by improving accuracy, personalization, and accessibility. The next major step is to train the neural network on larger and more diverse medical datasets to better recognize rare conditions and refine its diagnostic predictions. We also aim to introduce user profiles that account for factors like age, gender, medical history, and lifestyle, allowing the model to deliver more personalized insights. To make the tool accessible to a wider audience, we are exploring multilingual support and the development of a cross-platform mobile app. Beyond technical growth, we hope to collaborate with healthcare professionals to validate predictions and add medical credibility to the system. In the long term, we envision using privacy-preserving techniques like federated learning so the model can continuously improve from user interactions without compromising data security. Ultimately, the goal is to transform this project into a reliable, user-friendly digital health companion that empowers people to understand and take control of their well-being.
Log in or sign up for Devpost to join the conversation.