File size: 2,410 Bytes
6f6df70
9b5b26a
 
 
c19d193
6f6df70
9b5b26a
49c46d2
9b5b26a
2124418
 
9b5b26a
2124418
9b5b26a
2124418
49ec2de
2124418
 
31d692f
2124418
 
 
9b5b26a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8c01ffb
 
6aae614
6f6df70
 
 
e121372
49c46d2
 
6f6df70
49c46d2
13d500a
8c01ffb
861422e
 
9b5b26a
8c01ffb
8fe992b
e0bb7d0
8c01ffb
 
 
 
6f6df70
8c01ffb
861422e
8fe992b
 
9b5b26a
6f6df70
 
 
 
 
 
 
 
 
 
 
 
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
78
79
from smolagents import CodeAgent,GoogleSearchTool, HfApiModel,load_tool,tool,FinalAnswerTool
import datetime
import requests
import pytz
import yaml
import os
from Gradio_UI import GradioUI
# Tools
@tool
def to_uppercase(arg1:str)-> str: #it's import to specify the return type
    """A tool that converts a sentence to uppercase alternatively.
    Args:
        arg1: the sentence to be converted to uppercase
    """
    i = 0
    output = ""
    for text in arg1:
        if i % 2 == 0:
            text = text.upper()
        i += 1
        output = output + text
    return output

@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 representing a valid timezone (e.g., 'America/New_York').
    """
    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()
google_search = GoogleSearchTool()
image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)

model = HfApiModel(
    max_tokens=2096,
    temperature=0.5,
    model_id='meta-llama/Llama-3.2-3B-Instruct',
    custom_role_conversions=None,
)

with open("prompts.yaml", 'r') as stream:
    prompt_templates = yaml.safe_load(stream)
    
agent = CodeAgent(
    model=model,
    tools=[final_answer, google_search, image_generation_tool, get_current_time_in_timezone, to_uppercase], ## add your tools here (don't remove final answer)
    max_steps=6,
    verbosity_level=1,
    grammar=None,
    planning_interval=None,
    name="Alpi",
    description=None,
    prompt_templates=prompt_templates
)


"""with gr.Blocks() as demo:
    chatbot = gr.Chatbot(label="Conversation")
    message = gr.Textbox(label="Input", placeholder="Type your message here...")
    
    def respond(user_message, history):
        response = agent(user_message)
        history.append((user_message, response))
        return "", history

    message.submit(respond, inputs=[message, chatbot], outputs=[message, chatbot])
    
demo.launch()"""
GradioUI(agent).launch()