File size: 2,289 Bytes
2cefb06
9b5b26a
 
 
c19d193
6aae614
9b5b26a
 
2cefb06
0b67d6c
 
 
 
 
 
f273544
0b67d6c
 
f273544
0b67d6c
1b3edd6
f273544
1b3edd6
f273544
 
 
1b3edd6
 
 
 
f273544
 
0b67d6c
 
 
1b3edd6
9b5b26a
 
ca57e9e
 
 
 
 
 
 
 
 
 
9b5b26a
 
 
 
 
 
8c01ffb
 
ca57e9e
6aae614
ae7a494
e121372
2cefb06
 
 
 
13d500a
8c01ffb
9b5b26a
2cefb06
 
 
8c01ffb
2cefb06
861422e
2cefb06
 
8c01ffb
8fe992b
2cefb06
 
d19f8a4
1c36231
 
2cefb06
8c01ffb
 
 
 
 
 
861422e
8fe992b
 
2cefb06
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
from 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


@tool
def translate_english_to_french(text: str) -> str:
    """
    Translates English text into French.

    Args:
        text (str): English text to be translated.

    Returns:
        str: The translated French text.
    """
    local_model = HfApiModel(
        model_id="Qwen/Qwen2.5-Coder-32B-Instruct",
        max_tokens=256,
        temperature=0.2,
    )

    response = local_model(
        f"Translate the following English text into French. "
        f"Output only the translation:\n{text}"
    )

    return response




@tool
def get_current_time_in_timezone(timezone: str) -> str:
    """
    Fetches the current local time for a given timezone.

    Args:
        timezone (str): A valid IANA timezone string
            (for example: "America/New_York", "Europe/Paris", "Africa/Lagos").

    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)}"



final_answer = FinalAnswerTool()

model = HfApiModel(
    max_tokens=2096,
    temperature=0.5,
    model_id="Qwen/Qwen2.5-Coder-32B-Instruct",
    custom_role_conversions=None,
)

# Import tool from Hub
image_generation_tool = load_tool(
    "agents-course/text-to-image", trust_remote_code=True
)

with open("prompts.yaml", "r") as stream:
    prompt_templates = yaml.safe_load(stream)

# 🔴 🔴 🔴 THIS IS THE ONLY CHANGE 🔴 🔴 🔴
agent = CodeAgent(
    model=model,
    tools=[
        final_answer,               # REQUIRED – do not remove
        translate_english_to_french,
        get_current_time_in_timezone,
        image_generation_tool # 🔴 ADDED HERE
    ],
    max_steps=6,
    verbosity_level=1,
    grammar=None,
    planning_interval=None,
    name=None,
    description=None,
    prompt_templates=prompt_templates
)

GradioUI(agent).launch()