File size: 2,473 Bytes
9b5b26a
3bbdc2d
d368e74
9b5b26a
c19d193
d368e74
 
 
 
8fe992b
9b5b26a
d368e74
 
9b5b26a
 
d368e74
 
9b5b26a
d368e74
 
 
3bbdc2d
 
 
 
 
 
 
 
9b5b26a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8c01ffb
 
d368e74
 
6aae614
9b5b26a
d368e74
8c01ffb
27598f8
 
 
f62f908
d368e74
 
27598f8
 
 
861422e
 
9b5b26a
8c01ffb
8fe992b
27598f8
d368e74
 
 
 
 
 
27598f8
8c01ffb
 
 
 
 
 
861422e
8fe992b
 
9b5b26a
d368e74
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
import datetime
import random

import pytz
import yaml
from pyfiglet import figlet_format
from smolagents import (CodeAgent,
                        HfApiModel,
                        tool)

from Gradio_UI import GradioUI
from tools.final_answer import FinalAnswerTool


@tool
def convert_to_ascii(text: str) -> str:
    """A tool that converts text to ASCII art.
    Args:
        text: input text to be converted.
    Returns:
        A string in ascii format.
    """
    if not text:
        return "Sorry: No Text - No Art 😙"

    font = random.choice(['ogre', 'roman', 'rozzo', 'colossal', 'big', 'doh', 'doom', 'isometric1', 'larry3d', 'nancyj', 'smisome1', 'speed', 'univers', 'weird'])
    result = figlet_format(text, font=font)
    return f"```\n{result}```"


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


# visit_webpage = VisitWebpageTool()
# web_search = DuckDuckGoSearchTool()
final_answer = FinalAnswerTool()
# Import tool from Hub
# image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)

model = HfApiModel(
    max_tokens=2096,
    temperature=0.5,
    # model_id='https://wxknx1kg971u7k1n.us-east-1.aws.endpoints.huggingface.cloud',
    # model_id='https://jc26mwg228mkj8dw.us-east-1.aws.endpoints.huggingface.cloud',
    # model_id='https://pflgm2locj2t89co.us-east-1.aws.endpoints.huggingface.cloud',
    custom_role_conversions=None,
)

with open("prompts.yaml", 'r') as stream:
    prompt_templates = yaml.safe_load(stream)
    
agent = CodeAgent(
    model=model,
    tools=[
        final_answer,
        convert_to_ascii,
        # get_current_time_in_timezone,
        # image_generation_tool,
        # visit_webpage,
        # web_search
    ],
    max_steps=6,
    verbosity_level=1,
    grammar=None,
    planning_interval=None,
    name=None,
    description=None,
    prompt_templates=prompt_templates
)


GradioUI(agent).launch()