Spaces:
Sleeping
Sleeping
File size: 2,202 Bytes
19d76a8 9b5b26a c19d193 6aae614 9b5b26a e1cf16a 9b5b26a e1cf16a 9b5b26a e1cf16a 9b5b26a e1cf16a 9b5b26a e1cf16a 9b5b26a e1cf16a 9b5b26a e1cf16a 9b5b26a e1cf16a 8c01ffb e1cf16a 8c01ffb e1cf16a 6aae614 e1cf16a e121372 e1cf16a 13d500a 8c01ffb e1cf16a 861422e e1cf16a 8c01ffb 8fe992b e1cf16a 8c01ffb 861422e 8fe992b e1cf16a |
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 pytz
import yaml
from tools.final_answer import FinalAnswerTool
from Gradio_UI import GradioUI
# 🛠️ Custom tool for demonstration purposes
@tool
def my_custom_tool(arg1: str, arg2: int) -> str:
"""A placeholder tool that returns a static response.
Args:
arg1: The first argument (string).
arg2: The second argument (integer).
Returns:
str: A message indicating the tool's response.
"""
return f"Received {arg1} and {arg2}. What magic will you build?"
# 🕒 Tool to get current time in a specific timezone
@tool
def get_current_time_in_timezone(timezone: str) -> str:
"""Fetches the current local time in a given timezone.
Args:
timezone: A valid timezone string (e.g., 'America/New_York').
Returns:
str: 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 pytz.UnknownTimeZoneError:
return f"Error: Invalid timezone '{timezone}'. Please provide a valid timezone."
# 🔍 DuckDuckGo Search Tool
search_tool = DuckDuckGoSearchTool()
# 🎨 Image generation tool from Hugging Face Hub
image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
# ✅ Final Answer Tool
final_answer = FinalAnswerTool()
# 🤖 LLM Model Configuration
model = HfApiModel(
max_tokens=2096,
temperature=0.5,
model_id='Qwen/Qwen2.5-Coder-32B-Instruct'
)
# 📜 Load prompt templates
with open("prompts.yaml", 'r') as stream:
prompt_templates = yaml.safe_load(stream)
# 🧠 Creating the AI Agent with multiple tools
agent = CodeAgent(
model=model,
tools=[
final_answer,
my_custom_tool,
get_current_time_in_timezone,
search_tool,
image_generation_tool
], # Added all tools
max_steps=6,
verbosity_level=1,
prompt_templates=prompt_templates
)
# 🚀 Launch the Gradio UI
GradioUI(agent).launch()
|