# app.py from smolagents import CodeAgent, HfApiModel from tools.final_answer import FinalAnswerTool import yaml from Gradio_UI import GradioUI import logging import sys # Configure logging logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', handlers=[ logging.StreamHandler(sys.stdout), logging.FileHandler('app.log') ] ) logger = logging.getLogger(__name__) def create_agent(): """Create and configure the agent.""" try: # Initialize tools final_answer = FinalAnswerTool() # Load prompts with open("prompts.yaml", 'r', encoding='utf-8') as stream: prompt_templates = yaml.safe_load(stream) # Initialize model model = HfApiModel( model_id='Qwen/Qwen2.5-Coder-32B-Instruct', max_tokens=2096, temperature=0.5 ) # Create agent return CodeAgent( model=model, tools=[final_answer], max_steps=6, verbosity_level=1, prompt_templates=prompt_templates ) except Exception as e: logger.error(f"Failed to create agent: {str(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, share=False ) except Exception as e: logger.error(f"Application failed to start: {str(e)}") sys.exit(1) if __name__ == "__main__": main()