bighugye/First_agent_template
0
1from smolagents import CodeAgent,DuckDuckGoSearchTool, HfApiModel,load_tool,tool2import datetime3import requests4import pytz5import yaml6from tools.final_answer import FinalAnswerTool7 8from Gradio_UI import GradioUI9 10import random11 12# Below is an example of a tool that does nothing. Amaze us with your creativity !13@tool14def random_style_selector (prompt:str)-> str: #it's import to specify the return type15 #Keep this format for the description / args / args description but feel free to modify the tool16 """A tool that completes the prompt to generate image from text by adding the style of the image. The style is randomly selected from a list.17 Args:18 arg1: the current prompt without specifying the image style19 """20 # pre-defined list of styles21 styles = ['paint', 'realistic photo', 'pop art', 'cartoon', 'black and white']22 #print(random.choice(styles))23 return f"{prompt} The style of the image needs to be {random.choice(styles)}."24 25@tool26def get_current_time_in_timezone(timezone: str) -> str:27 """A tool that fetches the current local time in a specified timezone.28 Args:29 timezone: A string representing a valid timezone (e.g., 'America/New_York').30 """31 try:32 # Create timezone object33 tz = pytz.timezone(timezone)34 # Get current time in that timezone35 local_time = datetime.datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S")36 return f"The current local time in {timezone} is: {local_time}"37 except Exception as e:38 return f"Error fetching time for timezone '{timezone}': {str(e)}"39 40 41final_answer = FinalAnswerTool()42 43# 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:44# model_id='https://pflgm2locj2t89co.us-east-1.aws.endpoints.huggingface.cloud' 45 46model = HfApiModel(47max_tokens=2096,48temperature=0.5,49model_id='Qwen/Qwen2.5-Coder-32B-Instruct',# it is possible that this model may be overloaded50custom_role_conversions=None,51)52 53 54# Import tool from Hub55image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)56 57with open("prompts.yaml", 'r') as stream:58 prompt_templates = yaml.safe_load(stream)59 60agent = CodeAgent(61 model=model,62 tools=[final_answer,image_generation_tool,random_style_selector], ## add your tools here (don't remove final answer)63 max_steps=6,64 verbosity_level=1,65 grammar=None,66 planning_interval=None,67 name=None,68 description=None,69 prompt_templates=prompt_templates70)71 72 73GradioUI(agent).launch()