import gradio as gr from transformers import pipeline # Load the pre-trained model (cached for performance) def load_model(): return pipeline('sentiment-analysis', model='cardiffnlp/twitter-roberta-base-sentiment') sentiment_model = load_model() # Define the function to analyze sentiment def analyze_sentiment(user_input): result = sentiment_model(user_input)[0] sentiment = result['label'].lower() # Convert to lowercase for easier comparison # Customize messages based on detected sentiment if sentiment == 'negative': return "Mood Detected: Negative 😔\n\nStay positive! 🌟 Remember, tough times don't last, but tough people do!" elif sentiment == 'neutral': return "Mood Detected: Neutral 😐\n\nIt's good to reflect on steady days. Keep your goals in mind, and stay motivated!" elif sentiment == 'positive': return "Mood Detected: Positive 😊\n\nYou're on the right track! Keep shining! 🌞" else: return "Mood Detected: Unknown 🤔\n\nKeep going, you're doing great!" # Gradio UI def chatbot_ui(): # Define the interface interface = gr.Interface( fn=analyze_sentiment, inputs=gr.Textbox(label="Enter your text here:"), outputs=gr.Textbox(label="Motivational Message"), title="Student Sentiment Analysis Chatbot", description="This chatbot detects your mood and provides positive or motivational messages." ) return interface # Launch the interface if __name__ == "__main__": chatbot_ui().launch()