miteshtrivedi10's picture
Added new tool
73badda verified
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
# Below is an example of a tool that does nothing. Amaze us with your creativity !
@tool
def my_custom_tool(arg1:str, arg2:int)-> str: #it's import to specify the return type
#Keep this format for the description / args / args description but feel free to modify the tool
"""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:
"""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)}"
@tool
def get_installed_solar_capacity_for_indian_states(state_name: str) -> float:
""" A tool that fetches the current installed solar capacity in megawatt for different indian states.
Args:
state_name: A string representing valid indian state name (e.g., Gujarat)
"""
indian_states = dict()
indian_states["Andaman and Nicobar"] = 2.69
indian_states["Andhra Pradesh"] = 143.77
indian_states["Arunachal Pradesh"] = 0.22
indian_states["Assam"] = 28.59
indian_states["Bihar"] = 18.55
indian_states["Chandigarh"] = 38.41
indian_states["Chhattisgarh"] = 36.94
indian_states["Goa"] = 22.76
indian_states["Gujarat"] = 2037.62
indian_states["Haryana"] = 358.83
return indian_states[state_name]
# return [
# {
# "sl_no_": "1",
# "states_uts": "Andaman and Nicobar",
# "rooftop_solar_capacity_installed_mw_": 2.69
# },
# {
# "sl_no_": "2",
# "states_uts": "Andhra Pradesh",
# "rooftop_solar_capacity_installed_mw_": 143.77
# },
# {
# "sl_no_": "3",
# "states_uts": "Arunachal Pradesh",
# "rooftop_solar_capacity_installed_mw_": 0.22
# },
# {
# "sl_no_": "4",
# "states_uts": "Assam",
# "rooftop_solar_capacity_installed_mw_": 28.59
# },
# {
# "sl_no_": "5",
# "states_uts": "Bihar",
# "rooftop_solar_capacity_installed_mw_": 18.55
# },
# {
# "sl_no_": "6",
# "states_uts": "Chandigarh",
# "rooftop_solar_capacity_installed_mw_": 38.41
# },
# {
# "sl_no_": "7",
# "states_uts": "Chhattisgarh",
# "rooftop_solar_capacity_installed_mw_": 36.94
# },
# {
# "sl_no_": "8",
# "states_uts": "Goa",
# "rooftop_solar_capacity_installed_mw_": 22.76
# },
# {
# "sl_no_": "9",
# "states_uts": "Gujarat",
# "rooftop_solar_capacity_installed_mw_": 2037.62
# },
# {
# "sl_no_": "10",
# "states_uts": "Haryana",
# "rooftop_solar_capacity_installed_mw_": 358.83
# }
# ]
final_answer = FinalAnswerTool()
# If the agent does not answer, the model is overloaded, please use another model or the following Hugging Face Endpoint that also contains qwen2.5 coder:
# model_id='https://pflgm2locj2t89co.us-east-1.aws.endpoints.huggingface.cloud'
model = HfApiModel(
max_tokens=2096,
temperature=0.4,
model_id='Qwen/Qwen2.5-Coder-32B-Instruct',# it is possible that this model may be overloaded
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=[final_answer], ## add your tools here (don't remove final answer)
max_steps=6,
verbosity_level=1,
grammar=None,
planning_interval=None,
name=None,
description=None,
prompt_templates=prompt_templates
)
GradioUI(agent).launch()