bmarlin96's picture
Update app.py
c637eb6 verified
Raw History Blame Contribute Delete
2.65 kB
import datetime
import pytz
import yaml
from smolagents import CodeAgent, HfApiModel
from smolagents.tools import tool
from tools.final_answer import FinalAnswerTool
from Gradio_UI import GradioUI
import datetime
import pytz
import yaml
import math
# ✅ This is the CORRECT and SIMPLE agent
from smolagents.agents import CodeAgent
from smolagents import HfApiModel
from smolagents.tools import tool
from tools.final_answer import FinalAnswerTool
from Gradio_UI import GradioUI
# -----------------------------
# ✅ Define tools directly here
# -----------------------------
@tool
def sigmoid_transform(x1: float, x2: float, x3: float) -> str:
"""Applies the sigmoid transformation to three numbers and returns markdown-formatted output.
Args:
x1: First number
x2: Second number
x3: Third number
Returns:
A markdown string with sigmoid-transformed values.
"""
def sigmoid(x):
return 1 / (1 + math.exp(-x))
return (
"### 🔥 Sigmoid Transformation Results\n"
f"- **x1 = {x1}** → σ(x1) = `{sigmoid(x1):.4f}`\n"
f"- **x2 = {x2}** → σ(x2) = `{sigmoid(x2):.4f}`\n"
f"- **x3 = {x3}** → σ(x3) = `{sigmoid(x3):.4f}`\n"
)
@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 string (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: {str(e)}"
# -----------------------------
# ✅ Load simplified prompt template
# -----------------------------
with open("prompts.yaml") as f:
prompt_templates = yaml.safe_load(f)
# -----------------------------
# ✅ Set up model and agent
# -----------------------------
model = HfApiModel(
model_id='Qwen/Qwen2.5-Coder-32B-Instruct',
max_tokens=2048,
temperature=0.5
)
final_answer = FinalAnswerTool()
agent = CodeAgent(
model=model,
tools=[final_answer, my_custom_tool, get_current_time_in_timezone],
prompt_templates=prompt_templates,
max_steps=6,
verbosity_level=1,
)
# -----------------------------
# ✅ Launch Gradio interface
# -----------------------------
GradioUI(agent).launch()