Inspiration

We were inspired in the kelea challenge and furthermore we are interested in IA development.

What it does

Use online

Enter the following link: https://emotionai-chat.streamlit.app/

Registration and Login

  1. On the home page, select "Sign Up" to create a new account or "Sign In" if you already have one.
  2. Enter your username and password, keep in mind that users will not be able to be repeated, since they are stored in a mysql database hosted on alwaysdata.

Emotional Chatbot

  1. Select "Chatbot" in the services menu.
  2. Write your messages in the text box and the chatbot will respond based on your emotions, it will have context of your username and the previous 10 interactions with you, saving the chat even if you log out, thanks to the database.

Emotional Diary

  1. Select "Diary" in the services menu.
  2. Write your thoughts and emotions in the journal.
  3. You can edit previous entries.

Personality Profile

  1. Select "Profiling" in the services menu.
  2. The application will generate a personality profile based on your registered emotions, taking into account your enneagram, and the big five emotions.

Personal Goals

  1. Select "Target" in the services menu.
  2. The app will suggest goals based on your journal entries.

How we built it

Authentication

Authentication is handled by using bcrypt to hash the passwords and store them securely in the database. Users can register and log in, and their credentials are verified against the database.

Emotional Chatbot

The chatbot uses the Mistral language model to generate responses based on the emotions detected in the user's messages. Emotions are detected using the text2emotion library, which parses the text and returns a dictionary with the detected emotions.

Emotional Diary

The journal allows users to record their thoughts and emotions. Each diary entry is stored in the database along with the detected emotions. Users can edit previous entries and view their entries grouped by date.

Personality Profile

The personality profile is generated based on the emotions recorded in the diary. The Big Five model is used to analyze emotions and generate a personality profile. Additionally, the eneagram is used to classify the user into a specific personality type.

Personal Goals

Personal goals are generated based on journal entries. The language model analyzes input and suggests improvement goals based on recorded emotions and thoughts, taking into account previous context and memory. Combining it with the existence of the diary, to have even more better ones.

Challenges we ran into

Deploying the application into the web and implementing the online database.

Accomplishments that we're proud of

The data management related with the chatbot memory and the online service deployment.

What we learned

We learnt about networks and how to combine it with a database. We also got to get familiarized with the streamlit framework that allowed us to make GET and POST requests to our database and join it with the backend. Lastly we learnt how to use an LLM (MISTRAL) using its API.

What's next for EmotionAI

We would like to make a better management of resources but with the small time we got we were limited. Also we would like to make more AI implementations such us the capability for the chatbot to generate audio to answer the user.

Built With

  • alwaysdata
  • mistral
  • mysql
  • python
  • render
  • streamlit
  • streamlitcommunitycloud
Share this project:

Updates