File size: 1,390 Bytes
7ffac53
9b5b26a
 
c19d193
caed7c6
 
2c89473
7ffac53
61edc95
aaedf0d
7ffac53
aaedf0d
7ffac53
aaedf0d
 
 
 
7ffac53
aaedf0d
7ffac53
8c01ffb
7ffac53
725a248
8c01ffb
7ffac53
725a248
 
 
 
 
caed7c6
7ffac53
 
 
725a248
caed7c6
 
725a248
7ffac53
8c01ffb
8fe992b
7ffac53
8c01ffb
 
caed7c6
8fe992b
 
7ffac53
725a248
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
from smolagents import CodeAgent, HfApiModel, load_tool, tool
import datetime
import pytz
import yaml
from tools.final_answer import FinalAnswerTool
from Gradio_UI import GradioUI

# A simple working tool: Get current time in a timezone
@tool
def get_current_time_in_timezone(timezone: str) -> str:
    """Fetches the current time in a given timezone.
    Args:
        timezone: e.g., 'Asia/Kolkata', '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 time in {timezone} is: {local_time}"
    except Exception as e:
        return f"Invalid timezone '{timezone}': {str(e)}"

# Required tool
final_answer = FinalAnswerTool()

# Hugging Face model setup
model = HfApiModel(
    max_tokens=2048,
    temperature=0.5,
    model_id='Qwen/Qwen2.5-Coder-32B-Instruct'
)

# Optional: load text-to-image tool
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 agent
agent = CodeAgent(
    model=model,
    tools=[final_answer, get_current_time_in_timezone, image_generation_tool],
    max_steps=6,
    verbosity_level=1,
    prompt_templates=prompt_templates
)

# Start the Gradio UI
GradioUI(agent).launch()