import streamlit as st from transformers import AutoTokenizer, AutoModelForSequenceClassification from transformers import pipeline # Set page config as the very first Streamlit command st.set_page_config(page_title="Emotion Detection and Well-Being Suggestions", layout="wide") # Load pre-trained model and tokenizer @st.cache_resource def load_model(): tokenizer = AutoTokenizer.from_pretrained("j-hartmann/emotion-english-distilroberta-base") model = AutoModelForSequenceClassification.from_pretrained("j-hartmann/emotion-english-distilroberta-base") return tokenizer, model tokenizer, model = load_model() # Add an aesthetic background with a soothing gradient for a calming effect and black text st.markdown( """ <style> body { background: linear-gradient(135deg, #8e2de2, #4a00e0); /* Purple gradient for a calm vibe */ background-size: cover; background-attachment: fixed; color: black; /* Set text color to black */ } .stButton button { background-color: #6c63ff; /* Blue button color to match the calming purple gradient */ color: white; font-size: 20px; } .stTextInput input { background-color: rgba(255, 255, 255, 0.2); /* Semi-transparent background for text input */ color: black; /* Black text for input fields */ font-size: 16px; } .stMarkdown { color: black; /* Ensure markdown text is black for better readability */ } </style> """, unsafe_allow_html=True, ) # Display header st.title("Emotion Detection and Well-Being Suggestions") # User input for text (emotion detection) user_input = st.text_area("How are you feeling today?", "Enter your thoughts here...") # Model prediction if user_input: pipe = pipeline("text-classification", model=model, tokenizer=tokenizer) result = pipe(user_input) # Extracting the emotion from the model's result emotion = result[0]['label'] # Display emotion st.write(f"**Emotion Detected:** {emotion}") # Provide suggestions based on the detected emotion if emotion == 'joy': st.write("You're feeling happy! Keep up the great mood!") st.write("Useful Resources:") st.markdown("[Relaxation Techniques](https://www.helpguide.org/mental-health/meditation/mindful-breathing-meditation)") st.write("[Dealing with Stress](https://www.helpguide.org/mental-health/anxiety/tips-for-dealing-with-anxiety)") st.write("[Emotional Wellness Toolkit](https://www.nih.gov/health-information/emotional-wellness-toolkit)") st.write("Relaxation Videos:") st.markdown("[Watch on YouTube](https://youtu.be/m1vaUGtyo-A)") elif emotion == 'anger': st.write("You're feeling angry. It's okay to feel this way. Let's try to calm down.") st.write("Useful Resources:") st.markdown("[Emotional Wellness Toolkit](https://www.nih.gov/health-information/emotional-wellness-toolkit)") st.write("[Stress Management Tips](https://www.health.harvard.edu/health-a-to-z)") st.write("[Dealing with Anger](https://www.helpguide.org/mental-health/anxiety/tips-for-dealing-with-anxiety)") st.write("Relaxation Videos:") st.markdown("[Watch on YouTube](https://youtu.be/MIc299Flibs)") elif emotion == 'fear': st.write("You're feeling fearful. Take a moment to breathe and relax.") st.write("Useful Resources:") st.markdown("[Mindfulness Practices](https://www.helpguide.org/mental-health/meditation/mindful-breathing-meditation)") st.write("[Coping with Anxiety](https://www.helpguide.org/mental-health/anxiety/tips-for-dealing-with-anxiety)") st.write("[Emotional Wellness Toolkit](https://www.nih.gov/health-information/emotional-wellness-toolkit)") st.write("Relaxation Videos:") st.markdown("[Watch on YouTube](https://youtu.be/yGKKz185M5o)") elif emotion == 'sadness': st.write("You're feeling sad. It's okay to take a break.") st.write("Useful Resources:") st.markdown("[Emotional Wellness Toolkit](https://www.nih.gov/health-information/emotional-wellness-toolkit)") st.write("[Dealing with Anxiety](https://www.helpguide.org/mental-health/anxiety/tips-for-dealing-with-anxiety)") st.write("Relaxation Videos:") st.markdown("[Watch on YouTube](https://youtu.be/-e-4Kx5px_I)") elif emotion == 'surprise': st.write("You're feeling surprised. It's okay to feel neutral!") st.write("Useful Resources:") st.markdown("[Managing Stress](https://www.health.harvard.edu/health-a-to-z)") st.write("[Coping Strategies](https://www.helpguide.org/mental-health/anxiety/tips-for-dealing-with-anxiety)") st.write("Relaxation Videos:") st.markdown("[Watch on YouTube](https://youtu.be/m1vaUGtyo-A)") # Add a button for summary if st.button("Show Summary"): st.write(f"Emotion Detected: {emotion}") st.write("Useful Resources based on your mood:") if emotion == 'joy': st.write("[Relaxation Techniques](https://www.helpguide.org/mental-health/meditation/mindful-breathing-meditation)") elif emotion == 'anger': st.write("[Stress Management Tips](https://www.health.harvard.edu/health-a-to-z)") elif emotion == 'fear': st.write("[Mindfulness Practices](https://www.helpguide.org/mental-health/meditation/mindful-breathing-meditation)") elif emotion == 'sadness': st.write("[Dealing with Anxiety](https://www.helpguide.org/mental-health/anxiety/tips-for-dealing-with-anxiety)") elif emotion == 'surprise': st.write("[Managing Stress](https://www.health.harvard.edu/health-a-to-z)")