Spaces:
Running
Running
File size: 3,529 Bytes
589aa3a 9b5b26a c19d193 6aae614 8fe992b 9b5b26a eaebfa9 5df72d6 dc7259f 9b5b26a dc7259f 9b5b26a b9bf8b4 f6aebea b9bf8b4 f6aebea 5785280 9b5b26a f6aebea 9b5b26a f6aebea 7236413 8c01ffb 5785280 6aae614 ae7a494 b9bf8b4 e121372 7236413 be3edd3 7236413 13d500a 8c01ffb 9b5b26a 8c01ffb b9bf8b4 861422e 9b5b26a b9bf8b4 8c21a97 8fe992b f6aebea 8c21a97 8c01ffb 5785280 861422e 8fe992b b7e6c92 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
from smolagents import CodeAgent,DuckDuckGoSearchTool, HfApiModel,load_tool,tool,transformers
import datetime
import requests
import pytz
import yaml
from tools.final_answer import FinalAnswerTool
from Gradio_UI import GradioUI
from transformers import AutoModel
access_token = "HF_TOKEN"
model = AutoModel.from_pretrained("private/model", token=access_token)
# Below is an example of a tool that does nothing. Amaze us with your creativity !
#@tool
#def my_custom_tool(arg1:str, arg2:int)-> str: #it's import to specify the return type
#Keep this format for the description / args / args description but feel free to modify the tool
# """A tool that does nothing yet
# Args:
# arg1: the first argument
# arg2: the second argument
# """
# return "What magic will you build ?"
# tool which i creating. A tool for generating an animal image
@tool
def animal_image_generation_tool(animal_name: str) -> str:
"""Generating an image of an animal by its name.
Args:
animal_name: A string representing the name of the animal to search for (e.g., 'cat').
Returns:
A string with the URL of the generated image or an error message.
"""
try:
# use the DuckDuckGo Search to find information about an animal by its name.
search_tool = DuckDuckGoSearchTool()
search_results = search_tool.run(f"{animal_name} animal description")
# generates an image based on the description of an animal.
image_url = image_generation_tool.run(f"Create a realistic image of a {animal_name}")
return f"Image {animal_name} successfully generated: {image_url}"
except Exception as e:
return f"Error during image generation: {str(e)}"
@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:
# Create timezone object
tz = pytz.timezone(timezone)
# Get current time in that 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)}"
# Initializing the tool for the final response
final_answer = FinalAnswerTool()
# If the agent does not answer, the model is overloaded, please use another model or the following Hugging Face Endpoint that also contains qwen2.5 coder:
# model_id='https://pflgm2locj2t89co.us-east-1.aws.endpoints.huggingface.cloud'
# configuring the model
model = HfApiModel(
max_tokens=2096,
temperature=0.5,
model_id='Qwen/Qwen2.5-Coder-32B-Instruct',# it is possible that this model may be overloaded
#model_id="meta-llama/Llama-3.2-3B-Instruct",
custom_role_conversions=None,
)
# Import tool from Hub
image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
# Uploading Suggestion Templates
with open("prompts.yaml", 'r') as stream:
prompt_templates = yaml.safe_load(stream)
# creating an agent
agent = CodeAgent(
model=model,
tools=[final_answer, animal_image_generation_tool], ## add your tools here (don't remove final answer)
max_steps=6,
verbosity_level=1,
grammar=None,
planning_interval=None,
name=None,
description=None,
prompt_templates=prompt_templates
)
GradioUI(agent).launch() |