import gradio as gr from textblob import TextBlob def sentiment_analysis(text: str) -> dict: """ Analyze the sentiment of a given text. Args: text (str): The input text to analyze. Returns: str: The sentiment of the text, either 'Positive', 'Negative', or 'Neutral'. """ blob = TextBlob(text) sentiment = blob.sentiment return { "polarity": round(sentiment.polarity, 2), # -1 (negative) to 1 (positive) "subjectivity": round( sentiment.subjectivity, 2 ), # 0 (objective) to 1 (subjective) "assessment": ( "Positive" if sentiment.polarity > 0 else "Negative" if sentiment.polarity < 0 else "Neutral" ), } demo = gr.Interface( fn=sentiment_analysis, inputs=gr.Textbox(placeholder="Enter text to analyze sentiment..."), outputs=gr.JSON(), title="Sentiment Analysis", description="Analyze the sentiment of a given text using TextBlob.", ) if __name__ == "__main__": demo.launch(mcp_server=True)