Lakshya commited on
Commit
b533c54
·
verified ·
1 Parent(s): 137780a

Update app.py

Browse files

Updated search tool due to errors calling the DuckDuckGo api

Files changed (1) hide show
  1. app.py +21 -5
app.py CHANGED
@@ -20,22 +20,38 @@ def my_custom_tool(arg1:str, arg2:int)-> str: #it's import to specify the return
20
  return "What magic will you build ?"
21
 
22
  @tool
23
- def search_duckduckgo_documents(query: str, max_results: int = 10) -> List[Dict]:
24
  """
25
- Search DuckDuckGo and retrieve up to 10 documents/results.
26
 
27
  Args:
28
  query (str): The search query
29
  max_results (int): Maximum number of results to return (default: 10)
30
 
31
  Returns:
32
- List[Dict]: List of search results with title, url, and snippet
33
  """
34
  # Initialize the DuckDuckGo search tool
35
  search_tool = DuckDuckGoSearchTool()
36
 
37
- # Perform the search
38
- results = search_tool(query, max_results=max_results)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
 
40
  return results
41
 
 
20
  return "What magic will you build ?"
21
 
22
  @tool
23
+ def search_duckduckgo_documents(query: str, max_results: int = 10) -> str:
24
  """
25
+ Search DuckDuckGo and retrieve top N search results.
26
 
27
  Args:
28
  query (str): The search query
29
  max_results (int): Maximum number of results to return (default: 10)
30
 
31
  Returns:
32
+ str: Formatted search results as a string (limited to max_results)
33
  """
34
  # Initialize the DuckDuckGo search tool
35
  search_tool = DuckDuckGoSearchTool()
36
 
37
+ # Perform the search (DuckDuckGoSearchTool doesn't accept max_results parameter)
38
+ results = search_tool(query)
39
+
40
+ # Manually limit results by parsing the string output
41
+ if isinstance(results, str):
42
+ # Split by lines and try to limit results
43
+ lines = results.split('\n')
44
+ print(len(lines))
45
+ result_count = 0
46
+ limited_lines = []
47
+
48
+ for line in lines:
49
+ if result_count >= max_results:
50
+ break
51
+ result_count += 1
52
+ limited_lines.append(line)
53
+
54
+ results = '\n'.join(limited_lines)
55
 
56
  return results
57