Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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
|
49 |
|
50 |
Args:
|
51 |
query: The search term.
|
|
|
52 |
|
53 |
Returns:
|
54 |
-
|
55 |
"""
|
56 |
search_tool = DuckDuckGoSearchTool()
|
57 |
-
results = search_tool(query)
|
58 |
-
|
59 |
if not results or "## Search Results" not in results:
|
60 |
return f"No relevant results found for '{query}'."
|
61 |
|
62 |
-
|
63 |
-
|
|
|
64 |
for i in range(len(result_lines)):
|
65 |
-
if result_lines[i].startswith("["):
|
66 |
-
title = result_lines[i][1:-1] #
|
67 |
-
link = result_lines[i+1].strip() #
|
68 |
summary = result_lines[i+2].strip() if i+2 < len(result_lines) else "No summary available."
|
69 |
-
|
|
|
|
|
|
|
|
|
70 |
|
71 |
-
return
|
|
|
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(
|