import gradio as gr from transformers import pipeline # Load the pre-trained model (using the provided model or custom trained model) def load_model(): # Use Hugging Face's 'cardiffnlp/twitter-roberta-base-sentiment' or a custom model path return pipeline('sentiment-analysis', model='cardiffnlp/twitter-roberta-base-sentiment') # Initialize the model sentiment_model = load_model() # Function to analyze sentiment and provide motivational feedback def analyze_sentiment(user_input): # Get sentiment prediction result = sentiment_model(user_input) if not result: return "Could not determine sentiment. Please try again." sentiment = result[0]['label'].lower() # Extract sentiment label and convert to lowercase for comparison print(f"Sentiment Analysis Result: {result}") # Debug: Print model result for review # Analyze the mood and provide motivational messages accordingly if sentiment == 'negative': return ( "Mood Detected: Negative 😔\n\n" "Stay positive! 🌟 Remember, tough times don't last, but tough people do!" ) elif sentiment == 'neutral': return ( "Mood Detected: Neutral 😐\n\n" "It's good to reflect on steady days. Keep your goals in mind, and stay motivated!" ) elif sentiment == 'positive': return ( "Mood Detected: Positive 😊\n\n" "You're on the right track! Keep shining! 🌞" ) else: return ( "Mood Detected: Unknown 🤔\n\n" "Keep going, you're doing great!" ) # Gradio UI def chatbot_ui(): # Define the Gradio interface interface = gr.Interface( fn=analyze_sentiment, inputs=gr.Textbox(label="Enter your text here:", placeholder="Type your feelings or thoughts..."), outputs=gr.Textbox(label="Motivational Message"), title="Student Sentiment Analysis Chatbot", description="This chatbot detects your mood and provides positive or motivational messages based on sentiment analysis." ) return interface # Launch the interface if __name__ == "__main__": chatbot_ui().launch()