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

# Custom Tool Example
@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
def get_current_time_in_timezone(timezone: str) -> str:
    """Fetches the current local time in a specified timezone.
    Args:
        timezone: A string representing a valid timezone (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)}"

final_answer = FinalAnswerTool()

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

# Import additional tools
image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
web_search_tool = DuckDuckGoSearchTool()

with open("prompts.yaml", 'r') as stream:
    prompt_templates = yaml.safe_load(stream)
    
agent = CodeAgent(
    model=model,
    tools=[final_answer, web_search_tool, image_generation_tool],  # Added web search and image generation
    max_steps=6,
    verbosity_level=1,
    grammar=None,
    planning_interval=None,
    name=None,
    description=None,
    prompt_templates=prompt_templates
)

GradioUI(agent).launch()