import gradio as gr from textblob import TextBlob import logging # Set up basic logging logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) def sentiment_analysis(text: str) -> dict: """ Analyze the sentiment of the given text. Args: text (str): The text to analyze Returns: dict: A dictionary containing polarity, subjectivity, and assessment """ logger.info(f"Received input: {text}") blob = TextBlob(text) sentiment = blob.sentiment result = { "polarity": round(sentiment.polarity, 2), "subjectivity": round(sentiment.subjectivity, 2), "assessment": "positive" if sentiment.polarity > 0 else "negative" if sentiment.polarity < 0 else "neutral" } logger.info(f"Returning result: {result}") return result # Create the Gradio interface demo = gr.Interface( fn=sentiment_analysis, inputs=gr.Textbox(placeholder="Enter text to analyze..."), outputs=gr.JSON(), title="Text Sentiment Analysis", description="Analyze the sentiment of text using TextBlob" ) # Launch the interface and MCP server if __name__ == "__main__": logger.info("Starting Gradio app...") demo.launch(mcp_server=True, show_error=True)