Spaces:
Sleeping
Sleeping
File size: 2,236 Bytes
c356aaf 9b5b26a c19d193 6aae614 9b5b26a c356aaf 9b5b26a c356aaf d717ca6 258aed8 9b5b26a d717ca6 258aed8 c356aaf d717ca6 9b5b26a 8c01ffb c356aaf d717ca6 258aed8 c356aaf d717ca6 258aed8 c356aaf d717ca6 c356aaf 258aed8 c356aaf 8c01ffb 6aae614 ae7a494 e121372 c356aaf d717ca6 c356aaf 13d500a 8c01ffb d717ca6 9b5b26a 8c01ffb 861422e 9b5b26a 8c01ffb 8fe992b d717ca6 8c01ffb 861422e 8fe992b c356aaf | 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
@tool
def get_current_time_in_timezone(timezone: str) -> str:
"""
Fetches the current local time for the specified timezone.
Args:
timezone: A valid timezone string.
Returns:
A string message with the current local time, or an error message.
"""
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 calculator_tool(expression: str) -> str:
"""
Evaluates a mathematical expression.
Args:
expression: A string representing a mathematical expression.
Supported operators: +, -, *, /, **, and %.
Returns:
A string representing the result of the calculation, or an error message if evaluation fails.
"""
try:
# Evaluate the expression in a restricted environment for safety.
result = eval(expression, {"__builtins__": {}}, {})
if isinstance(result, float) and result.is_integer():
result = int(result)
return str(result)
except Exception as e:
return f"Error evaluating expression: {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 (e.g., text-to-image)
image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
with open("prompts.yaml", 'r') as stream:
prompt_templates = yaml.safe_load(stream)
agent = CodeAgent(
model=model,
tools=[final_answer, calculator_tool], # Added final_answer and our calculator tool
max_steps=6,
verbosity_level=1,
grammar=None,
planning_interval=None,
name=None,
description=None,
prompt_templates=prompt_templates
)
GradioUI(agent).launch()
|