Ubik80 commited on
Commit
5acef43
·
verified ·
1 Parent(s): 6331cc0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -12
app.py CHANGED
@@ -43,32 +43,41 @@ final_answer = FinalAnswerTool()
43
 
44
  from smolagents import tool, DuckDuckGoSearchTool
45
 
 
 
46
  @tool
47
- def search_duckduckgo(query: str) -> str:
48
- """Performs a web search using DuckDuckGo and returns the first relevant result.
49
 
50
  Args:
51
  query: The search term.
 
52
 
53
  Returns:
54
- The best search result including title, summary, and link.
55
  """
56
  search_tool = DuckDuckGoSearchTool()
57
- results = search_tool(query) # Perform the search
58
- print(results)
59
  if not results or "## Search Results" not in results:
60
  return f"No relevant results found for '{query}'."
61
 
62
- # Extract the first result using simple text parsing
63
- result_lines = results.split("\n") # Split results into lines
 
64
  for i in range(len(result_lines)):
65
- if result_lines[i].startswith("["):
66
- title = result_lines[i][1:-1] # Remove brackets
67
- link = result_lines[i+1].strip() # The next line contains the link
68
  summary = result_lines[i+2].strip() if i+2 < len(result_lines) else "No summary available."
69
- return f"🔎 {title}\n{summary}\n🔗 {link}"
 
 
 
 
70
 
71
- return f"Could not parse the results for '{query}'."
 
72
 
73
 
74
  model = OpenAIServerModel(
 
43
 
44
  from smolagents import tool, DuckDuckGoSearchTool
45
 
46
+ from smolagents import tool, DuckDuckGoSearchTool
47
+
48
  @tool
49
+ def search_duckduckgo(query: str, num_results: int = 3) -> str:
50
+ """Performs a web search using DuckDuckGo and returns multiple relevant results.
51
 
52
  Args:
53
  query: The search term.
54
+ num_results: Number of search results to return (default: 3).
55
 
56
  Returns:
57
+ A formatted list of search results including title, summary, and link.
58
  """
59
  search_tool = DuckDuckGoSearchTool()
60
+ results = search_tool(query)
61
+
62
  if not results or "## Search Results" not in results:
63
  return f"No relevant results found for '{query}'."
64
 
65
+ result_lines = results.split("\n")
66
+ parsed_results = []
67
+
68
  for i in range(len(result_lines)):
69
+ if result_lines[i].startswith("[") and len(parsed_results) < num_results:
70
+ title = result_lines[i][1:-1] # Extract title
71
+ link = result_lines[i+1].strip() # Extract link
72
  summary = result_lines[i+2].strip() if i+2 < len(result_lines) else "No summary available."
73
+
74
+ parsed_results.append(f"🔎 {title}\n{summary}\n🔗 {link}")
75
+
76
+ if not parsed_results:
77
+ return f"No valid results found for '{query}'."
78
 
79
+ return "\n\n".join(parsed_results) # Return multiple results formatted nicely
80
+
81
 
82
 
83
  model = OpenAIServerModel(