Selghuff commited on
Commit
16490c5
·
verified ·
1 Parent(s): 20b19bb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +33 -41
app.py CHANGED
@@ -1,66 +1,58 @@
1
- from smolagents import CodeAgent, DuckDuckGoSearchTool, InferenceClientModel, 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:str, arg2:int)-> str: # it's important to specify the return type
13
- # Keep this format for the tool description / args description but feel free to modify the tool
14
- """A tool that does nothing yet
15
  Args:
16
- arg1: the first argument
17
- arg2: the second argument
18
  """
19
- return "What magic will you build ?"
20
 
21
  @tool
22
- def get_current_time_in_timezone(timezone: str) -> str:
23
- """A tool that fetches the current local time in a specified timezone.
24
- Args:
25
- timezone: A string representing a valid timezone (e.g., 'America/New_York').
26
- """
27
  try:
28
- # Create timezone object
29
- tz = pytz.timezone(timezone)
30
- # Get current time in that timezone
31
- local_time = datetime.datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S")
32
- return f"The current local time in {timezone} is: {local_time}"
33
- except Exception as e:
34
- return f"Error fetching time for timezone '{timezone}': {str(e)}"
35
-
36
 
 
37
  final_answer = FinalAnswerTool()
38
- model = InferenceClientModel(
39
- max_tokens=2096,
40
- temperature=0.5,
41
- model_id='Qwen/Qwen2.5-Coder-32B-Instruct',
42
- custom_role_conversions=None,
43
- )
44
 
 
 
 
 
 
45
 
46
- # Import tool from Hub
47
- image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
 
48
 
49
- # Load system prompt from prompt.yaml file
50
- with open("prompts.yaml", 'r') as stream:
51
- prompt_templates = yaml.safe_load(stream)
52
-
53
  agent = CodeAgent(
54
  model=model,
55
- tools=[final_answer], # add your tools here (don't remove final_answer)
 
 
 
 
 
 
56
  max_steps=6,
57
  verbosity_level=1,
58
  grammar=None,
59
  planning_interval=None,
60
- name=None,
61
- description=None,
62
- prompt_templates=prompt_templates # Pass system prompt to CodeAgent
63
  )
64
 
65
-
66
- GradioUI(agent).launch()
 
1
+ from smolagents import CodeAgent, DuckDuckGoSearchTool, load_tool, tool
2
  import datetime
 
3
  import pytz
4
  import yaml
5
  from tools.final_answer import FinalAnswerTool
 
6
  from Gradio_UI import GradioUI
7
 
8
+ # Example custom tool (modify or expand as you wish)
9
  @tool
10
+ :contentReference[oaicite:1]{index=1}
11
+ :contentReference[oaicite:2]{index=2}
 
12
  Args:
13
+ :contentReference[oaicite:3]{index=3}
14
+ :contentReference[oaicite:4]{index=4}
15
  """
16
+ :contentReference[oaicite:5]{index=5}
17
 
18
  @tool
19
+ :contentReference[oaicite:6]{index=6}
20
+ :contentReference[oaicite:7]{index=7}
 
 
 
21
  try:
22
+ :contentReference[oaicite:8]{index=8}
23
+ :contentReference[oaicite:9]{index=9}
24
+ :contentReference[oaicite:10]{index=10}
25
+ :contentReference[oaicite:11]{index=11}
 
 
 
 
26
 
27
+ # Final answer aggregator tool
28
  final_answer = FinalAnswerTool()
 
 
 
 
 
 
29
 
30
+ # Load image generation tool from HF Hub
31
+ :contentReference[oaicite:12]{index=12}
32
+
33
+ # Model specified as string per current smolagents standards
34
+ :contentReference[oaicite:13]{index=13}
35
 
36
+ # Load system prompt templates
37
+ :contentReference[oaicite:14]{index=14}
38
+ :contentReference[oaicite:15]{index=15}
39
 
40
+ # Instantiate CodeAgent with all tools
 
 
 
41
  agent = CodeAgent(
42
  model=model,
43
+ tools=[
44
+ DuckDuckGoSearchTool(),
45
+ image_generation_tool,
46
+ my_custom_tool,
47
+ get_current_time_in_timezone,
48
+ final_answer
49
+ ],
50
  max_steps=6,
51
  verbosity_level=1,
52
  grammar=None,
53
  planning_interval=None,
54
+ prompt_templates=prompt_templates
 
 
55
  )
56
 
57
+ # Launch the Gradio interface
58
+ :contentReference[oaicite:16]{index=16}