Spaces:
Sleeping
Sleeping
File size: 2,102 Bytes
8a3a1b0 23f1de5 d21456e 23f1de5 e3a00e4 23f1de5 d21456e e3a00e4 d21456e 23f1de5 d21456e e121372 23f1de5 163c6a0 13d500a 8c01ffb 8b2aa52 0a2fec1 ffb4caa 8b2aa52 d21456e 23f1de5 8c01ffb 8fe992b 1e0b078 8c01ffb 1e0b078 d21456e 8fe992b 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 |
from smolagents import CodeAgent,DuckDuckGoSearchTool, HfApiModel,load_tool,tool
from tools.final_answer import FinalAnswerTool
from Gradio_UI import GradioUI
import datetime
import pytz
import yaml
@tool
def is_prime(num: int) -> str:
"""A tool that determines if an input number is prime and returns a string result.
Args:
num: A int that is to be checked for being prime.
"""
try:
prime = check_prime(num)
return f"The number {num} is {'Prime!!!' if prime else 'not Prime :('}"
except Exception as e:
return f"Error calculating primeness '{num}': {str(e)}"
@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)}"
def check_prime(n):
if n <= 1:
return False
if n <= 3:
return True
if n % 2 == 0 or n % 3 == 0:
return False
i = 5
while i * i <= n:
if n % i == 0 or n % (i + 2) == 0:
return False
i += 6
return True
model = HfApiModel(
max_tokens=2096,
temperature=0.5,
model_id='https://pflgm2locj2t89co.us-east-1.aws.endpoints.huggingface.cloud/',
)
# Define tools list
tools = {
"final_answer": FinalAnswerTool(),
"is_prime": is_prime,
"get_current_time_in_timezone": get_current_time_in_timezone,
"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=list(tools.values()),
max_steps=6,
verbosity_level=2,
prompt_templates=prompt_templates
)
GradioUI(agent).launch() |