Spaces:
Sleeping
Sleeping
File size: 2,021 Bytes
7ea140d 9b5b26a c19d193 6aae614 9b5b26a 13bbe71 9b5b26a b743f91 9b5b26a b743f91 9b5b26a b743f91 8c01ffb 6aae614 13bbe71 ae7a494 7ea140d 13bbe71 7ea140d 13d500a 8c01ffb 7ea140d 13bbe71 8c01ffb 8fe992b b743f91 8c01ffb 7ea140d 8fe992b 13bbe71 |
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 |
from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, load_tool, tool
import datetime
import pytz
import yaml
from tools.final_answer import FinalAnswerTool
from Gradio_UI import GradioUI
@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').
Returns:
The current local time as a formatted string.
"""
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)}"
@tool
def random_welcome_message(name: str) -> str:
"""Generate a random welcome message for a given user.
Args:
name: The name of the user to greet.
Returns:
A personalized welcome string.
"""
import random
messages = [
f"Hey {name}, hope your day’s fantastic!",
f"Welcome aboard, {name}! Ready to explore?",
f"Good to see you, {name}! Let's create some magic!"
]
return random.choice(messages)
final_answer = FinalAnswerTool()
search_tool = DuckDuckGoSearchTool()
image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
model = HfApiModel(
max_tokens=2048,
temperature=0.7,
model_id="Qwen/Qwen2.5-Coder-32B-Instruct"
)
with open("prompts.yaml", "r") as f:
prompt_templates = yaml.safe_load(f)
agent = CodeAgent(
model=model,
tools=[
final_answer,
search_tool,
image_generation_tool,
get_current_time_in_timezone,
random_welcome_message
],
max_steps=6,
verbosity_level=1,
description="A multi-tool web chatbot and image generator",
prompt_templates=prompt_templates,
)
GradioUI(agent).launch()
|