Spaces:
Sleeping
Sleeping
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() |