File size: 2,111 Bytes
d5ac098 9b5b26a c19d193 d5ac098 8fe992b d5ac098 9b5b26a d5ac098 9b5b26a d5ac098 9b5b26a d5ac098 9b5b26a d5ac098 8c01ffb d5ac098 ae7a494 d5ac098 ae7a494 e121372 d5ac098 13d500a 8c01ffb d5ac098 8c01ffb 861422e d5ac098 8c01ffb 8fe992b d5ac098 8c01ffb 861422e 8fe992b 9b5b26a d5ac098 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 | from 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) -> str:
"""Generate an image from a text prompt.
Args:
prompt: Description of the image
"""
try:
image = client.text_to_image(prompt)
file_path = "generated_image.png"
image.save(file_path)
return f"Image generated and saved at {file_path}"
except Exception as e:
return f"Error generating image: {str(e)}"
# -------------------- 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,
planning_interval=None,
name=None,
description=None,
prompt_templates=prompt_templates
)
# -------------------- UI --------------------
GradioUI(agent).launch() |