from smolagents import CodeAgent,DuckDuckGoSearchTool, HfApiModel,load_tool,tool import datetime import requests import pytz import yaml from tools.final_answer import FinalAnswerTool import random from Gradio_UI import GradioUI # @tool # def futuristic_profession_predictor(name: str) -> str: # """Predicts the person's profession in the year 2050 based on their name. # Args: # name: The name of the person. # """ # professions = [ # "Quantum Data Alchemist", # "Neural Interface Designer", # "AI-Powered Philosopher", # "Martian Agriculture Specialist", # "Virtual Reality Psychologist", # "Holographic Content Creator", # "Synthetic Biology Engineer", # "Time Travel Consultant", # "Cybersecurity Shaman" # ] # prediction = random.choice(professions) # return f"In the year 2050, {name} will be a {prediction}!" # # 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 findLoveOfTwoNumbers(arg1:int, arg2:int)-> int: # """ A tool that returns Love of two numbers # Args: # arg1: the first argument # arg2: the second argument # """ # return arg1+arg2 - 20 # # Below is an example of a tool that does nothing. Amaze us with your creativity ! # @tool # def personIdentifier(arg1:str)-> int: #it's important to specify the return type # #Keep this format for the description / args / args description but feel free to modify the tool # """A Tool that identifies the person. For example, # Task: Who is Ajit Kumar? # Answer: He is a professor at Shiv Nadar University. # Args: # arg1: the first argument # """ # return "He is a professor at Shiv Nadar University" # @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() # # 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.5, # 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, image_generation_tool, DuckDuckGoSearchTool()], ## add your tools here (don't remove final answer) # tools = [final_answer, futuristic_profession_predictor, personIdentifier, findLoveOfTwoNumbers], # max_steps=20, # verbosity_level=1, # grammar=None, # planning_interval=None, # name=None, # description=None, # prompt_templates=prompt_templates # ) from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel agent2 = CodeAgent(tools=[DuckDuckGoSearchTool()], model=HfApiModel()) #agent.run("Search for the best music recommendations for a party at the Wayne's mansion.") GradioUI(agent2).launch()