File size: 1,968 Bytes
c73fca6
9b5b26a
c73fca6
9b5b26a
4af2208
6aae614
9b5b26a
8563f1a
c73fca6
 
 
 
 
 
 
 
8563f1a
c73fca6
9b5b26a
c73fca6
 
 
 
9b5b26a
 
 
 
 
 
8c01ffb
c73fca6
6aae614
ae7a494
c73fca6
e121372
8563f1a
 
 
 
13d500a
8c01ffb
c73fca6
 
 
 
861422e
 
8563f1a
c73fca6
8c01ffb
8fe992b
c73fca6
8c01ffb
 
 
 
c73fca6
 
861422e
8fe992b
 
c73fca6
8563f1a
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
ffrom smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, load_tool, tool
import datetime
import requests
import pytz
import yaml
from tools.final_answer import FinalAnswerTool
from Gradio_UI import GradioUI

# Example custom tool
def my_custom_tool(arg1: str, arg2: int) -> str:
    """A tool that does nothing yet.
    Args:
        arg1: The first argument.
        arg2: The second argument.
    """
    return "What magic will you build?"

# Tool to get current time in a specified timezone
def get_current_time_in_timezone(timezone: str) -> str:
    """Fetches the current local time in a specified timezone.
    Args:
        timezone: A valid timezone string (e.g., 'America/New_York').
    """
    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 the 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()