Spaces:
Running
Running
# 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() |