# app.py from smolagents import CodeAgent, HfApiModel, Tool import logging from Gradio_UI import GradioUI # Configure logging logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s' ) logger = logging.getLogger(__name__) class AnalysisTool(Tool): """Tool for analyzing web content.""" name = "web_analyzer" description = "Analyzes web content for summaries, sentiment, and topics" def forward(self, text: str, analysis_type: str) -> str: """Process the text based on analysis type.""" return text def create_agent(): """Create and configure the agent.""" try: # Initialize tools analyzer = AnalysisTool() # Initialize model model = HfApiModel( model_id='Qwen/Qwen2.5-Coder-32B-Instruct', max_tokens=2096, temperature=0.5 ) # Create agent with tools return CodeAgent( model=model, tools=[analyzer], # Add the tools here max_steps=3, verbosity_level=1 ) except Exception as e: logger.error(f"Failed to create agent: {e}") raise def main(): """Main application entry point.""" try: logger.info("Starting Smart Web Analyzer Plus...") # Create agent agent = create_agent() logger.info("Agent created successfully") # Create and launch UI ui = GradioUI(agent) ui.launch( server_name="0.0.0.0", server_port=7860 ) except Exception as e: logger.error(f"Application failed to start: {e}") raise if __name__ == "__main__": main()