Spaces:
Sleeping
Sleeping
File size: 2,878 Bytes
9b5b26a c19d193 6aae614 8fe992b 9b5b26a 7a03d67 9b5b26a 0abc08b 9b5b26a 0abc08b 9b5b26a 0abc08b 9b5b26a 8c01ffb 6aae614 ae7a494 a09bb37 9c3a3ff e121372 a09bb37 13d500a 8c01ffb 9b5b26a 8c01ffb 861422e 9b5b26a 8c01ffb 8fe992b d3ee856 8c01ffb 861422e 8fe992b 9b5b26a 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 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
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
# temporary lines added for logging
import logging
# Enable debug-level logging for the requests and urllib3 modules
logging.basicConfig(level=logging.INFO)
logging.getLogger("requests").setLevel(logging.INFO)
logging.getLogger("urllib3").setLevel(logging.INFO)
# end of temporary lines
@tool
def print_ascii_cat_or_dog(cat_or_dog: str)-> str:
"""A tool that print an ascii cat
Args:
cat_or_dog: Specify a cat or dog via a string "cat" or "dog".
"""
if cat_or_dog == "cat":
ascii_drawing = r"""
/\_/\
( o.o )
> ^ <
"""
elif cat_or_dog == "dog":
ascii_drawing = r"""
_ _
/(. .)\ )
(*)____/|
/ |
/ |--\ |
(_)(_) (_)
"""
else:
ascii_drawing = 'Invalid argument! Enter either "cat" or "dog" exactly as seen in the quotes!'
return ascii_drawing
@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()
# If the agent does not answer, the model is overloaded, please use another model or the following Hugging Face Endpoint that also contains qwen2.5 coder:
# model_id='https://pflgm2locj2t89co.us-east-1.aws.endpoints.huggingface.cloud'
# Model configuration
model_id = 'https://pflgm2locj2t89co.us-east-1.aws.endpoints.huggingface.cloud'
model = HfApiModel(
max_tokens=2096,
temperature=0.3, # Lower temperature for more consistent responses
model_id=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=[
print_ascii_cat_or_dog,
get_current_time_in_timezone,
final_answer
],
max_steps=6,
verbosity_level=1,
grammar=None,
planning_interval=None,
name=None,
description=None,
prompt_templates=prompt_templates
)
GradioUI(agent).launch() |