MHamdan's picture
Initial commit with full functionality extend app req tools
7eed016
raw
history blame
1.82 kB
# 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()