eocone/First_agent_template
0
1from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, load_tool, tool2import datetime3import requests4import pytz5import yaml6import re7from typing import Optional8from duckduckgo_search import DDGS9from tools.final_answer import FinalAnswerTool10from Gradio_UI import GradioUI11 12@tool13def dog_average_longevity(breed: str) -> str: 14 """A tool that retrieves the average lifespan of a given dog breed using DuckDuckGo search.15 Args:16 breed: a string representing the name of the dog breed. 17 """18 #return "A string stating the average lifespan of the dog breed in years."19 20 query = f"average lifespan for {breed} dog in years"21 22 with DDGS() as ddgs:23 results = list(ddgs.text(query, max_results=5))24 25 if results:26 for result in results:27 lifespan = extract_lifespan(result)28 if lifespan:29 return f"The average lifespan of a {breed} dog is {lifespan} years."30 31 return "No reliable lifespan information found. Please check with a veterinarian."32 33@tool34def extract_lifespan(text: str) -> Optional[str]:35 """36 Extracts the first occurrence of a lifespan range or single number in years.37 Args:38 text: The input text from search results.39 :return: Extracted lifespan range or single value (e.g., '10-12 years' or '13 years') or None.40 """41 pattern = r"(\d{1,2}\s?(-|to)\s?\d{1,2}|\d{1,2})\s?(years|yrs)?"42 match = re.search(pattern, text, re.IGNORECASE)43 44 if match:45 return match.group(1)46 return None 47 48final_answer = FinalAnswerTool()49model = HfApiModel(50 max_tokens=2096,51 temperature=0.5,52 model_id='https://wxknx1kg971u7k1n.us-east-1.aws.endpoints.huggingface.cloud',53 custom_role_conversions=None,54)55 56# Import tool from Hugging Face Hub57image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)58 59with open("prompts.yaml", 'r') as stream:60 prompt_templates = yaml.safe_load(stream)61 62agent = CodeAgent(63 model=model,64 tools=[final_answer, dog_average_longevity, extract_lifespan, image_generation_tool], # Now includes image generation65 max_steps=6,66 verbosity_level=1,67 grammar=None,68 planning_interval=None,69 name=None,70 description=None,71 prompt_templates=prompt_templates72)73 74GradioUI(agent).launch()75 