Inspiration
Journaling can be a valuable tool for improving mental health in several ways including allowing for emotional expression, self-reflection, and stress reduction. Thus, we believe it can be a very valuable tool for students who feel various pressures, both academic and social.
We found from preliminary research, as well as personal experiences, that the hardest thing about journaling is getting started and actually writing the journal. As a result, we thought that creating a way in which people can more easily express and write down their thoughts through the use of AI would be especially helpful. We wanted to create a solution that would ask helpful guiding questions, and allow users to better reflect on their own life and grow as an individual.
Another problem we find students often face on their mental health journey is a feeling that they are alone in their struggles. To relieve these types of feelings, we wanted to create a solution that would also allow students to share their feelings, experiences, and thoughts with others and come to realize that other people may have gone through the same struggles and are there to support them from a better place. This app is meant to not only serve as a way for students to grow mentally, but relate to many other people that have been in similar situations. For example, we find that at CMU, many freshmen deal with anxiety due to underperformance in their classes, but they come to realize that others have been in the same situation as they are, so they can rely on each other for emotional support.
What it does
Bamboost is a website that allows users to reflect on their lives and worries, through the process of AI journaling. The inspiration for the name comes from the idea that a person’s mental health needs to be nurtured, just like a plant that needs to be watered regularly in order to stay healthy and green. Bamboo is seen as a symbol of resilience because of its strength and flexibility. Combining these two ideas, our app is meant to “boost” a student’s mental health in small incremental ways through reflection and consideration.
The journaling is guided by a custom chatbot that processes messages, generates unique prompts, and sends a request to OpenAI's ChatGPT API to help generate a response. By doing this, we can create a personalized conversation between the user and the chatbot.
Prompt engineering is used in order to properly guide the conversation in the correct manner, as well as personalize responses based on how the user is feeling. Each of the responses is analyzed using a combination of two ML models, which do sentiment analysis (using Valence Aware Dictionary for Sentiment Reasoning) and emotion recognition (using deep neural networks with LSTM layers) to create a heuristic of the message's overall emotion. Using this heuristic, we adjust the chatbot's tone and language to better account for the user's emotions and personalize their experience.
Once the user has finished chatting, the website automatically creates a journal entry for their session that they can post anonymously to other users in a shared forum. In the shared forum, other users can read, react, and comment on other user's journals to show support or give encouragement.
The user profile also has a variety of features, including their current mood, name, and bio, but more importantly, a growth score. To encourage users to journal more and gamify their experience, we implemented a growth score that increases the more you journal, as well as how often you do. Depending on your growth score, the bamboo gif will grow as well :)
What's next for Bamboost
To improve the user's experience, we think that there are still a few features that we'd like to add. For example, we understand that some people prefer to keep their inner thoughts more private and not post them to all other users. We would like to implement a private mode, where users can decide the privacy of their own posts.
Furthermore, we found some limitations in the models that we used in this project. Especially for the emotion recognition model, even though the model reports 93% accuracy, we found that in our tests and for longer texts generally, the model did not perform as well as we'd like. One of the reasons for this is that the distribution of data between the different data is not evenly distributed and performs noticeably worse for the emotion sets with less data. If more time permits, we would like to retrain the model with sufficient data and retune the hyperparameters to create a more accurate model.
If there are plans to bring such an idea into the market, we will most likely need to account for scalability. Especially considering how there will be many users posting on the forum, our website does not have the protocol to properly manage a distributed system.
Log in or sign up for Devpost to join the conversation.