rom smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, load_tool, tool import datetime import pytz import yaml from huggingface_hub import InferenceClient from tools.final_answer import FinalAnswerTool from Gradio_UI import GradioUI # -------------------- TOOLS -------------------- @tool def get_current_time_in_timezone(timezone: str) -> str: """Fetch current time in a timezone. Args: timezone: e.g. 'Asia/Kolkata' """ 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: {str(e)}" # ✅ Image Generation Tool client = InferenceClient(model="stabilityai/stable-diffusion-xl-base-1.0") @tool def image_gen_tool(prompt: str): """Generate an image from a text prompt. Args: prompt: Description of the image """ image = client.text_to_image(prompt) return image # ✅ return PIL image directly # -------------------- MODEL -------------------- final_answer = FinalAnswerTool() model = HfApiModel( max_tokens=2096, temperature=0.5, model_id='Qwen/Qwen2.5-Coder-32B-Instruct', custom_role_conversions=None, ) # -------------------- PROMPTS -------------------- with open("prompts.yaml", 'r') as stream: prompt_templates = yaml.safe_load(stream) # -------------------- AGENT -------------------- agent = CodeAgent( model=model, tools=[ final_answer, # required get_current_time_in_timezone, image_gen_tool # ✅ added ], max_steps=6, verbosity_level=1, grammar=None, ) # -------------------- UI -------------------- GradioUI(agent).launch()