Spaces:
Sleeping
Sleeping
File size: 3,342 Bytes
7271451 9b5b26a c19d193 6aae614 9b5b26a 7271451 814e0b7 9b5b26a 7271451 4df4ea0 9b5b26a 4df4ea0 9b5b26a 7271451 4df4ea0 7271451 9b5b26a 7271451 9b5b26a 8c01ffb 7271451 6aae614 ae7a494 7271451 8c01ffb 7271451 8c01ffb 7271451 8c01ffb 8fe992b 7271451 8c01ffb 861422e 8fe992b 7271451 |
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 |
from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, load_tool, tool
import datetime
import requests
import pytz
import yaml
from tools.final_answer import FinalAnswerTool
from Gradio_UI import GradioUI
# IMPORTANT: Initialize model BEFORE using it in tools
model = HfApiModel(
max_tokens=2096,
temperature=0.5,
model_id='Qwen/Qwen2.5-Coder-32B-Instruct', # it is possible that this model may be overloaded
custom_role_conversions=None,
)
@tool
def translate_to_spanish(english: str) -> str:
"""A tool that translates text from english to spanish using DuckDuckGoSearchTool
Args:
english (str): the text in english to be translated to spanish
Returns:
str: the text translated into spanish
"""
# FIXED: Proper f-string formatting and return statement
query = f"Please translate the following text into Spanish: {english}"
# Use a temporary agent for the search (reuse model for efficiency)
temp_agent = CodeAgent(
tools=[DuckDuckGoSearchTool()],
model=model
)
results = temp_agent.run(query)
# FIXED: Actually return the results
return str(results)
@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').
Returns:
str: The current time in the specified timezone
"""
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)}"
# Initialize tools
final_answer = FinalAnswerTool()
# FIXED: Added error handling for optional dependencies
try:
# Import tool from Hub
image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
tools_list = [final_answer, translate_to_spanish, get_current_time_in_timezone,
DuckDuckGoSearchTool(), image_generation_tool]
except Exception as e:
print(f"Warning: Could not load image generation tool: {e}")
tools_list = [final_answer, translate_to_spanish, get_current_time_in_timezone,
DuckDuckGoSearchTool()]
# FIXED: Added error handling for prompts.yaml
try:
with open("prompts.yaml", 'r') as stream:
prompt_templates = yaml.safe_load(stream)
except FileNotFoundError:
print("Warning: prompts.yaml not found, using default templates")
prompt_templates = None
except Exception as e:
print(f"Warning: Error loading prompts.yaml: {e}")
prompt_templates = None
# Create agent
agent = CodeAgent(
model=model,
tools=tools_list, # Use the dynamically created tools list
max_steps=6,
verbosity_level=1,
grammar=None,
planning_interval=None,
name=None,
description=None,
prompt_templates=prompt_templates
)
# FIXED: Added error handling for Gradio launch
try:
GradioUI(agent).launch()
except Exception as e:
print(f"Error launching Gradio UI: {e}")
print("You may need to install gradio or check your Gradio_UI module")
|