Spaces:
Sleeping
Sleeping
File size: 2,736 Bytes
17188a5 9b5b26a c19d193 6aae614 5a96d7e 9b5b26a 17188a5 9b5b26a 5a96d7e 9b5b26a 5a96d7e 9b5b26a 5a96d7e 9b5b26a 17188a5 9b5b26a 8c01ffb 6aae614 e121372 17188a5 13d500a 8c01ffb 9b5b26a 8c01ffb 17188a5 861422e 17188a5 8c01ffb 8fe992b d3f16d6 5a96d7e fe4a180 d3f16d6 8c01ffb 17188a5 8fe992b 9b5b26a 17188a5 |
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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, load_tool, tool
import datetime
import requests
import pytz
import yaml
from tools.final_answer import FinalAnswerTool
import datetime
import ephem
from Gradio_UI import GradioUI
@tool
def get_moon_phase(date=None) -> str:
"""
Calculates and returns the current moon phase.
Args:
date (datetime.date, optional): The date for which to calculate the moon phase. Defaults to today.
Returns:
str: A string describing the moon phase.
"""
if date is None:
date = datetime.date.today()
observer = ephem.Observer()
observer.lat = "0"
observer.lon = "0"
observer.elevation = 0
observer.date = date
moon = ephem.Moon(observer)
phase = moon.phase
if 0 <= phase < 12.5:
phase_name = "New Moon"
elif 12.5 <= phase < 25:
phase_name = "Waxing Crescent"
elif 25 <= phase < 37.5:
phase_name = "First Quarter"
elif 37.5 <= phase < 50:
phase_name = "Waxing Gibbous"
elif 50 <= phase < 62.5:
phase_name = "Full Moon"
elif 62.5 <= phase < 75:
phase_name = "Waning Gibbous"
elif 75 <= phase < 87.5:
phase_name = "Third Quarter"
elif 87.5 <= phase <= 100:
phase_name = "Waning Crescent"
else:
phase_name = "Unknown"
return f"{phase_name} ({phase:.2f}%) on {date}"
@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:
# 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)
with open("prompts.yaml", "r") as stream:
prompt_templates = yaml.safe_load(stream)
agent = CodeAgent(
model=model,
tools=[
final_answer,
get_moon_phase,
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()
|