Santiago Silveira commited on
Commit
6a46ef0
·
1 Parent(s): ae7a494

Refactor web_search function and enhance agent tools integration

Browse files
Files changed (1) hide show
  1. app.py +30 -16
app.py CHANGED
@@ -1,22 +1,35 @@
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:str, 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 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:
@@ -40,11 +53,10 @@ final_answer = FinalAnswerTool()
40
  # model_id='https://pflgm2locj2t89co.us-east-1.aws.endpoints.huggingface.cloud'
41
 
42
  model = HfApiModel(
43
- max_tokens=2096,
44
- temperature=0.5,
45
- model_id='Qwen/Qwen2.5-Coder-32B-Instruct',# it is possible that this model may be overloaded
46
- custom_role_conversions=None,
47
- )
48
 
49
 
50
  # Import tool from Hub
@@ -55,15 +67,17 @@ with open("prompts.yaml", 'r') as stream:
55
 
56
  agent = CodeAgent(
57
  model=model,
58
- tools=[final_answer], ## add your tools here (don't remove final answer)
 
 
 
59
  max_steps=6,
60
  verbosity_level=1,
61
  grammar=None,
62
  planning_interval=None,
63
  name=None,
64
  description=None,
65
- prompt_templates=prompt_templates
66
- )
67
 
68
 
69
  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 typing import List, Dict
9
+
10
  from Gradio_UI import GradioUI
11
 
 
12
  @tool
13
+ def web_search(query: str, max_results: int = 5)-> List[Dict[str, str]]:
14
+ """Performs a web search using DuckDuckGo and returns relevant results
15
+
16
  Args:
17
+ query: The search query string
18
+ max_results: Maximum number of results to return (default: 5)
19
  """
20
+ search_tool = DuckDuckGoSearchTool()
21
+ results = search_tool.search(query, max_results=max_results)
22
+
23
+ # Format results
24
+ formatted_results = []
25
+ for result in results:
26
+ formatted_results.append({
27
+ 'title': results.title,
28
+ 'url': result.url,
29
+ 'snippet': result.snippet
30
+ })
31
+
32
+ return formatted_results
33
 
34
  @tool
35
  def get_current_time_in_timezone(timezone: str) -> str:
 
53
  # model_id='https://pflgm2locj2t89co.us-east-1.aws.endpoints.huggingface.cloud'
54
 
55
  model = HfApiModel(
56
+ max_tokens=2096,
57
+ temperature=0.5,
58
+ model_id='Qwen/Qwen2.5-Coder-32B-Instruct',# it is possible that this model may be overloaded
59
+ custom_role_conversions=None)
 
60
 
61
 
62
  # Import tool from Hub
 
67
 
68
  agent = CodeAgent(
69
  model=model,
70
+ tools=[final_answer,
71
+ web_search,
72
+ get_current_time_in_timezone,
73
+ image_generation_tool],
74
  max_steps=6,
75
  verbosity_level=1,
76
  grammar=None,
77
  planning_interval=None,
78
  name=None,
79
  description=None,
80
+ prompt_templates=prompt_templates)
 
81
 
82
 
83
  GradioUI(agent).launch()