CoolFace
Apppublic

eocone/First_agent_template

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
app.py75 linesDownload Raw Back to root
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