Spaces:
Sleeping
Sleeping
File size: 2,441 Bytes
9fb2c0b 9b5b26a c19d193 6aae614 9b5b26a 9fb2c0b eb31f6c 9b5b26a eb31f6c 9b5b26a eb31f6c 9b5b26a eb31f6c 9b5b26a 8c01ffb eb31f6c 6aae614 ae7a494 eb31f6c 9fb2c0b eb31f6c 13d500a 8c01ffb eb31f6c 9b5b26a 8c01ffb eb31f6c 861422e eb31f6c 8c01ffb 8fe992b eb31f6c 8c01ffb eb31f6c 8fe992b eb31f6c |
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 |
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
# --- Tools ---
@tool
def my_custom_tool(arg1: str, arg2: int) -> str:
"""A tool that changes your height from metric to imperial
Args:
arg1: your name
arg2: your height in metric system (centimeters)
"""
afeet = 30.48 # cm per foot
ainch = 2.54 # cm per inch
# keep your logic, just truncate feet (no decimals)
the_feet = int(arg2 // afeet) # whole feet
remainder = arg2 - the_feet * afeet # leftover cm
the_inch = remainder / ainch # inches from leftover
return f"Height of {arg1} in imperial units: {the_feet} ft {the_inch:.2f} in"
@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:
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)}"
# --- Final answer tool required by the template ---
final_answer = FinalAnswerTool()
# --- Model (use this on HF Spaces; it reads HF_TOKEN automatically) ---
model = HfApiModel(
model_id="Qwen/Qwen2.5-Coder-32B-Instruct",
max_tokens=2096,
temperature=0.5,
custom_role_conversions=None,
)
# Import tool from Hub (image generation) and set up web search
image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
# Load system prompts
with open("prompts.yaml", "r") as stream:
prompt_templates = yaml.safe_load(stream)
# --- Agent: register ALL the tools here ---
agent = CodeAgent(
model=model,
tools=[
final_answer, # do not remove
my_custom_tool, # your converter
get_current_time_in_timezone,
image_generation_tool, # HF Hub tool
],
max_steps=6,
verbosity_level=1,
grammar=None,
planning_interval=None,
name=None,
description=None,
prompt_templates=prompt_templates,
)
GradioUI(agent).launch()
|