Spaces:
Sleeping
Sleeping
File size: 2,361 Bytes
3d569d4 9b5b26a c19d193 8fe992b 3d569d4 9b5b26a 3d569d4 9b5b26a 3d569d4 9b5b26a 3d569d4 9b5b26a 3d569d4 9b5b26a 3d569d4 9b5b26a 8c01ffb 3d569d4 6aae614 ae7a494 3d569d4 ae7a494 e121372 3d569d4 13d500a 8c01ffb 3d569d4 8c01ffb 3d569d4 861422e 3d569d4 8c01ffb 8fe992b 3d569d4 8c01ffb 3d569d4 8fe992b 9b5b26a 3d569d4 | 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 108 109 110 111 112 113 | 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 tools
# -------------------------
@tool
def my_custom_tool(arg1: str, arg2: int) -> str:
"""A tool that does nothing yet.
Args:
arg1: the first argument
arg2: the second argument
"""
return "What magic will you build?"
@tool
def get_current_time_in_timezone(timezone: str) -> str:
"""Fetch the current local time in a specified timezone.
Args:
timezone: A valid timezone (e.g., 'America/New_York')
"""
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 for timezone '{timezone}': {str(e)}"
# -------------------------
# Required final answer tool
# -------------------------
final_answer = FinalAnswerTool()
# -------------------------
# Model (FIXED)
# -------------------------
# NOTE:
# 32B models do NOT work on the free HF Inference API.
# Use a smaller model unless you have a dedicated endpoint.
model = HfApiModel(
model_id="Qwen/Qwen2.5-Coder-7B-Instruct", # ✅ corrected
max_tokens=2096,
temperature=0.5,
custom_role_conversions=None,
)
# -------------------------
# Optional tools
# -------------------------
search_tool = DuckDuckGoSearchTool()
image_generation_tool = load_tool(
"agents-course/text-to-image",
trust_remote_code=True,
)
# -------------------------
# Prompt templates
# -------------------------
with open("prompts.yaml", "r") as stream:
prompt_templates = yaml.safe_load(stream)
# -------------------------
# Agent
# -------------------------
agent = CodeAgent(
model=model,
tools=[
final_answer,
search_tool,
my_custom_tool,
get_current_time_in_timezone,
],
max_steps=6,
verbosity_level=1,
grammar=None,
planning_interval=None,
name=None,
description=None,
prompt_templates=prompt_templates,
)
# -------------------------
# UI
# -------------------------
GradioUI(agent).launch()
|