File size: 1,618 Bytes
b91442b
 
 
 
 
9b5b26a
 
c19d193
904d68e
b91442b
9b5b26a
b91442b
 
9b5b26a
b91442b
 
9b5b26a
b91442b
9b5b26a
b91442b
9b5b26a
 
 
 
b91442b
9b5b26a
 
 
 
b91442b
9b5b26a
b91442b
904d68e
b91442b
6aae614
b91442b
a6b7f64
b91442b
 
 
 
 
904d68e
8c01ffb
b91442b
 
 
8c01ffb
b91442b
8c01ffb
8fe992b
b91442b
8c01ffb
 
b91442b
8fe992b
 
b91442b
 
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
from smolagents import CodeAgent, load_tool, tool
from smolagents.models import InferenceClientModel
from tools.final_answer import FinalAnswerTool
from Gradio_UI import GradioUI

import datetime
import pytz
import yaml

# Example Tool 1: Custom tool
@tool
def my_custom_tool(arg1: str, arg2: int) -> str:
    """A tool that returns a string combining the two inputs.
    Args:
        arg1: a string
        arg2: an integer
    """
    return f"You passed arg1={arg1} and arg2={arg2}. Magic happens!"

# Example Tool 2: Timezone tool
@tool
def get_current_time_in_timezone(timezone: str) -> str:
    """A tool that fetches the current local time in a specified timezone.
    Args:
        timezone: A string like 'America/New_York'
    """
    try:
        tz = pytz.timezone(timezone)
        local_time = datetime.datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S")
        return f"The time in {timezone} is: {local_time}"
    except Exception as e:
        return f"Invalid timezone '{timezone}': {str(e)}"

# Tools
final_answer = FinalAnswerTool()
image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)

# Model
model = InferenceClientModel(
    model_id='Qwen/Qwen2.5-Coder-32B-Instruct',
    max_tokens=2048,
    temperature=0.5,
)

# Prompts
with open("prompts.yaml", "r") as f:
    prompt_templates = yaml.safe_load(f)

# Agent
agent = CodeAgent(
    model=model,
    tools=[final_answer, my_custom_tool, get_current_time_in_timezone, image_generation_tool],
    max_steps=6,
    verbosity_level=1,
    prompt_templates=prompt_templates,
)

# Gradio UI
GradioUI(agent).launch()