File size: 1,917 Bytes
4990391 9b5b26a f78a8ef 6aae614 9b5b26a 8563f1a 3151e4d 72da679 9b5b26a 670b88c 3151e4d 670b88c 3151e4d 670b88c 9b5b26a 8c01ffb c73fca6 6aae614 ae7a494 38abccb e121372 8563f1a 38abccb 8563f1a 13d500a 8c01ffb 38abccb c73fca6 861422e 8563f1a 38abccb 8c01ffb 8fe992b 3151e4d 8c01ffb 38abccb 861422e 8fe992b c73fca6 3151e4d |
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 |
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
# Define the tool correctly with a properly formatted docstring
@tool
def get_current_time_in_timezone(timezone: str) -> str:
"""
Fetches the current local time in a specified timezone.
Args:
timezone (str): The timezone string (e.g., 'America/New_York', 'Asia/Kolkata').
Returns:
str: The current local time in the specified timezone.
"""
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)}"
# Load final answer tool
final_answer = FinalAnswerTool()
# Define the model
model = HfApiModel(
max_tokens=2096,
temperature=0.5,
model_id='Qwen/Qwen2.5-Coder-32B-Instruct',
custom_role_conversions=None,
)
# Import an image generation tool from Hugging Face Hub
image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
# Load prompt templates
with open("prompts.yaml", 'r') as stream:
prompt_templates = yaml.safe_load(stream)
# Create the Agent with properly defined tools
agent = CodeAgent(
model=model,
tools=[
final_answer,
DuckDuckGoSearchTool(),
get_current_time_in_timezone, # Now properly formatted
image_generation_tool
],
max_steps=6,
verbosity_level=1,
grammar=None,
planning_interval=None,
name="My First SmolAgent",
description="An AI assistant capable of searching, fetching time, and generating images.",
prompt_templates=prompt_templates
)
# Launch UI
GradioUI(agent).launch() |