File size: 2,125 Bytes
1c91ce4
9b5b26a
 
 
c19d193
6aae614
8fe992b
9b5b26a
 
47fc2a3
9b5b26a
c082eff
 
9b5b26a
c082eff
 
9b5b26a
c082eff
 
 
 
9b5b26a
 
 
8ad8a05
9b5b26a
8ad8a05
9b5b26a
 
 
 
 
 
 
 
 
8c01ffb
 
6aae614
15b19e7
47fc2a3
 
 
 
13d500a
8c01ffb
 
9b5b26a
 
8c01ffb
47fc2a3
861422e
 
9b5b26a
69e79da
 
8c01ffb
8fe992b
69e79da
 
 
 
c082eff
69e79da
 
8c01ffb
 
 
 
 
 
69e79da
8fe992b
 
9b5b26a
69e79da
8c01ffb
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
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

# Below is an example of a tool that does nothing. Amaze us with your creativity!
@tool
def summarize_text(text: str, max_words: int) -> str:
    """Summarizes a given text by truncating it to a maximum number of words.
    Args:
        text: The text to summarize
        max_words: Maximum number of words in the summary
    """
    words = text.split()
    if len(words) <= max_words:
        return text
    return " ".join(words[:max_words]) + "..."

@tool
def get_current_time_in_timezone(timezone: str) -> str:
    """Get the current local time for the specific timezone.
    Args:
        timezone: A valid timezone name (e.g., 'America/New_York', 'Asia/Karachi').
    """
    try:
        # Create timezone object
        tz = pytz.timezone(timezone)
        # Get current time in that 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)

# Load system prompt from prompt.yaml file
with open("prompts.yaml", 'r') as stream:
    prompt_templates = yaml.safe_load(stream)
    
search_tool = DuckDuckGoSearchTool()

agent = CodeAgent(
    model=model,
    tools=[
        final_answer,
        search_tool,
        image_generation_tool,
        summarize_text,
        get_current_time_in_timezone
    ],
    max_steps=6,
    verbosity_level=1,
    grammar=None,
    planning_interval=None,
    name=None,
    description=None,
    prompt_templates=prompt_templates
)



GradioUI(agent).launch()