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()