sascow's picture
Update app.py
e04b92d verified
from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, load_tool, tool
import datetime
import requests
import pytz
import yaml
import random
from tools.final_answer import FinalAnswerTool
from Gradio_UI import GradioUI
@tool
def quantum_fortune_llama(question: str, asker_name: str) -> str:
"""A Quantum Fortune Llama that spits cryptic, hilarious, and oddly specific predictions from across the multiverse.
Args:
question: The question the user dares to ask this majestic beast (it might ignore it entirely).
asker_name: The brave soul who summoned the Llama’s cosmic spit.
"""
llama_spits = [
f"{asker_name}, the Llama peers through the 7th dimension: ‘You’ll invent a sandwich that screams on Thursdays.’",
"With a majestic bleat, it prophesies: ‘Your socks will unionize and demand better lint rights.’",
f"Spit lands from a parallel timeline—‘{asker_name}, a disco-loving squid will propose next Tuesday.’",
"The Llama’s third eye winks: ‘Your Wi-Fi will gain sentience and ghost you for fun.’",
f"{asker_name}, the Quantum Llama snorts: ‘A rogue pickle will challenge you to a duel at dawn.’",
"From the void, it bleats: ‘You’ll sneeze glitter for 3 days straight. Plan accordingly.’",
"The Llama chews on your fate: ‘A sentient cloud will adopt you as its emotional support human.’",
f"{asker_name}, it spits a vision: ‘You’ll star in a reality show judged by feral raccoons.’",
"Quantum drool reveals: ‘Your shadow will elope with a streetlamp. Send a postcard.’",
"The Llama tap-dances across time: ‘Your breakfast will stage a coup. Toast leads the charge.’",
f"Behold, {asker_name}! ‘A penguin in flip-flops will deliver your next big idea.’",
"The Llama’s cosmic burp decrees: ‘You’ll accidentally join a cult of overly polite pigeons.’",
"Spit swirls in 4D: ‘Your left shoe will write a bestselling memoir. Spoiler: it hates laces.’",
f"{asker_name}, the Llama grins: ‘A time-traveling toaster will sue you for emotional damages.’",
"The prophecy drips: ‘You’ll wake up fluent in Dolphin but only for karaoke night.’",
"With a cosmic headbutt, it declares: ‘Your next pet rock will demand a corner office.’",
f"{asker_name}, the Llama spits glitter: ‘A rogue kazoo will haunt your dreams with polka.’",
"The Quantum Llama howls: ‘Your fridge will start a podcast about existential cheese.’",
"A multiversal hoof-stomp reveals: ‘You’ll befriend a cloud shaped like a judgmental cat.’",
f"Spit lands with sass, {asker_name}: ‘Your future smells like burnt popcorn and ambition.’",
]
# Add a random "Llama Action" for extra flair and engagement
llama_actions = [
"The Llama does a backflip and spits twice for emphasis.",
"It waggles its eyebrows and teleports three seconds into the future.",
"The Llama moonwalks across a rainbow, leaving hoofprints of chaos.",
"It dons sunglasses and bleats your fortune in a funky rhythm.",
"The Llama chews on a quantum carrot, muttering about your alternate lives.",
]
# Randomly select response and action
fortune = random.choice(llama_spits)
action = random.choice(llama_actions)
return f"🦙 *The Quantum Fortune Llama turns its majestic gaze to {asker_name}*...\n{fortune}\n*{action}*"
@tool
def get_current_time_in_timezone(timezone: str) -> str:
"""A tool that fetches the current local time in a specified timezone.
Args:
timezone: A string representing a valid timezone (e.g., 'America/New_York').
"""
try:
# Create timezone object
tz = pytz.timezone(timezone)
# Get current time in that 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)}"
final_answer = FinalAnswerTool()
model = HfApiModel(
max_tokens=2096,
temperature=0.5,
model_id='https://pflgm2locj2t89co.us-east-1.aws.endpoints.huggingface.cloud',
custom_role_conversions=None,
)
# Import tool from Hub
image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
with open("prompts.yaml", 'r') as stream:
prompt_templates = yaml.safe_load(stream)
agent = CodeAgent(
model=model,
tools=[get_current_time_in_timezone, quantum_fortune_llama, DuckDuckGoSearchTool(), final_answer], # Replaced cosmic_fizz_oracle with quantum_fortune_llama
max_steps=6,
verbosity_level=1,
grammar=None,
planning_interval=None,
name=None,
description=None,
prompt_templates=prompt_templates
)
response = agent.run("Ask the Quantum Fortune Llama about my future", {"asker_name": "YourName"})
print(response)
GradioUI(agent).launch()