Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| from transformers import pipeline | |
| # Load emotion classification model | |
| def load_model(): | |
| try: | |
| emotion_classifier = pipeline("text-classification", model="j-hartmann/emotion-english-distilroberta-base") | |
| return emotion_classifier | |
| except Exception as e: | |
| st.error(f"Error loading model: {str(e)}") | |
| return None | |
| emotion_classifier = load_model() | |
| # Well-being suggestions based on emotions | |
| def get_well_being_suggestions(emotion): | |
| suggestions = { | |
| "joy": { | |
| "text": "You're feeling joyful! Keep the positivity going.", | |
| "links": [ | |
| "https://www.nih.gov/health-information/emotional-wellness-toolkit", | |
| "https://www.health.harvard.edu/health-a-to-z", | |
| "https://www.helpguide.org/mental-health/meditation/mindful-breathing-meditation" | |
| ], | |
| "videos": [ | |
| "https://youtu.be/m1vaUGtyo-A", | |
| "https://youtu.be/MIc299Flibs" | |
| ] | |
| }, | |
| "anger": { | |
| "text": "You're feeling angry. Take a moment to calm down.", | |
| "links": [ | |
| "https://www.helpguide.org/mental-health/anxiety/tips-for-dealing-with-anxiety", | |
| "https://www.helpguide.org/mental-health/meditation/mindful-breathing-meditation" | |
| ], | |
| "videos": [ | |
| "https://youtu.be/m1vaUGtyo-A", | |
| "https://www.youtube.com/shorts/fwH8Ygb0K60?feature=share" | |
| ] | |
| }, | |
| "sadness": { | |
| "text": "You're feeling sad. It's okay to take a break.", | |
| "links": [ | |
| "https://www.nih.gov/health-information/emotional-wellness-toolkit", | |
| "https://www.helpguide.org/mental-health/anxiety/tips-for-dealing-with-anxiety" | |
| ], | |
| "videos": [ | |
| "https://youtu.be/-e-4Kx5px_I", | |
| "https://youtu.be/Y8HIFRPU6pM" | |
| ] | |
| }, | |
| "fear": { | |
| "text": "You're feeling fearful. Try some relaxation techniques.", | |
| "links": [ | |
| "https://www.helpguide.org/mental-health/anxiety/tips-for-dealing-with-anxiety", | |
| "https://www.health.harvard.edu/health-a-to-z" | |
| ], | |
| "videos": [ | |
| "https://www.youtube.com/shorts/Tq49ajl7c8Q?feature=share", | |
| "https://youtu.be/yGKKz185M5o" | |
| ] | |
| }, | |
| "disgust": { | |
| "text": "You're feeling disgusted. Take a deep breath and refocus.", | |
| "links": [ | |
| "https://www.health.harvard.edu/health-a-to-z", | |
| "https://www.helpguide.org/mental-health/anxiety/tips-for-dealing-with-anxiety" | |
| ], | |
| "videos": [ | |
| "https://youtu.be/MIc299Flibs", | |
| "https://youtu.be/-e-4Kx5px_I" | |
| ] | |
| }, | |
| } | |
| return suggestions.get(emotion, { | |
| "text": "Feeling neutral? That's okay! Take care of your mental health.", | |
| "links": [], | |
| "videos": [] | |
| }) | |
| # Streamlit UI | |
| def main(): | |
| # Set the background image | |
| st.markdown(""" | |
| <style> | |
| .stApp { | |
| background-image: url('https://www.example.com/your-image.jpg'); | |
| background-size: cover; | |
| background-position: center; | |
| } | |
| </style> | |
| """, unsafe_allow_html=True) | |
| # Title of the app | |
| st.title("Emotion Prediction and Well-being Suggestions") | |
| # User input for emotional state | |
| st.header("Tell us how you're feeling today!") | |
| user_input = st.text_area("Enter a short sentence about your current mood:", "") | |
| if user_input: | |
| # Clean the input text (stripping unnecessary spaces, lowercasing) | |
| clean_input = user_input.strip().lower() | |
| # Use the model to predict emotion | |
| try: | |
| result = emotion_classifier(clean_input) | |
| st.write(f"Raw Model Result: {result}") # Debug output to see raw result | |
| emotion = result[0]['label'].lower() | |
| st.subheader(f"Emotion Detected: {emotion.capitalize()}") | |
| # Get well-being suggestions based on emotion | |
| suggestions = get_well_being_suggestions(emotion) | |
| # Display text suggestions | |
| st.write(suggestions["text"]) | |
| # Display links | |
| if suggestions["links"]: | |
| st.write("Useful Resources:") | |
| for link in suggestions["links"]: | |
| st.markdown(f"[{link}]({link})") | |
| # Display video links | |
| if suggestions["videos"]: | |
| st.write("Relaxation Videos:") | |
| for video in suggestions["videos"]: | |
| st.markdown(f"[Watch here]({video})") | |
| # Add a button for a summary | |
| if st.button('Summary'): | |
| st.write(f"Emotion detected: {emotion.capitalize()}. Here are your well-being suggestions to enhance your mood.") | |
| st.write("Explore the links and videos to improve your emotional health!") | |
| except Exception as e: | |
| st.error(f"Error predicting emotion: {str(e)}") | |
| # Run the Streamlit app | |
| if __name__ == "__main__": | |
| main() | |