from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, load_tool, tool import datetime import pytz import yaml from tools.final_answer import FinalAnswerTool from Gradio_UI import GradioUI @tool def search_ai_product_management_news() -> list: """A tool that fetches the latest news about AI and Product Management from the web. Returns a list of news articles sorted by relevance (date and source credibility).""" search_tool = DuckDuckGoSearchTool() query = "Artificial Intelligence AND Product Management news" results = search_tool.search(query, max_results=10) # Sorting results by date and source credibility (if available) sorted_results = sorted(results, key=lambda x: (x.get('date', ''), x.get('source', '')), reverse=True) return sorted_results final_answer = FinalAnswerTool() model = HfApiModel( max_tokens=2096, temperature=0.5, model_id='Qwen/Qwen2.5-Coder-32B-Instruct', custom_role_conversions=None, ) with open("prompts.yaml", 'r') as stream: prompt_templates = yaml.safe_load(stream) agent = CodeAgent( model=model, tools=[final_answer, search_ai_product_management_news], max_steps=6, verbosity_level=1, grammar=None, planning_interval=None, name="AI News Agent", description="An agent that fetches and ranks AI & Product Management news", prompt_templates=prompt_templates ) GradioUI(agent).launch()