File size: 1,977 Bytes
4990391 9b5b26a f78a8ef 6aae614 9b5b26a 8563f1a 38abccb 72da679 9b5b26a 670b88c 38abccb 670b88c 38abccb 670b88c 9b5b26a 8c01ffb c73fca6 6aae614 ae7a494 38abccb e121372 8563f1a 38abccb 8563f1a 13d500a 8c01ffb 38abccb c73fca6 861422e 8563f1a 38abccb 8c01ffb 8fe992b 38abccb 8c01ffb 38abccb 861422e 8fe992b c73fca6 8563f1a 72da679 b8c8cbd |
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 using @tool decorator
@tool
def get_current_time_in_timezone(timezone: str) -> str:
"""
Fetches the current local time in a specified timezone.
Parameters:
timezone (str): The name of the timezone in "Continent/City" format.
Example: "Asia/Kolkata", "America/New_York".
Returns:
str: The current time in the given timezone in 'YYYY-MM-DD HH:MM:SS' format,
or an error message if the timezone is invalid.
"""
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, 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()
|