Spaces:
Sleeping
Sleeping
File size: 2,701 Bytes
37ff7dd 3cd3230 5952adf 300162c 6159aa1 5952adf 300162c 5952adf 37ff7dd 3cd3230 6159aa1 3cd3230 6159aa1 3cd3230 39e9071 7eed016 5952adf 3cd3230 7eed016 5952adf 3cd3230 5952adf 6159aa1 300162c 5952adf 300162c 5952adf 7eed016 5952adf 7eed016 5952adf 7eed016 5952adf 7eed016 5952adf 300162c 5952adf 300162c 4518be2 37ff7dd 5952adf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# app.py
from smolagents import CodeAgent, HfApiModel, Tool
import logging
from Gradio_UI import GradioUI
from typing import Dict, Any
# 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"
# Define the required inputs
inputs: Dict[str, Any] = {
"text": {
"type": "string",
"description": "The text content to analyze"
},
"analysis_type": {
"type": "string",
"description": "Type of analysis to perform (summarize, sentiment, or topics)"
}
}
# Define the output type
output_type = "string"
def forward(self, text: str, analysis_type: str) -> str:
"""Process the text based on analysis type."""
try:
if analysis_type == "summarize":
return f"Summary of the text: {text[:500]}..."
elif analysis_type == "sentiment":
return f"Sentiment analysis of: {text[:500]}..."
elif analysis_type == "topics":
return f"Topics identified in: {text[:500]}..."
else:
return f"Unknown analysis type: {analysis_type}"
except Exception as e:
logger.error(f"Error in analysis: {e}")
return f"Error during analysis: {str(e)}"
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],
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() |