andrrei commited on
Commit
ad296e9
·
verified ·
1 Parent(s): 18262e2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +60 -22
app.py CHANGED
@@ -1,33 +1,71 @@
1
- from huggingface_hub import login
2
- from smolagents import CodeAgent, tool, DuckDuckGoSearchTool, HfApiModel
3
- from Gradio_UI import GradioUI
 
 
 
4
 
 
5
 
 
6
  @tool
7
- def suggest_menu(occasion: str) -> str:
 
 
 
 
 
8
  """
9
- Suggests a menu based on the occasion.
 
 
 
 
 
 
 
 
10
  Args:
11
- occasion (str): The type of occasion for the party. Allowed values are:
12
- - "casual": Menu for casual party.
13
- - "formal": Menu for formal party.
14
- - "superhero": Menu for superhero party.
15
- - "custom": Custom menu.
16
  """
17
- if occasion == "casual":
18
- print('test')
19
- return "Pizza, snacks, and drinks."
20
- elif occasion == "formal":
21
- return "3-course dinner with wine and dessert."
22
- elif occasion == "superhero":
23
- return "Buffet with high-energy and healthy food."
24
- else:
25
- return "Custom menu for the butler."
 
 
 
 
 
26
 
 
 
 
 
 
 
27
 
28
- model_id='Qwen/Qwen2.5-Coder-32B-Instruct'
29
 
30
- model = HfApiModel(model_id=model_id)
 
31
 
32
- agent = CodeAgent(tools=[suggest_menu], model=model)
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  GradioUI(agent).launch()
 
1
+ from smolagents import CodeAgent,DuckDuckGoSearchTool, HfApiModel,load_tool,tool
2
+ import datetime
3
+ import requests
4
+ import pytz
5
+ import yaml
6
+ from tools.final_answer import FinalAnswerTool
7
 
8
+ from Gradio_UI import GradioUI
9
 
10
+ # Below is an example of a tool that does nothing. Amaze us with your creativity !
11
  @tool
12
+ def my_custom_tool(arg1:int, arg2:int)-> str: #it's import to specify the return type
13
+ #Keep this format for the description / args / args description but feel free to modify the tool
14
+ """A tool that returns the multiplication of two numbers
15
+ Args:
16
+ arg1: An integer that represents the first number
17
+ arg2: An integer that represents the second number
18
  """
19
+ try:
20
+ return f"The product of both arguments is: {arg1*arg2}"
21
+ except Exception as e:
22
+ return f"Error in computing: {str(e)}"
23
+
24
+
25
+ @tool
26
+ def 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 object
33
+ tz = pytz.timezone(timezone)
34
+ # Get current time in that timezone
35
+ 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
+
41
+ final_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
 
46
+ model = HfApiModel(
47
+ max_tokens=2096,
48
+ temperature=0.5,
49
+ model_id='Qwen/Qwen2.5-Coder-32B-Instruct',# it is possible that this model may be overloaded
50
+ custom_role_conversions=None,
51
+ )
52
 
 
53
 
54
+ # Import tool from Hub
55
+ image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
56
 
57
+ with open("prompts.yaml", 'r') as stream:
58
+ prompt_templates = yaml.safe_load(stream)
59
+
60
+ agent = CodeAgent(
61
+ model=model,
62
+ tools=[final_answer, DuckDuckGoSearchTool()], ## 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_templates
70
+ )
71
  GradioUI(agent).launch()