| from smolagents import CodeAgent,DuckDuckGoSearchTool, HfApiModel,load_tool,tool |
| import datetime |
| import requests |
| import pytz |
| import yaml |
| import pandas as pd |
| from tools.final_answer import FinalAnswerTool |
|
|
| from Gradio_UI import GradioUI |
|
|
| |
|
|
| @tool |
| def search_latest_ai_models(topic: str) -> str: |
| """ |
| Searches for latest AI/GenAI model announcements using DuckDuckGo and returns results in tabular format. |
| |
| Args: |
| topic: Topic to search (e.g., 'latest Generative AI models 2025') |
| Returns: |
| Markdown table summarizing AI model, company, and purpose. |
| """ |
| search_tool = DuckDuckGoSearchTool() |
| results = search_tool(topic) |
|
|
| |
| table_data = [] |
| for item in results[:5]: |
| |
| title = item.get("title", "") |
| link = item.get("link", "") |
| snippet = item.get("body", "") |
|
|
| model = title.split(" ")[0] |
| company = "Unknown" |
| if "Google" in snippet or "Google" in title: |
| company = "Google" |
| elif "OpenAI" in snippet or "OpenAI" in title: |
| company = "OpenAI" |
| elif "Anthropic" in snippet or "Anthropic" in title: |
| company = "Anthropic" |
| elif "Alibaba" in snippet or "Alibaba" in title: |
| company = "Alibaba" |
|
|
| table_data.append({ |
| "Model": model, |
| "Company": company, |
| "Purpose": snippet[:100] + "..." if snippet else "N/A", |
| "Link": link |
| }) |
|
|
| |
| markdown = "| Model | Company | Purpose | Link |\n|-------|---------|---------|------|\n" |
| for row in table_data: |
| markdown += f"| {row['Model']} | {row['Company']} | {row['Purpose']} | [Link]({row['Link']}) |\n" |
|
|
| return markdown |
|
|
|
|
| @tool |
| def get_current_time_in_timezone(timezone: str) -> str: |
| """A tool that fetches the current local time in a specified timezone. |
| Args: |
| timezone: A string representing a valid timezone (e.g., 'America/New_York'). |
| """ |
| try: |
| |
| tz = pytz.timezone(timezone) |
| |
| local_time = datetime.datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S") |
| return f"The current local time in {timezone} is: {local_time}" |
| except Exception as e: |
| return f"Error fetching time for timezone '{timezone}': {str(e)}" |
|
|
|
|
| final_answer = FinalAnswerTool() |
|
|
| |
| |
|
|
| model = HfApiModel( |
| max_tokens=2096, |
| temperature=0.5, |
| model_id= 'deepseek-ai/deepseek-coder-33b-instruct', |
| custom_role_conversions=None, |
| ) |
|
|
|
|
| |
| image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True) |
|
|
| with open("prompts.yaml", 'r') as stream: |
| prompt_templates = yaml.safe_load(stream) |
| |
| agent = CodeAgent( |
| model=model, |
| tools=[final_answer, search_latest_ai_models], |
| max_steps=6, |
| verbosity_level=1, |
| grammar=None, |
| planning_interval=None, |
| name=None, |
| description=None, |
| prompt_templates=prompt_templates |
| ) |
|
|
|
|
| GradioUI(agent).launch() |